perm filename LISP[NEW,LSP]35 blob
sn#635663 filedate 1982-01-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00607 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00079 00002 .MLLIT ITS TOPS10 TOPS20 SAIL TENEX CMU ML BIGNUM OBTSIZ PTCSIZ NEWRD JOBQIO HNKLOG SFA NIOBFS USELESS DBFLAG CXFLAG NARITH
C00084 00003
C00088 00004 LVRNO LVRNO ZZZ ZZZ DEFAULT
C00092 00005 D10 D20 ZZZ SEGLOG OBTSIZ DXFLAG
C00094 00006 GETTAB
C00100 00007
C00103 00008 NIL A B C AR1 AR2A NACS T TT D R F FREEAC P FLP FXP SP
C00105 00009 LERR ACALL AJCALL LER3 ERINT PP STRT SERINT TP IOJRST STRT7 UUOMAX CALL JCALL CALLF JCALLF NCALL NJCALL NCALLF NJCALF NUUOCLS NERINT NERINT
C00109 00010
C00113 00011 %SY %SYHKL %SYKIL %SYLCL %SYGBL BYTSWD
C00116 00012 LS ST.LS $FS ST.$FS FX ST.FX FL ST.FL BN ST.BGN SY ST.SY SA ST.SA VC ST.VAC $PDLNM ST.$PDLNM $XM ST.$XM $NXM ST.$NXM PUR ST.PUR HNK ST.HNK DB ST.DB CX ST.CX DX ST.DX RN NUM ST.
C00119 00013
C00122 00014
C00125 00015 %%% %%% LABEL
C00130 00016 NBITMACS NBITMACS XX YY
C00133 00017
C00137 00018 SYMVC SYMARGS SYMPNAME SY.ONE SY.LAP SY.PUR SY.CCN SY.OTC SY.ZER SY.
C00140 00019 ASAR TTSAR AS.SFA AS.JOB AS.FIL AS.RDT AS.OBA AS.DX AS.CX AS.DB AS.SX AS.FX AS.FL AS.GCP TTS.CL TTS.BM TTS.IM TTS.BN TTS.TY TTS.IO TTS.CN TTS.GC TTSDIM TTS.1D TTS.2D TTS.3D TTS.4D TTS.5D
C00146 00020 FI.EOF FO.EOP FJ.INT FI.BBC FI.BBF TI.BFN FT.CNS F.GC F.MODE FBT.CM FBT.SA FBT.CP FBT.LN FBT.EC FBT.SE FBT.FU FBT.ND FBT.SC F.CHAN F.JFN F.FLEN F.FPOS L.6DEV L.6DIR L.6FNM L.6EXT L.6VRS L.6DEV L.6DIR L.6FNM L.6EXT L.6VRS L.D6BT L.N6BT L.F6BT F.DEV F.FN1 F.FN2 F.RDEV F.RFN1 F.RFN2 F.DIR F.FNM F.EXT F.VRS LOPOFA TI.ST1 TI.ST2 ATO.LC AT.CHS AT.LNN AT.PGN FO.LNL FO.PGL FO.RPL LONBFA FB.BYT FB.BFL FB.BVC FB.IBP FB.BP FB.CNT FB.HED FB.NBF FB.BWS FB.BUF
C00159 00021 J.INTF J.CINT J.LFNM J.CRUFT J.GC J.INTB J.STAD J.UIND LOJOBA J.SYMS
C00161 00022 SR.CAL SFCALI SR.WOM SR.UDL SO.OPN SO.CLO SO.REN SO.DEL SO.TRP SO.PR1 SO.TYI SO.UNT SO.TIP SO.IN SO.EOF SO.TYO SO.PRO SO.FOU SO.RED SO.RDL SO.PRT SO.PRC SO.MOD SO.POS SO.ICL SO.OCL SO.OUT SR.FML SR.FUN SR.PNA SR.FUS SR.LEN STPFL NM
C00166 00023
C00168 00024 %HISEG %LOSEG CURSTD %LOSEG %HISEG CURSTD
C00170 00025
C00171 00026 ZZZ ZZZ
C00172 00027 PGTPMK NPGTPS
C00174 00028 ZZY ZZ ZZX ZZY
C00177 00029 NPURTR NIOCTR
C00180 00030 N2DIF
C00183 00031 NPRO
C00185 00032 ZZ ZZ ZZ GS SEGBYT LONUM HINUM PAGSIZ PAGMSK PAGKSM NPAGS NNUMTP NTYPES
C00190 00033 SEGSIZ SEGMSK SEGKSM NSEGS BTBSIZ SGS%PG BTSGGS ALPDL ALFXP ALFLP ALSPDL ALFXP ALFLP ALPDL ALSPDL
C00193 00034 IB.ALARM IB.TIMER IB.PARITY IB.FLOV IB.PURE IB.PCPURE IB.SYSUUO IB.AT3 IB.AT2 IB.AT1 IB.DEBUG IB.RVIOL IB.CLI IB.PDLOV IB.LTPEN IB.MAR IB.MPV IB.SCLK IB.1PROC IB.BREAK IB.ILAD IB.IOC IB.VALUE IB.DOWN IB.ILOP IB.DMPV IB.AROV IB.42BAD IB.C.Z IB.TTY IB.PDLOV IB.MPV
C00197 00035 TOPN BOTN NPURTR NIOCTR N2DIF NPRO %LOSEG %HISEG FIRSTLOC STDLO STDHI CURSTD STDLO STDHI CURSTD
C00200 00036 GOINIT GOINI7 SUSCON LISPGO LISPSW SUSFLS KA10P
C00203 00037 TWENTY THIRTY FORTY UUOGLEEP JPCSAV
C00205 00038 NSFC NSFC NSFC
C00207 00039 UNBND2 ABIND3 SETXIT SPECX AYNVSFX 1DIMS ARYGET ARYGT4 ARYGT8 1DIMF ANYGET 1DIMD ADYGET 1DIMZ AZYGET SPSV
C00210 00040 INTFLG NOQUIT UNREAL REALLY ERRSVD IMASK LFAKP LFAKFXP FAKP FAKFXP CMUP MONL6P UPIINT CCOCW1 CCOCW2 TENEXP VTS20P INTPC1 INTPC2 INTPC3 PDLSVT SUPSAV LV2SVT LV2SVF LV2ST2 LV3SVT LV3SVF LV3ST2 DSMSAV CINTAB CINTSZ
C00217 00041 STTYW1 STTYW2 STTYL1 STTYL2 STTYA1 STTYA2 CCOC1 CCOC2 XACTW XACTL STDTIW SACTW1 SACTW2 SACTW3 SACTW4 SACTL1 SACTL2 SACTL3 SACTL4 UISTAK GCRSR PDLSTH PDLSTA PDLSTB PDLSTC
C00221 00042 CHNTB TMPC DPAGEL DLINEL LJOBTB JOBTB
C00223 00043 TTYIF1 TTYIF2 FI.EOF FI.BBC FI.BBF TI.BFN FT.CNS F.MODE F.CHAN F.FLEN F.FPOS F.DEV F.FN1 F.FN2 F.RDEV F.DEV
C00228 00044 TTYOF1 TTYOF2 FO.EOP FT.CNS F.MODE F.CHAN F.FLEN F.FPOS F.DEV F.FN1 F.FN2 F.RDEV F.DEV FO.LNL FO.PGL FO.RPL
C00230 00045 SWS ERRTN CATRTN EOFRTN PA4 INHIBIT ERRSW BFPRDP CATID CATSPC CATLIS CATUWP CATCAB CATALL CATCOM LEP1 KMPLOSES UIRTN RSXTB PNMK1 GCD.A UNBND3 SIXMK2 SAVMAR GCD.B AUNBD EXP.S ATAN.S UNMTMP FPTEM IFLT9 EQLP GCD.C ATAN.X GWDCNT GCD.D ATAN.Y GWDORG GWDRG1
C00235 00046 EXPL5 GCD.UH BKTRP EV0B FLAT1 MEMV UAPOS GCD.VH LPNF AUNBR DLTC RINF APFNG1 TABLU1 AUNBF MNMX0 GRESS0 GRESS0 CFAIL CSUCE BACTYF BOOLI TOPAST PLUS0 PLUS3 PLUS6 PLUS8 RM4 SWNACK RDBKC RDNSV RDDSV RDIBS RDINCH CORBP MKNCH
C00239 00047 PNBP PNBUF JCLBF ATMBF REMFL VETBL0 DVS1 DVS2 DVSL DD1 DD2 DD3 DDL NORMF QHAT BNMSV FACF FACD AGDBT YAGDBT TSAVE DSAVE RSAVE FSAVE NRD10FL LJCLBF UUOH ERROR ERBDF UUOFN UUTSV UUTTSV UURSV UUALT9 UUPSV UUOBKG LUUSV LSWS
C00242 00048 FFS FFX FFL FFY FFA NFF FFY2 NPFFS NPFFX NPFFL NPFFY2 EPFFS EPFFX EPFFL EPFFY2 EFVCS NFVCP FFVC ETVCFLSP
C00246 00049 GCMKL PROLIS MFFS MFFX MFFL MFFY MFFA NFFS NFFX NFFL NFFY NFFA GCWHO GCWHO1 GCWHO2 GCWHO3 GCACSAV GCNASV GCP GCFLP GCFXP GCSP PANICP GCMRKV GCTIM GCTM1 GCUUSV IRMVF GCRMV ARPGCT
C00251 00050 ZFFS ZFFX ZFFL ZFFY ZFFA SFSSIZ SFXSIZ SFLSIZ SSYSIZ SSASIZ OFSSIZ OFXSIZ OFLSIZ OSYSIZ OSASIZ GFSSIZ GFXSIZ GFLSIZ GSYSIZ GSASIZ
C00254 00051 FSSGLK FXSGLK FLSGLK SYSGLK SASGLK S2SGLK BTSGLK IMSGLK PRSGLK BTBAOB MAINBITBLT GC98 GC99 PFSSIZ PFXSIZ PFLSIZ PS2SIZ
C00257 00052 BPSH BPSL HINXM HIXM MAXNXM HBPORG HBPEND NPDLL NPDLH PDLFL1 PDLFL2 XFFS XFFX XFFL XFFY XFFA XPDL XFLP XFXP XSPDL ZPDL ZFLP ZFXP ZSPDL C2 FLC2 FXC2 SC2 ZSC2 OC2 OFLC2 OFXC2 OSC2
C00261 00053 USRHNK SENDI ICALLI INTAR UNRC.G UNRRUN UNRTIM UNREAR LIPSAV IPSWD1 IPSWD2 IPSDF1 IPSDF2 IPSPC IPSD IPSR IPSF MXIPDL LINTPDL INTPDL ACBASE INTMAI INTPAR INTCLK INTTTI INTPOV INTILM INTNXM REEINT REENOP APRSVT REESVT INTALL %PIPAR %PIWRO %PIMPV %PIILO
C00266 00054 MUNGP ERRPAD ERRPST BFTMPS SQ6BIT SQSQOZ LDBYTS LDOFST LDAAOB LDTEMP LD6BIT LDAPTR LDBPTR LDF2DP LDASAR LDBSAR LDXBLT LDXSIZ LDXSM1 LDXDIF LDHLOC LDEOFJ LFTMPS LDHSH2 LDHSH2 LDHSH2 LDX%FU LDXPSP LDXOFS LDXPNT LDXLPC LDXLPL LDXHS1 LDXHS2 LDXPFG
C00272 00055 USN EVPUNT UWUSN D10PTR D10ARD D10NAM D10REN %TXTOP %TXSFL %TXSFT %TXMTA %TXCTL %TXASC RDOBJ8 ALGCF AFILRD GNUM RNOWS RBACK RBLOCK
C00275 00056 RNTN2 BPPNR GAMNT GSBPN ADDSAR TOTSPC LLIP1 INSP RTSP1 RTSP3 LOSEF RWG FLOV9A FLOV9B CPJSW PSYMF POFF PSMS PSMTS PSMRS PS.S STQLUZ NOPFLS SAWSP PURDEV PURFN1 PURFN2 PURSNM SYSDEV SYSFN1 SYSFN2 SYSSNM SJCLBUF
C00279 00057 RSXTB1 RCT IOBAR1 IOBAR2
C00280 00058 PURTBL ZZW ZZZ $ NLBTSG NHBTSG ZZX ZZX ZZZ
C00283 00059 FPURF7 FPURF1 FPUR1Q FPUR1A FPURF4 IP0 IP7 IP7 IP1
C00287 00060 NFLSS FLSTBL ZZX ZZX ENTVEC FLSPA1 FLSPA3 FLSDIE FLSSTARTUP NOSHARE SHAREP SHARP1 SHRLOD FLSLSP FLSPA4 FLSPA5 FLSVAL FLSVA1 FLSADJ FLSMSK FLSPA6 PURCHK SYSFIL SYSCHN PDUMPL PURCKS PUROPN PUROP1 PUROP2 PURRWO PDUMP PURCHN PURSTI PURISP PURPTR
C00296 00061 KILHG4 KILHG2 KILHG3 KILHGH KILHG1 KILHG1 KILHG2 E.START GETHGH GETHG1 GETHG2 GETHG1 RETHGH GLSLUY GLSLUA CHKHGH GLSLZ4 GLSLZ0 GLSLZA GLSLZ1 GLSLM1 GLSLZ2 GLSLM2 GLSLZ3 GLSLM3 SGANAM SGADEV SGAPPN SGAEXT LDRIHS LDRHS1 LDSCRU
C00307 00062 ZZ LOBITSG TOP.PG BTBLKS LOBITSG
C00309 00063 ST STDISP GCBMRK GCBCDR GCBCAR GCB ZZZ GCBFOO ZZZ GCST BTB. LXXBSG NNPUSH N0PUSH N0.0PUSH BPURPG $$$NIL EPRNT1 EPRNT2 EPRNT3 ERROR1 EROR1Z EROR1A MSGFCK CMSGFCK
C00323 00064 ERROR9 LERFRAME EROR9A ERRRTN ERR2 LSPRT0 CLSPRET
C00326 00065 ERROR3 EROR3C EROR3E EROR3F
C00328 00066 ERROR5 EROR5F EROR5A EROR6A ERRV
C00331 00067 ERRIOJ ERIOJ1 ERIOJ2 ERIOJ3 ERIOJ4 ERIOJ5 ERIOJ8 ERIOJ7 ERIO6B ERIOJ6 ERIO6A ERIOJ9 ERTBL ERFNF% ERIPP% ERPRT% ERFBM% ERAEF% ERISU% ERTRN% ERNSF% ERNEC% ERDNA% ERNSD% ERILU% ERNRM% ERWLK% ERNET% ERPOA% ERBNF% ERCSD% ERDNE% ERSNF% ERSLE% ERLVL% ERNCE% ERSNS% ERFCU% ERLOH% ERNLI% LERTBL
C00340 00068 PDLOV PDLH0 PDLOV1 PDLRET PDLH4 PDLLOS PDLMSG
C00345 00069 PDLOV5 PDLOV6
C00347 00070 ERRBAD UUOGL1 UUOGL2 UUOGL7 UUOGL8
C00349 00071 UUONVE NTHIEN NTHER LASTER UUOMER UUOFER REMAIR UNOVER OVFLER UNFLER ER4 ADEAD EG1 INTNCO BADOB
C00352 00072 DFPER DEFNER REVER PNGE PNGE1 NASER SBADSP CA.DER CA.DE1 CA.DE2 CA.DE3
C00354 00073 NILSETQ TSETQ XSETQ STORE5 STOREE CSTOR7 RPLCA0 RPLCD0 RPLCA1 RPLCD1 %ARR0A %ARR0 %ARR0B LDGETQ LDXERR LDALREADY LDATE9 LDATER
C00357 00074 IBSERR BASER %LVERR %LNERR
C00358 00075 NIHIL VERITAS PURITAS POVPDL POVFLP POVFXP POVSPDL MESMAJ UNRECOV FLNMER $ARERR IARERR FXNMER NMV3 CAMMES MES5 MES6 MES14 MES18 MES19 MES20 MES21 EMS12 EMS13 EMS15 EMS16 EMS18 EMS21 EMS22 EMS25 EMS26 EMS29 EMS31 EMS34 STRTCR RDRM1 RDRM2 RDRM3 RDRM4 RDRM5 RDRM6 RDRM7 RDRM8 RDRM9 RDRM11
C00363 00076 ERRERC ERRERO ERERER EVAL.A EVAL.1 .UDT .UDT1 .UDT2
C00365 00077 ESB6 WNAERR WNAER1 QF3A QF2A QF1A UUOH3C UUOH3A UUOUER UUOUE1 UUOUE2 EPRINT
C00367 00078 EV3B EV3A EV3J IAP2A IAP2J WNAL0 WNALOSE WNAL1 STERR WNAFOSE FASLUR FASLUH FASLNX FASLNC LDFERR
C00369 00079 LMBERR LXPRLZ DOERRE GETLE GETLE1 SETWNA SIGNPE PROPER RMPER0 LFYER GENSY8 ARGCM8 ARGCM0 ARGCM1 ARGCM2
C00371 00080 PTRCKE .STOLZ TYOAGE GTRDT9 EOFER RDLNER EOFE IIOERR OIOERR MAPWNA MEMQER DLTER LIST.9 SUSPE
C00374 00081 GTPDL1 RAND9 S2WNAL TYPKER S1WNAL GRCTIE FRERR CRSRP2 ALST0 LFY0 ALCK0 PRGER1 DOERR DO5ER
C00376 00082 ATAN.7 EXP.ER EXPER1 SIN.ER COS.ER SQR$ER LOG.ER NUMER ARTHER 1EQNF 1GPNF 2EQNF 2GPNF ALHNKE
C00378 00083 GCMLOSE GCMLS1 GCMLS2 GCMES GCLSMS GCLUZ0 GCLUZ GCLUZ1 GCLUZ2 GCLUZ3 GCLUZ5 GCLUZ4 GCLUZ6 GCLUZ7 GCPDLOV DIE
C00382 00084 ERRADR ERRAD1 ERRDCD CPRIN1 ERRO2E ERRO2Q ERRO2A ERRO2C ERRO2H ERRO2G ERRO2B ERRO2R
C00385 00085 BEGFUN $ERROR ERRERB ERRERN ERRERD SUBR
C00387 00086 ERRFRAME EPR6 EPR7 EPR5 EPR1 EPR4 EPR3
C00390 00087 ERRPRINT OFCAN
C00392 00088 LSPRET LSPRT1 HACENT LISP1 LISP2 LISP2A LISP2B
C00396 00089 STDIFL TLTERPRI TLTERX TLTER1
C00399 00090 $TLREAD TLREAD TLRED1 TLRED2 TLREDF TLEVAL CEVAL NILBAD CSETZ PDLCHK PDLCRP
C00405 00091 LINMDP TLPRINT TLPR1 IPRIN1 TLVRSS TLVRS1 SIXJBN
C00409 00092 ERINIT ERINIX ERINI8 ERIN8G ERINI0
C00412 00093 ERINI2 ERINI5 ERIN5C ERIN5D ERIN5A ERIN5B ERINI6 ERIN6A ERINI3 SARTOB SATOB1 SATOB7 LPROGZ PDLFLS
C00415 00094 SPECBIND SPEC1 SPEC2 SPEC6 SPEC5 SPEC4 SPEC4A SPEC3
C00418 00095 ERRPOP ERRPNU UBD0 UBD UBD1 UBDP UBDWIO UBD4 UNBIND UNBND0 UNBND1 UNBND1 UNBNDP UNBWIO
C00423 00096 BIND BIND4 BIND5 CBIND4 BIND1 POPBJ CPOPBJ MAKVC MAKVC0 MAKVC1 MAKVCX MAKVC3
C00426 00097 C1CONS %NCONS NCONS ACONS BGNMAK BNCONS
C00428 00098 SIXMAK SIXMK1 .UDT4 SIXATM SIXAT1 PNBFAT PNBFA1 PNBFMK PNBFM6 PPNATM PPNAT2 PPNAT4 PPNAT6 PPNAT3 PPNAT5
C00433 00099 CATPUS CATPS1 CATBAR CTCALL THRALL THROW5 THROW1 THROW6 THRNXT THROW7 THROW3 THRXIT THRSPC THRCAB THROW4 ERUNDO ERR0 GOBRK IOGBND EPOPJ
C00440 00100 BRGEN BRLP1 BRLP BRLP2 BRLP4 BRLP3
C00443 00101 .STORE .STOR0 .STOR1 .STOR2 .STOR4 .STOR4
C00446 00102 .SET .SET1 FWNACK FWNAC1 LWNACK ERSTP LERSTP ERUN0 ERR1A ERR1 EPC1
C00450 00103 UIBRK UNWPRO UNWPR2 UNWPR1 UNWPUS UNWNCM UNWNXT UNWPRT
C00456 00104 CIN0 CONS1PFX CONS1FX CONSPFX CONSFX CONSIT BAPOPJ ZPOPJ POPNVJ CCPOPJ 0POPJ POP2J CPOPJ POP3J POPAJ1 S1PAJ POPAJ CPOPAJ POP1J1 POPJ1 POP1J CPOP1J M1TTPJ POPCJ CPOPCJ UNLKFALSE UNLKTRUE PX1J CPXDFLJ PXDFLJ POPXDJ CPXDJ
C00460 00105 SAV5 SAV5M1 SAV5M2 SAV5M3 CPOPXJ SAV3 SAV2 SAV1 RST3 RST2 RST1 RST5 R5M1PJ RST5M1 CR5M1PJ RST5M2 RST5M3 SAVX5 SAVX3 RSTX5 PXTTTJ POPXTJ RSTX3 RSTX2 RSTX1 CPOPNVJ
C00462 00106 $ERRFRAME $EVALFRAME $UIFRAME L$EVALFRAME AFPOPJ $APPLYFRAME
C00464 00107 FLTSK1 FLTSK2 FLTSKP FLTSTB FLTSFX FLTSFL NVSKP2 NVSKIP NVSKTB NVSKFL
C00468 00108 NMSKP2 NMSKIP NMSKTB NMSKFX NMSKFL
C00470 00109 LR70 D10.0 D1.0E8 CDUPL1 CCMPL1 CDBL1 CFIX1 CFLOAT1 R70 ZZZ XC IFIX IFLOAT IFLT5 IFLT1 IFLT2 IFLT4 IFLT3
C00473 00110 FLNV1X EFLNV1 FLNV1 EDBNV1 DBNV1 CXNV1X ECXNV1 CXNV1 EDXNV1 DXNV1 RSXST NPUSH 0PUSH 0.0PUSH CINTREL INTREL CHECKI ERSETUP
C00478 00111 .LCALL .LCAF5 .LCAF7 .LCAFX .LCAFL .LCADB .LCACX .LCADX
C00482 00112 NORET .RSET NOUUO LIST LISTX LISTX3 KLIST JLIST ILIST ILIST1 ILIST3 GTRDTB GTRDT8
C00485 00113 NOINTERRUPT NOINT0 CHECKU CHECKQ NOINT1 NOINT5 NOINT3 NOINT4 NOINTA NOINT2 ENOINT
C00488 00114 CARCDR %CADDDR %CADDAR %CADDR %CADAR %CADR %CAAR %CAR %CDDDDR %CDDDAR %CDDDR %CDDAR %CDDR %CDAR %CDR %CAADDR %CAADAR %CAADR %CAAAR %CDADDR %CDADAR %CDADR %CDAAR %CAAADR %CAAAAR %CDDADR %CDDAAR %CDAADR %CDAAAR %CADADR %CADAAR
C00491 00115 %CARCDR zz AD ICADRP IC.RP
C00494 00116 CRSUBRS
C00497 00117 CR0 CR1 CR1A CR2 CR3 CR7 CR4 CR5 CR6
C00499 00118 NTH NTHCDR NTHCD5 NTHCD6 NTHCD1 NTHCD0 NTHCD2 NTHCD4
C00501 00119 PNGNK PNGNK1 PNGNK2 SYCONS SYCON2 SYCON1 PSYCONS PNCONS PNG2 CPXTJ
C00504 00120 XCONS CONS CONS1 CONS3 $NCONS $XCONS LIST. %PDLNC %PDLXC %PDLC %XCONS %CONS %CONS1 %CONS3 %C2NS $C2NS FIX2 FIX1 FXCONS FIX1A FWCONS FLCONX FLOAT2 FLOAT1 FLCONS FPCONS
C00510 00121 DBL1 DBCONS DBCONS DBL1 CXCONX CMPL1 CXCONS CXCONS CMPL1 DUPL1 DXCONS DXCONS DUPL1
C00512 00122 %HUNK1 %HUNK2 %HUNK3 %HUNK4 %CXR %RPX CXR CXR2 RPLACX RPLX2 CXR30 CXR31 CXR3 CXR33 CXR34
C00515 00123 %CXR %CXR2 %RPX %RPX2 %HUNK1 %HNK2A %HUNK2 %HUNK3 %HNK4A %HUNK4 %HNKRA %HNK4R
C00519 00124 HNKSZ0 HUNKSIZE HNKSZ1 HNKSZ3 HUNKP MHUNKE MAKHUNK MHUNK7 MHUNK6 MHUNK5 HUNK
C00522 00125 ALHNKL ALHNLA ALHNLD ALHNLY ALHNLX ALHUNK ALHNKD ALHNKF
C00526 00126 ATOM LATOM SPATOM SPAT1 PRPLSE PLIST PRPNIL RPLIZ SETPLIST RPSNIL STENT VALLCE VALLOC VALLC1 VLCNIL
C00529 00127 SASSQ SASSOC ASSOC ASSQ FALSE IASSOC IASSQ IASSC0 IASSC3 IASSC7 IASSCX IASSC4 IASLOS IASSQ0 IASSQF IASWIN DISPL0 DISPLACE DISPL2 DISPL1
C00533 00128 $GET GET3 GET0 GET1 SARGET ARGET ARGET1 PNGET PNGT1 PNGT0
C00535 00129 GETL GETLA GETL5 GETL1 GETL0 GETL1A GETL4
C00536 00130 PUTPROP CSET0C CSET0Q CSET0 CSET0A BRETJ SPROG2 CSET7 CSET2 CSET2A $CADR $CAR C$CAR CSET4 CSET4A REMPROP REMP0 REMP1 REMP20 REMP7 CSET4C REMP3 REMP3A
C00541 00131 NOTNOT NOT $NULL TRUE CNOT LAST LAST5 LAST4 LLASTCK LASTCK LAST1 LAST2 BOUNDP $RUNTIME RNTM1
C00545 00132 $TIME TIME3 TIME8 ZZZ ZZZ
C00549 00133 EQUAL EQUAL0 EQUAL1 EQL1A EQL1B EQLLST EQLTBL EQLNM4 EQLNM2 EQLNUM EQLOSE EQLBIG EQLHNK EQLHN3 EQLHN1 EQLHN2 EQLHN4 EQLH4A EQLH4X EQLHN5 USRSAB USRAB USRHPP TFALSE USRHNP
C00556 00134 NCONC APPEND APP2 APP3 .NCONC .NCNC1 .NCNC2 .NCNC3 .APPEND APP1 AR1RETJ SUBS4 REVERSE REV1 APRVCK REV4 NREVERSE NRECONC NREV1 GENSYM GENSY0 GENSY2 GENSY3 GENSY1 GENSY7 GENSY6 GENSY5
C00561 00135 MEMBER SMEMBER SMEMQ MEMQ2 MEMQ3 MEMQ4 MEMBR MEMB2 MEMB3 AR2ARETJ MEMB4 SUBST SUBS0A SUBS1 SUBSTH SUBSH0 SUBST8 SUBST5 SUBST6 CRETJ SPROG3
C00565 00136 DELQ DELETE DLT3 DLT2 DLT1 .DELQ .DELETE MEMQ MEMQ1
C00567 00137 NUMP TYPEP TYPNIL %SYMBOLP NMCK0 NUMCHK PDLNKJ PDLNMK PDLNM0 NMK1 PNMK2 CPDLNKJ
C00570 00138 GCPRO %GCPRO GCPR1 GCPR2 .GCPRO .GCPR5 GCPR3 GCPR4 GCRL1 GCREL GCLOOK SXHASH ATMHSH BNHSH AHSH1 AHSH2 NILHSH SXHSH0 SXHSLS
C00574 00139 SXHSH8 SXHSH7 SXHSH4 SYMHSH SXHSH5 SXHSH6 SXHSH9 SXHSD1 SXHSD2 SXHSC1 SXHSZ1 SXHS1A SXHHS0 SXHS1 SXHS1B SXHS1F
C00577 00140 MAPATOMS MAPAT1 MAPAT2 MAPAT9
C00579 00141 MAPLIST MAPCAR $MAP MAPC MAPCON $MAPCAN MAPL0 MAPL1 MAPL1B
C00583 00142 MAPL3 CMAPL6 MAPL3A MAPL6 MAPL6A MAPL7 MAPL7A MAPL2 MAPL21 MAPL40 MAPL4 CMAPL3 MAPL22 MAPL23 MAPL24
C00587 00143 MAPL5 MAPL5A MAPL8 MAPL8B MAPL8C MAPL8A .MAP .MAP1 SET SETCK
C00590 00144 $BREAK $BRK0 CB CN.BB UDFB UBVB WTAB UGTB WNAB GCLB PDLB GCOB IOLB FACB BKCOM BKCOM0 BKCOM2 BKCOM4 CBKCM0 BKCOM1 BKCOM3
C00594 00145 INTERN INTRN3 INTRN1 INTRN INTRN4 MAKF MAKF1 MAK2 MAK4 MAK3
C00597 00146 MAKA3 MAKA3B MAKA3A MAKA0 MAKA MAKA2 MAKA5 MAKA4 MAK1
C00599 00147 RINTERN RINTN0 INTRN2 RINTN1
C00601 00148 IMPLODE MAKNAM CRINTERN MKNM1 MKNM2 RDL12 MKNM4 CHNV1X CHNV1 CHNV1D CHNV1A CHNV1B CHNV1C
C00603 00149 DEFPROP DEF1 DEF1B DEF9 DFPR2 DFPR1
C00605 00150 DEFUN DEF7 DEF3 DEF3B DEF3X DEF3L DEF3A DEF6 DEF5 DEF4
C00612 00151 TYIPEEK $$PEEK TYPK1 TYPK1C TYPK1F TYPK1H TYPK3 TYPK3C TYPK4 TYPK5 TYPK6 TYPK9 TYPK9A
C00616 00152 QUIT VALRET VALSTR VLRT2 VALS1 VALERR
C00619 00153 RETVAL RETSTR VLRT1 VLRT5 VLRT3 VLRT9 VLRT3A VLRT9 SIDDTP
C00623 00154 SUSPEND SUSP0C SUSP0 SUSP11 SUSP12 SUSP1 SUSP14 FLSNOT SUSP24 SUSP25 SUSP3
C00631 00155 SAVHGH SAPWIN
C00634 00156 ARGS ARGS1 ARGS1A ARGSCU ARGSC1 ARGS3 ARGS5 ARGS6 ARGCLB ARGCL3 ARGS0
C00637 00157 EVALFRAME FRM2A FRM3 FRM3A FRM4A FRM4 FRM5 FRM5A FRM7 FRM8 FRM2B GTPDLP GTPDL5 GTPDL2 GTPDL3 GTPDL4 GTP4A GTPX0 GTPX1
C00642 00158 FRETURN FRETRY FRETR1 FRP1 FRP2 FRP2A FRP4 FRP3 FRP3QA
C00646 00159 $GETCHARN GETCHAR GETCH1 GETCH2 GETCH3 GETCH4 GETCH8 GTCTB SUBLIS SUBLSA SUBL1 SUBL1B SUBL1A SUBLOSE SUBL3Q SUBL3Z
C00649 00160 SUBL2 SUBL3A SUBL3 SUBL4 SBL1 SBL5 SBL4 SBL2 SBL2A SBL2B
C00651 00161 SAMEPNAMEP ALPHALESSP ALPL3 ALPLP1 ALPL2 SYSP SYSP3 SYSP6 SYSPZ1 SYSPZ GCTWA GCTWI GCTWX
C00655 00162 COPYSYMBOL CPSY3 CPSY CPSY0 CPSY1 CPSY4
C00657 00163 SETSYNTAX RSSYN1 RSSYN2 RSSYN3 RSSYN5 RSSYN7 RSSYN8 CTRUE RSSYN4
C00659 00164 SSCHTRAN SSSYNTAX SSSYN1 GRCTI SMACRO SMCR1 GETMAC
C00662 00165 SSMACRO SSMC43 SSM4 SSM4AA SSM3 SMCR2 SSM1 SSGCREL SSGCPRO SSGCP1 SSPROQ SSPROX SSGRL2 SSGRL1
C00666 00166 AUTOLOAD
C00667 00167 SYSCALL SCSL0 SCSL1 SCSL1A SCSL6 SCSL3 SCSL4 SCSL5 SCSTMA SCSFAI SCSXIT SCSXT1 SCSTAT STATER SSTATUS STATUS STAT1 STAT2 STAT3 STAT6 STAT6A STAT7 STAT8
C00675 00168 STSGVAL CQSSTATUS STSSVAL STSSV1 STSSTNIL STLOOK STLK1 STSCH STSCH1 STSCH2
C00677 00169 SNOFEATURE SFEATURE SSFEATURE SSFEA1 SSFEA2 SSNOFEATURE SSSSLU SSSSS SSSS SSSSS1 SARRAY
C00680 00170 SSPLSS SPLSS SCHTRAN SSYNTAX
C00681 00171 STTY STTY1 ZZZ STTY3 STTY4 ZZZ ZZZ
C00685 00172 SSTTY SSTTY1 SSTTY3 SSTTY7 SSTTY3 SSTTY4 SSTTY5 SSTTY3 SSTTY4 SSTTY2 TTY2ST TTYSAC
C00692 00173 SFRET
C00693 00174 SUUOLINKS SUUOL1 SSUUOLINKS SSUUL1 SCLI SSCLI CLIVAR SNOINT
C00697 00175 STIME SDATE STCVT SRCDIR SUNAME SUSERID SJNAME SSUBSYSTEM SJNUMBER SHOMEDIR SHSNAME SHSNA1 SHSNA2
C00700 00176 SHSNAME SDATE STIME STIM2 SSUBSYSTEM SDATE STIME STIM2 SSUBSYSTEM SJNAME SJNUMBER SUSERID SUSER1 SUNAME
C00704 00177 STIME STIME1 SDATE SDATIM SJNAME SSUBSYSTEM SRCDIR SUSERID SUNAME SJNUMBER
C00707 00178 SSLINMODE ZZX
C00709 00179 SDOW SDOWQX SDOW SDOWQX SDOW SDOWQX
C00711 00180 SABBREVIATE SSABBREVIATE SSABB1 SMEMFREE
C00712 00181 SSYST0 SSYSTEM SSYST2 SSYST7 SSYST1 SSYST3 SSYST5 SSYST4 SSYST6
C00714 00182 SSGCTIM SGCTIM SGCTM1 SLVRNO SFILESYSTEM.TYPE SOPSYSTEM.TYPE SSITE STTYREAD SLAP SLAP1 SSTTYREAD SSLAP SSLAP1
C00716 00183 SLINMODE STERPRI STERP1 SSTERPRI
C00717 00184 SCRFUN SCRFIL SLOSEF SSLOS0 SSLOSEF BPDLNKJ
C00718 00185 SJCL SJCL2 SJCL4 SDDTP SJCL SJCL1A SJCL1 SJCL2 SJCL4 SJCL3
C00721 00186 STTYTYPE STTYSIZE STTYS1 STTSZ9 SOSPEED SOSSP9
C00723 00187 STTYTYPE STTYSIZE STTYS1 D10TNM
C00726 00188 STTYTYPE STTYSIZE STTYS1
C00727 00189 STTYSCAN STSCN1 SSTTYSCAN SSTSC1 STTYCONS STCON1 SSTTYCONS SSTCO1 SSTC2 SSTC1
C00731 00190 STTYINT SSTTYINT SSTIN1 SSTIN2 SSTIN3 SSTIN4
C00734 00191 SPDLMAX SSPDLMAX SGCSIZE SSGCSIZE SGCMAX SSGCMAX SGCMIN SSGCMIN SPDLSIZE SPURSIZE SSPCSIZE SPDLROOM SSGP1 SSGP1A SSGP1C SSGP1D SSGP2A
C00737 00192 SSGPGT SSGPLZ SSGP3$ SSG3A1 SSGP3A SSGP3Z SSGP3Y SSGPPT SSGM1 SSGM2 SSGMRV SSGP4
C00740 00193 SSGS1 SSGX1 SSPM1 CSETP1 CSETNS CSETP2 CSETP3 CSETP7
C00743 00194 SRANDOM SRAND3 SSRAN0 SSRANDOM SSRAN3 SSRAN6 SSRAN8 SSCALLI SSSENDI SSSENA SSSEN1 SSSEN0 SSUSRHNK
C00746 00195 SSWHO1 SSWHO2 SSWHO3 SWHO1 SWHO1A SWHO2 SWHO3 SIXNUM SMAR SSMAR SSMAR5
C00748 00196 SSGCWHO SITS SITS9
C00750 00197 STBA LSSTBA
C00753 00198 LSTBA
C00756 00199
C00758 00200 STBSS LSST
C00761 00201 STBS
C00764 00202
C00768 00203 CURSORPOS CRSRPS CRSR10 CRSFA5 CRSFAY CRSFA4 CRSFA2 CRSFAZ CRSRP8 CRSFA1 CRSRP0 CRSR20 CRSRP5 CRSRP7 CRSR71 CRSRP3 CRSRP6 CRSRP4 CRSR40 CRSRP9 ZZZ ZZZ CRSR11 CRSR12 CRSR13 CRSR14 CRSRP1 CRSRMP CRSRM1 CRSRN
C00775 00204 %%FUNCTION .FUNC4 .FUNC1 .FUNC2 .FUNC3 AEVAL
C00777 00205 ALIST ALST1
C00782 00206 ALST2 ALST3 ALST3A ALST4 ALST4A ALST4C ALST5 ALST5A AL5AB
C00785 00207 ALST7 ALST6 ALST6A ALST6B ALST7A AUNBIND AUNBN0 AUNBN1 AUNBN2 AUNBN3 AUNBN4 AUNBN5 AUNBN6 AUNBN7 IAP4A APFNG CAUNBIND APLBL APLBL1
C00789 00208 LISTIFY LFY3 LFY1 PNPUT $PNGET $PNG.R $PNG3 $PNG3A $PNG4 $PNG.D $PNGX DEPOSIT EXAMINE MAKNUM MUNKAM
C00792 00209 $SLEEP ALARMCLOCK ALCK3 ALCK4 ALCK1 ALCK5 ALCK7 ALCK2 M30.
C00795 00210 REMOB REMOB2 REMOB7 REMOB3 REMOB4 REMOB1 ARG ARGXX ARG3 SETARG ARGCOM
C00797 00211 SBSYM VCLSYM VCSYM TLSYM TSYM PLSYM PSYM POF TOF PSYM1
C00800 00212 PSYMP PSYMQ PSYMX CPSYMX PSYMP1 PSYMSB FCN.B
C00803 00213 TOF1 POF1 PSYMVC PSVC1 PSVC2 PSVC3 PUFY
C00805 00214 ZZ PSMTB LPSMTB P. PL. VC. VCL. T. TL. SB. BB PSYMT PSYMT1 PSYMT2 PSYMT3 PSYMTT PSYMTL
C00809 00215 PPTBL1 PPTBL2 PPTBL6 PPTBL3 PPTBL4 PPTBL5 PPTBL7 PPTBL9 PPTBL8
C00812 00216 XPURIFY PURIFY FPURF2 IPUR1 IPUR2
C00816 00217 IPUR4 IPUR5 IPUR9 IPURE$ IPUR6A IPUR6 IPUR7 IPUR3A IPUR3
C00820 00218 RSXTB2 RCT0
C00824 00219 TLRCT ZZ .NOPOINT CTY TYOI CTYP TYO1C TYO1TB
C00832 00220 PRNARG PRNAR$ PRNAR0 PRNAR3 PRNAR7 PRNTTY PRNAR2 PRNAR4 PRNAR5 PRNAR6 PRNARA PRNAR8 PRNAR9 PNAGX CPNAGX
C00837 00221 MPFLOK MPFLO1 MPFLO3 MPFLO2 PRNARK PRNRK3 PRNRK1 PRNRK2 PRTSTO PRTSO1 PRTSTR PRTST1 PRTST2 PRTSTL
C00842 00222 TYO$ %TYO %TYO1 TYO $TYO TYOPR TYO1 TYO6 STRTYO TYO6A TYO6B TYO5 TYO2 TYO2A TYO2Z TYO2B TYO4 TYOARG
C00845 00223 TYOFA TYOFIL TYOF TYOFS1 TYOFS0 TYOF0D TYOF0E TYOF0G TYOF2 TYOFXL TYOFE
C00850 00224 TYOF3 TYOFBS TYOFTB TYOFLF TYOFFF TYOF7 TYOFCR
C00853 00225 TYOF4 TYOF6 TYOF4A TYOXCT C$ INTTYR TYOF5 TYOF5Y TYOF4C TYOF4J
C00857 00226 %TERPRI TRP$ TERPRI TERP1 ITERPRI PTYO PTYO1 PTYO3 PTYO2
C00860 00227 PRINT %PRO PRINTOBJECT %PRO3 %PROX %PRINT $PRINT CTY1 CTY2 PRIN1B PRIN1 %PRIN1 %PR1 $PRIN1 %PR1A PRINC %PRINC %PRC $PRINC X X
C00865 00228 PR.PRC PR.ATR PR.NUM PR.NVB PR.EFC PR.NLS PRINTY PRINTF PRINTA PRINT3 PRINT4 PRINH6 PRIN7A PRIN8A
C00869 00229 PRINTY PRINTF APRINT PRINTA PRINT0 PRIN0A PRINT1 PRIN1Q PRINT2
C00872 00230 PRINT3 PRIN3A FLTHNK SENDFL SENDPR SENDP1 SNDPR0 PRN3NH PRIN3F PRINT4 PRINT5 PRINT6 PRINT7 PRINH6 PRIN7A PRIN7B PRINT8 PRIN8A PRINT9
C00881 00231 PRINH0 PRINH8 PRINH2 PRHN2B PRINH3 PRHN3A PRHN3B
C00883 00232 PRINX PRIN1A PRIN1Z PRINA1 PRINA2 PRINA3 PRINA4 PRINX5 PRINL4
C00886 00233 PRNSR PRNJB PRNFL PRNF5 PRNF6 PRNJ2 PRNF1 PRNSTO PRNJ1 PRNSR1
C00890 00234 PRINSY PRINN PRINIL PRNN1 PRNN2A PRNN2B PRNN2C PRNN2 PRNN3 PRNN3A PRNN3B PRNN3C
C00894 00235 PRNN4 PRNN4A PRNN4B PRNN5 PRNN5A VBARPOPJ PRNN6 PRNN6A
C00896 00236 MAPNAME MAPNM1 MAPNM2 MAPNM3 PRINLP PLP1 PRINLQ
C00898 00237 PRINI PRI2D PRI2C PRI2Q PRI2A PRINI2 PRINI9 PRINI3 FP7A1 FP7B PRINI5 PRINI7 PRI.
C00901 00238 PRI2B PRI2B3 PROMAN PRINRM PRINR0 PRINR1 PRINR2 PRINR3 PRINR4 PRINR5 PRINR6 PRINR9
C00904 00239 PRINDB DFP0 PRINO FP0 FP0A FP0B FP1 FP3 FP3A FP3A1 FPX0
C00909 00240 FP3
C00911 00241 DFP3A DFP3A1 DFP3A2 DFP3A8 DFP3A9
C00914 00242 FP4 FP4A FP4E0 FP4E1
C00916 00243 FP4E FP4E2 FP4E2A FP4B
C00919 00244 FP4B1
C00920 00245 PRINCX PRNCX2 PRNCX3 PRNCX4 PRINDX PRNDX2 PRNDX5
C00922 00246 PRINB PRINB0 PRINBQ PRINBZ PRBAB PRINB3 PNFBLP
C00924 00247 PRBFNA PRBFIN PRINBI PRINBJ PRBNUF PRINB4
C00926 00248 FLATSIZE FLAT5 FLAT4 FLAT3 FLAT2 CFLAT2 %FLO FLATOBJECT FLATO2 FLATC FLAT7 FLATC1 FLTC1A FLATC2 FLATC3 FLAT7A $EXPLODEC $$EXPU $$EXPLODEN $$EXSN $$EXP0 $$EXP1 EXPLY1 EXPLY2 EXPLY3 EXPLY4 EXPLY9
C00932 00249 EXPLODE EXPL0 EXPL4 EXPL1 EXPL3 EXPL6 EXPL2
C00933 00250 BAKTRACE BAKLIST BKTR0 BKTR3 BKTR2 BKTR1 BKTR2X
C00937 00251 BKTR1A BK1A2 BK1A4 BK1A1 BK1A1C BK1A3 BK1A1B
C00940 00252 BKTR1B BKTR1C BKTR1F BKT1B1 BKT1F1 BKT1F2 BKTR1H BKTR1E BKTR1D BKTR1G BKTR1I BKTRR3 BKTRR5 UREAD UREAD2 UREAD1 UREOF UCLOSE
C00945 00253 UAPPEND UWRITE UWRT0 UWRT1 UWRT2
C00948 00254 UFILE0 UFILE UFILE5 SCRUNIT CRUNIT
C00950 00255 UGREAT UGRT1 UPROBE UKILL
C00952 00256 TTSR TTSR1
C00954 00257 RSQUEEZE SQUEEZE SQZCHR SQOK SQNOTL SQNOTD SQ%$
C00957 00258 5BTWD $5BTWD 5BTWD0 5BTWD1 5BTWD9 UNSQOZ UNSQZ1 UNSQZ2 UNSQZ3
C00959 00259 PUTDDTSYM PUTDD0 PUTDD2 PUTDD4 PUTDX
C00961 00260 LAPSETUP LAP5HAK L5H1 L5H2 L5XIT L5ERSTP L5SPBND L5H3 L5MKUNBD L5INHIBIT L50.0P L5NILP LAPSMH LAPSM1 LAPST2 LSYMPUT FSLSTP FSLST2
C00966 00261 LSYMS LGSYMS LLSYMS ZZ LAPSIX ZZ LAPFIV LAP5P GETDDTSYM GETDDJ GETDD1 GETDDG LGTSPC PAGEBPORG PGBP4
C00971 00262 MAKUBE MAKUNBOUND MAKUN1 $PURIFY FPURF0 FPURF3 ZEROP MINUSP PLUSP ZMP MINUS MNSFX
C00976 00263 ADD1 SUB1 SUB11 A1S1FX A1S11 A1S1BG ABSOV
C00978 00264 COMPR DIFFA PLUSA TIMESA QUOA QUOOV QUOAK QUOAK2 QUOAK1
C00981 00265 T1 .QUO .TIMES .DIF .PLUS T21 QUOTIENT TIMES DIFFERENCE PLUS T22 T20 T24 T4 T7 T7A T7X T7X1 T7O ZFZCHK ZFZCH9
C00984 00266 T5 T6 T6A T3 T15 T14 T14EX2 T14E T14EX T14EX1 FXIDEN FLIDEN ABS
C00986 00267 REMAINDER REMAI2 FLOAT FIX4 FLOAT4 IFXERR $IFIX $IFIX1 $FIX
C00989 00268 .GREAT .LESS LESSP GREATERP GTR1 GTR9 MIN MAX MXF MXS MAXFIN MAX923
C00991 00269 GRSUC2 GRSUC1 GRS923 GRSUCE GRSFIN GRSF1 GRFAIL GRSWF GRSWX
C00992 00270 ADD1 SUB1 REMAINDER MINUS ABS MINUSP PLUSP ZEROP
C00994 00271 $IFIX $FIX FIX4 FLOAT FIXFLO FLOAT3
C00995 00272 MIN MAX MINMAX .GREAT .LESS LESSP GREATERP MNMX1 MNMX9 GRESS GRUSE
C00997 00273 .DIF DIFFERENCE DIF2 .QUO QUOTIENT QUO2 QUO3
C00999 00274 .TIMES TIMES QUO1 .PLUS PLUS DIF1 PLUS1 PLUS7 PLUS5 PLUS3A PLUS4 PLUS9 PLUS2 PLUS2A PLUS2V T7O0
C01001 00275 EXPT XPTLL XPT.X XPTLX XPTLX1 XPTLX2 XPTOV
C01004 00276 XPTXX0 XPTXX XPTXX5 XPTXX3 XPTXX4 2XPT 2BGXPT 2BGXP1
C01006 00277 XPTBL XPT.B XPTZX0 EXPT6B EXPT6C EXPT1A EXPT1 EXPT3 EXPT2 EXPT4 XPTBX XPTBX1
C01010 00278 XPTII XPTI$ XPTZL 1.0PJ XPTZL1 XPTZL2 XPTZX XPTZX1 XPTM1
C01012 00279 RANDOM RAND1 IRAND IRAND0 IRAND3 IRAND5 RNDM1 RNDM2 RNDM0 RNDM1A RNDM2A
C01014 00280 HAULONG .HAU 4HAU 3HAU1 1HAU 2HAU 3HAU
C01015 00281 HAIPART 0HAI 0HAI1 0HAI2 0HAI3 3HAI 3HAI1 3HAI2 3HAI3
C01018 00282 LNGTER LENGTH LNGTH0 LNG1A LNGTH1 LNGTE1 LNGTH2 LNGTH5 LNGTH6 BIGP
C01020 00283 BOOLE BOOLL BOOLG BOOL1 ODDP1 ODDP ODDP2 ODDP21 ODDP4 ODDP3
C01022 00284 $FSC $ASH $ROT $LSH SHIFTX SHIFTY $LOADB %LOADB .LODB1 $LDB %LDB .LDB2 $DEPOB %DEPOB .DPOB1 $DPB %DPB .DPB1 .DPB2 .GCD .GCD0 .GCD3 .GCD1 .GCD2 GCD0 GCD GCDXX
C01026 00285 $EQUAL $EQL1 $IEQ IEQUAL $LESS $GREAT $IGL1 $IGL IGRT IADD1 $ADD1 ISUB1 $SUB1
C01028 00286 $ARITH IARITH I$B I$ART2 ARITH IARDS ARIT0
C01030 00287 IDIFFERENCE IPLUS IQUOTIENT ITIMES $DIFFERENCE $PLUS $QUOTIENT $TIMES IARZAR
C01031 00288 $SIN SIN. SIN.0 SIN.1 SIN.2 SIN.XT PI%2 SIN.CF COS COS.
C01035 00289 SQRT SQRT. SQRT.. SQRT.1
C01036 00290 SQRT SQRT. SQRT..
C01041 00291 SQRT SQRT. SQRT.. SQRT.2 SQRT.3
C01044 00292 LOG LOG. LOG.. LOG.1 LOG.2 ROOT2 LOG.CF NUMFLT NUMFL3
C01046 00293 ATAN ATAN. ATAN.1 ATAN.2 ATAN.3 ATAN.4 PI% ATAN.C
C01049 00294 EXP EXP. EXP.. EXP.A EXP.1 EXP.2 EXP.RX EXP.3 EXP.CF FPWUN INTLG C1.0E5 YPOCB BCOPY BCOP1 BNARSV BNARRS
C01054 00295 PLOV PLOV2 PL1BN TIMOV TIM1BN T2 T12 PL2BN
C01056 00296 TIM2BN T11 T13 T13X BNDF BNPL BNPL1 T19A T19B T19C BNXTIM BNTIM
C01058 00297 DIVSEZ REM2BN DV2BN DV1BN BNDV
C01060 00298 DV2BN1 DV2BN2 BNFXLP DV2BN3 D1FIN
C01062 00299 BNTRUN BNTR4 BNTRSZ BNTRS1 BNPJ2 BNCV BNCVTM T17 T16 T23
C01065 00300 BNSUB BNADD BN4 BN15 BN20 BN7 BN9 BNADD2 BN14 BN8 BN5 BN13 BN6
C01067 00301 BNSUB2 BN10 BN11 BN11A BN12 BNM1 BNM2
C01071 00302 BNMUL BNM5 BNM4 BNM3
C01074 00303 BNQUO BNQUO1 BQ1 BQ2
C01076 00304 BQCC BQGEST BQZQ BQCOPY BQNORM
C01078 00305 BQ6 BQSRRM BQSHRM BQVET BQSHRT REMFIN BQ10 BQDD BQ11
C01080 00306 BQ5 BQ7 BQ8 BQ9 BQ9A BQ9B
C01082 00307 BQEFIN BQSH0 BQ1DF BQGESS BQCHEK BQC2 BQC1 BQFIN
C01084 00308 BQSUB BQSUB0 BQSUB7 BQSUB1 BQSUB6
C01086 00309 BQSUB3 BQSUB4
C01089 00310 FLBIGF FLBIG FLBIGX FLBIGZ FLTB1 FLBIGQ FLBIGO
C01091 00311 FIXBIG FXBFV FXBFZ FBFIN FXBFQ MNSBG POP4J
C01093 00312 ABSBG0 ABSBG REMBIG GRBB GRBBL GRBR
C01095 00313 GRFXB GRBFX GRBF GRB1 GRB12 GRB13 GRB14 GRB2 GRBBEL GRBBE2
C01097 00314 1HAI 1HAI1 2HAI 2HAI2 2HAI0 2HAI3 2HAI4
C01100 00315 GCDBG GCDBG0 GCDBG1 GCDBG2 GCDBGU GCDBHU GCDBG4
C01104 00316 GCDBGV GCDBHV BNLWFL BNLWFX BNLWXX GCDBGO GCDBGT GCDBX GCDOV GCDOV1
C01106 00317 POP3UB POP2UB EVALHOOK EVNH3 EVNH0 OEVAL OEVL1 EVAL EVAL0
C01109 00318 EV0 EV0A EV0ALS EVAPH EV0H EVTB1 EV2 EVTB2 EE1 EE2 EE2A ETT EAL EAL2 EFM
C01115 00319 EFX AEXP EXP3 CIAPPLY EFS ELSB ELSB1 ESAR EAR EAR3 EAR1
C01117 00320 ESB ESB4 ESB2 ESB1 ESB3 ESB3A ESB3C EV3 EV4 EV4B EV3C EFMER EWHEN SYMEV0 SYMEVAL EVSYM EE1A
C01121 00321 APPLY APPWT1 .APPLY AP3 AP3A APPWTA AP2 AP4
C01124 00322 SUBRCALL RETTYP %LSUBRCALL PTRCHK
C01126 00323 %ARRAYCALL %ARR7 FUNCALL FUNCA1
C01128 00324 %LXFC liap0 liap0a liap0b liap1 liavec liavc0 liavc9
C01132 00325 IAPPLY ILP1 IALIS ILP1B
C01135 00326 APTB1 IAPATM IAPAT2 IAPAT3 IATT IAPIAL IAPIA1 IIAL IAPSAR IAPARR IAPSBR IAPSB1 IAPAR1 IAHNK IAPXPR IAPLSB IAP2
C01139 00327 IAPLMB IPLMB1 IAP5 IAP5C IAP5B IPLMB2 IPLMB4 IPLM4A IPLM4B IPLMB5 LMBLP LMBLP1 LMBLP2 IPROGN IAP3 CUNBIN IAP4
C01143 00328 FUNCTION QUOTE DECLARE $COMMENT SETQ SET1 SET0 $AND $OR ANDOR
C01145 00329 PROG PRG1 PRG1Z PG0 LPRP PG1 PG1A PG0A VBIND PBIND PBIND1 PBIND2 PROGV RETURN PRXIT ERRP4 RHAPJ CQFUNCTION
C01149 00330 GO GO2 GO1 PG5 PG5A GO3 GO3B GO3A
C01151 00331 DO DO4A DO4 DO4C DO7 DO7A DO9
C01153 00332 DO8 DO2 DO4D DO5 DO5Q DO5Q1 DO5F DO5B
C01155 00333 DO5E DO5D DO5G DO5C DO6 DO6A DO6C
C01157 00334 COND1 COND CON3 COND2 CON2 BKERST BKRST3 BKRST4 BKRST0 BKRST2 BKRST1
C01160 00335 ERRSET ERRST3 ERRNX ERR ERR3A ERR3 CATCH .CATCH .CATC1 CATCHB CATCB2 CATCB1 CATCHALL UNWINP UNWERR PTNTRY UNWINC PTEXIT UNWINE THROW .THROW CATHRO WIOSPC WIOSP0 WIOSP1 WIOBND WIOBN0 WIOBN1 WIOUNB WIOUN0 WIOUN1
C01171 00336 CASEQ CASEE CASEF CASES CASE1 CASE1E CASE1H CASE1D CASE1B CASE1A CASE1Z CASE1G CASE1Q CASEBQ CASEBZ CASEM CASECK CASEEQ CASEAQ CASE1C IF IF1A
C01177 00337 SETF SETF2S SETF5 SETF1 SETF2C STF2C1 STF2C2 SETF1B SETF1C SETF2A STF2A5 STF2A7 STF2A9 CSETF5 SETF2G STF2G2 EVALCAR SETF3
C01184 00338 $PUSHER $PUSH
C01187 00339 $POPER $POP $POP4 $POP2 $POP1 $PUSH1 TNILER
C01189 00340 STORE STORE7 STORE9 BREAK SIGNP SIGNP0 SPTB
C01192 00341 PROG1 PROG2 PRG12Z PROGN PROGN1 EQ RPLACA RPLACD RPLCD3 RPLCD2
C01194 00342 GCRET GCNRT GC MINCEL GCCNT GCCNT1 GCCNT4 LPROG3 GCCNT0
C01196 00343 WHL AGC4 AGC AGC1 AGC1Q GCP4 GCP4A GCP4B
C01201 00344 GCP5 GSTRT0 GSTR0A GSTRT1 GSTRT2 GSTRT3 GSTRT5 GSTRT7 GSTRT8 GSTRT6 GCWHL2 GCWHL3 GCWHL9
C01205 00345 GCP6 GCP6Q0 GCP6Q1 GCP6Q2 GCP6Q3 GCP6Q4 GCP6Q5 GCP6Q6 GCP6Q8 GCP6Q9 GCP6R0
C01208 00346 GCP6B1 GCP6B2 GCP6A GCP6F1 GCP6F GCP6F0 GCP6D GCP6D1 GSTRT9 GCWHL6
C01211 00347 CGCMKL GCP6H GCP6H1 GCP6H8 GCP6H3 GCP6H4 GCP6H5 GCP6G GCP6H0
C01213 00348 GCP6H7 GCP6H2 GCP6H9 GCP6J1 GCP6J3 GCP6J9
C01216 00349 GCP7
C01217 00350 GCSWP GCSW1 GCSW2 GCSW2A GCSW5 GCSW7
C01220 00351 GCSWTB GCSW7A
C01222 00352 GCSWS GCFSSWP GFSP1 GFSP2 GFSCNT GFSP4 GFSP5 LPROG1 GCSWY GSYMSWP GYSP7 GYSP1 GYSP2 GYCNT GYSP3 LPROG6 GYSP5 GYSP5A GYSP5B
C01226 00353 GCSWD GCSWC GCSWZ GCSWH1 GCHSW1 GH1SP1 GH1SP2 GHCNT1 GH1SP4 GH1SP5 GH1SP6 LPROGH
C01228 00354 GCSWH2 GCHSW2 GH2SP1 GHCNT2 GH2SP5 GH2SP7 LPROGK GCSWA GSARSWP GSSP0 GSSP1 GSSP2 GSSP7 GSSP8 GSCNT LPROG4
C01231 00355 GCPNT GCPNT1 GCPNT2 GCPNT6
C01232 00356 GCE0 GCE0C0 GCE0C1 GCE0C5 GCE0C2 GCE0C3 GCE0C9 GCE0C6 GCE0K3 GCE0C7 GCE0C4 GCE0K2 GCE0K1
C01235 00357 GCE0E
C01237 00358 GCEND GCRSR0
C01240 00359 GCINBT GCINB0 GCWHR GCWHR8 GCWHR2 GCWHR9
C01243 00360 GCACRS GCACR $GCMKAR GCMKAR GCMKA1 GCGEN GCP8A GCP8A1
C01246 00361 GCMARK GCMRK0 GCMRK3 GCMRK6 GCMRK7 GCMRK4 GCMRK5 GCMKND GCMRK8 GCMRK1 GCMRK2 GCMK2A GCMK2B GCHNLN
C01252 00362 LSPGCM LSPGCS KLGCVC KLGCM1 KLGCND KLGCM2 KLGCSY KLGCSA ZZZ ZZZ KLGCSW KLGS1 KLGS1A KLGS1D
C01255 00363 GSGEN RTSPC2 RTSP2A GGEN2 GGEN1 GFSPC GTSP5A BPSGC BPSGX
C01257 00364 GCP8K GCP8J GCP8I GCP8G GCP8C GCP8B GCP8D GCP8H GCP8L GCP8L5 TWAP
C01260 00365 STGPNT GCBT
C01262 00366 RETSP RTSP2 RTSP7 RTSP9 RTSP5 RTSPC1
C01267 00367 GTSPC1 GTSP1B GTSPC8 GTSPC2 GRELAR GREL1 CZECHI GTSPC8
C01271 00368 CNLAC BPNDST GTSPC3 GT3Z GT3H GT3B GT3A GT3C GT3D GT3D2 GT3D4 GT3G
C01277 00369 PURCOPY PCOPY9 PCOPLS PCONS PCOPFX PFXCONS PFXC1 PFXC3
C01280 00370 PCOPFL PFLCONS PCOPCX PCXCONS PCOPDB PDBCONS PDBC3 PCOPDX PDXCONS PCOPBN PBNCONS
C01283 00371 PCOPSY PCOPS1 PCOPS3 PCOPHN PCOPH5 PCOPH2 PCOPH3
C01287 00372 GETCOR GTCOR4 GTCOR6 LHVB0 LHVBAR LHVB3 LHVB4 LHVB1
C01290 00373 PDLST0 PDLST8
C01293 00374 PDLOV PDLH0A PDLH2 PDLH2A PDLH2B PDLH3A PDLH4
C01297 00375 MORPDL PDLMSG PDLST9 PDLH5 PDLH6
C01299 00376 GRBPSG GTNPSG GTNPS8
C01303 00377 GTNPS3
C01306 00378 GCGRAB GCGRB1
C01308 00379 GRBSEG GRBSG1 GCWORRY GRABWORRY GCWR0A GCWR0B GCWOR2 GCWR2A GCWR2B
C01313 00380 GCWR2C GCWR3A GCWR3B GCWR3F GCWOR4 GCWR4Q GCWOR6 GCWOR7
C01317 00381 GCWORG GCWORS GCWFOO GCWORX GCWRX1 GCWRX2 LPROG9 GCWORN
C01320 00382 ALIMPG ALIMP3
C01323 00383 RECLAIM RECL1 RECL2 RECLFW REBIG RECL9 RECL9A
C01326 00384 MAKVC3 MAKVC4 MAKVC8
C01329 00385 LDPRG9 ARGCL7 MAKVC9 MAKVC5 MAKVC6
C01331 00386 $ALLOC $ALLC6 $ALLC9 $ALLC7 $ALLC8 $ALLC4
C01333 00387 $ALLC0 $ALLC5 $ALLC3 $ALLC2 RS.FF RS.VMO RS.SQX RS.BRK RS.SCO RS.WSP RS.DOT RS.MAC RS.SLS RS.RBO RS.SL1 RS.PNT RS.SL9 RS.ALT RS.ARR RS.SGN RS.DIG RS.XLT RS.LTR NWTNE NWTNN RS.FF RS.VMO RS.SQX RS.BRK RS.SCO RS.WSP RS.LP RS.DOT RS.RP RS.MAC RS.SLS RS.RBO RS.SL1 RS.PNT RS.SL9 RS.ALT RS.ARR RS.SGN RS.DIG RS.XLT RS.LTR NWTNE NWTNN RS.CMS RS.SCS RS.OBB RS.WTH RS.SEE
C01342 00388 $READCH RDCH$ READCH RDCH3 $ASCII RDCH2
C01343 00389 XINCALL INCAST INCSEO XINCA1 INCALL INCAL4 INCST2 INCST3 INCST4 INCAL5 INCAL1 INCALZ INBIND INBN4 INBN1 INBN9 LINBN9 INCAL2 INCST1 INCAL7 EOFBN0 EOFBIND EOFBN3 EOFBN5 CEOFBN5
C01351 00390 EOF EOF2 EOF8 EOF1 EOF7 EOF4 EOF9 EOF5 EOFZ
C01353 00391 INPU0 INPUSH INPU1 INPU12 INPU2 INPU3 INPOP INPU5 INPU6 INPU7 INPU8
C01355 00392 TYI$ %TYI TYI UNTYI UNTYI3 SUNTYI
C01358 00393 $PEEK $DEVICE $DEV$ $DEV0 $DEV1 $DEV1A $DEV1B
C01360 00394 $DEV2 $DEVLM $DVLMX $DVLMQ $DVLM0 $DVLM1 $DEVPS $DVPS1 $DVPS0 $DVPSX $DVPS2 $DVPS3
C01365 00395 $DEV4 TYIXCT $DEV4B $DEV4C TYIXCT TYIXCT $DEVS4 $DEV4S $DEV4U $DEV4Z $DEV4T $DEVAH TYICAL $DVAH1 $DEV4M
C01372 00396 $DEV5A $DEV5 $DEV5K $DEVBUF TYICA1 $DEV5R $DEV5S $DEV5M
C01377 00397 $DEV6 $DEV6W $DEV6A $DEV6B $DEVECO $DEVEF $DVEF1 $DVEF0
C01380 00398 $DEVSFA $DEVP1 $DEVP2 $DEVPE INFGT0 INFGET $DVLUZ INFLZZ INFLUZ
C01383 00399 BYTEAC MKNR6C MKR6DB
C01384 00400 READLIST RDLPEK RDLTYI RDLTY1 RDLTY3 RDLTY9 RDLTY2 RDLPK1 RDLUNTYI READ6C R6C1
C01386 00401 READ$ IREAD IREAD1 OREAD READ READ0 READS0 READST
C01389 00402 READ0B RD0B1 RD0B2A RD0BRM RVRCT
C01391 00403 READ0A RMCER REKRD REKRD1 RDOBJ3 RDOBJ1 RDOBJ RDOBJ0
C01394 00404 RDJ2A RDOBJ5 RDOBJ2 RDJ2A1 RDOBJ6 RDJ6A RDOBJ7 ER1 RDOBJ4 RD8W RD8N
C01396 00405 RDNUM RDNUM2 RDNM10 RDNUM1 RDNUM8 RDNUM7 RDNUM9 RDNM9E RDNM9B RDNM9C
C01399 00406 RDNUM0 RDNUM6 RDNM8A RDNMF RDNM2 RDNM2A RDFXNM RDFX1 RDFL1
C01401 00407 RDNUM5 RDNUMD RDNUMB RDIBOV RD10OV RDNUMC
C01403 00408 RDFXEX RX1 RX1 RDFX2
C01404 00409 RDFLNM RDFL3 RDFL3A RDFL2A RDFL2D RDL2D0 RDL2D3 RDL2D1 RDFL2E RDL2EB RDL2EA RDL2E0 RDL2E1 RDL2EC RDL2A0 RDL2A2 RDL2A1 RDL2A3
C01408 00410 RDLST RDLSTA RDLSAA RDHNK1 RDLST1 RDLST0 RDHNKA RDLST3 RDLS3Y RDLSX RDLSX1 RDLS3D RDLST4 RDLS4A RDLS4B RDHNK RDSKWH RDSKWX
C01414 00411 RDOBM2 RDOBJM RDSMCK RDALPH RDA0 RDA1 RDA3 RDA4 RLAST RLAST1 RDCHO1 RDCHO4 RDCHO3 RDCHO RDCHO2
C01418 00412 RD10OV RDIBOV RDBG10 RDBG1A RDBGIB RDBGIA .RDMULP .TIMER .TM.PL
C01420 00413 RDRGSV RDRGRS RDEXOF RDEX3 RDBIGN RDBIGM
C01422 00414 RDBGEX RDBGXM RDBFSH RDBXFL RDCBG RDCBG1 RDNM2B
C01424 00415 RDCHAR RDCH1 RDBK RDNMX RDNUM4 RDNM4A
C01426 00416 RDROM RDROM1 RDROM2 RDROM3 RDROM7 RDAEND IRDA IRDA1 RDIN
C01428 00417 ER2 ER3 RDNMER RDSME2 RDSME1 RDSMER
C01429 00418 RDQTE RDSEMI RDSMI0 RDSMI1 RDVBAR RDDBLQ RDVB5 RDVB2 RDVB3 RDVB4 CTRLQ CTRLS
C01433 00419 %TXMTA %TXCTL %TXASC TTYBUF TTYB1 TTYB1E TTYB7 TTYB7E TTYB7G TTYB7F TTYB7H TTYB7N CLRSRN TTYB2 TTYB3 TTYB3A TTYB4 TTYB4C TTYB4G TTYB4J TTYB4M TTYB5 TTYB5H TTYB5K TTYB5M TTYB6 TTYB6C TTYB6J TTYB6Q TTYB9 TTYB9A TTYB9B TTYB9D TTYB9J TTYB8
C01443 00420 TTYBRC TTYBR1 TTYPSH TTYPS1 TTYATM TTYBCH TTYBLT TTYBL4 TTYBL1 TTYBL2
C01447 00421 RUBOUT RUB1CH RUB1C1 RUB1C3
C01450 00422 %READLINE %RDLN5 %RDLN6 %RDLNZ ARYTP1 NPARTP LARYTP ARYTYP ARYIN1 ARYIN2
C01455 00423 DIMSTB DIMFTB DIMDTB DIMZTB
C01457 00424 TTDEAD TTDEDC ARRAY %%ARRAY ARRY0 ARRY0B ARRY0C ARRY0F ARRY0G ARRY1 ARRY1A
C01460 00425 ARRYQ0 ARRYQ1 ARRYQ2 ARRYQ3 ARRYQ4 ARRYQ5 ARRY1D ARRY1F ARRY2 ARRY2A ARRY2B
C01462 00426 ARRY2C ARRYAE ARRY2F ARRY2H
C01465 00427 ARRY3A ARRY6 ARRY6Q ARRY6A
C01467 00428 ARRY7 ARRY7A ARRY7B ARRY4 ARRY5 ARRY5D ARRY5F ARRY5G ARRY8
C01472 00429 AREGET AREGT2 AREGT0 AREGT1
C01473 00430 MKFLAR MKFXAR MKDTAR MKLSAR MKAR1 SACONS ADIMS0 ADIMS ADIMS1
C01476 00431 BLTARRAY BLTAR1 BLTXIT BLTALZ BLTALS
C01478 00432 .REA3 .REA3C .REA3D .REA3E C.REA2 ARYSIZ ARYSZ3 ARYSZ4 ARYSZ6 ARYSZ5 ARYSZ7
C01482 00433 OBAFIX OBAFX1 OBAFX3 RDTFIX RDTFX2
C01484 00434 BLTO1 BLTO3 BLTO4
C01488 00435 BLTI1 BLTI4 BLTI3 BLTI5 BLTI6 BLTI8
C01494 00436 .REARRAY .REA4B .REA4A .REA4 .REA5 .REA6 .REA6A .REA7 .REA7A .REA2 .REALOSE GETSP GETSP0 AGTSPC GETSP1 .REA1 .REA1A
C01499 00437 AYNV1 AYNV5 AYNV4 AYNV3 AYNV2 AYNV0 AYNVER AYNVE1 2DIMS 2DIMS1 2DIMF 2DIMF1 2DIMD 2DIMD1 2DIMZ 2DIMZ1
C01503 00438 3DIMF 3DIMS 3DIMX 4DIMF 4DIMS 5DIMF 5DIMS
C01506 00439 FILLARRAY FILLA0 FILLA1 FILLA4 FILLA5 FILLA2 FILLA3 FILLD1 FILLD3 FILLD6 FILLZ1 FILLZ3 FILLZ6 OPNCLR FILLA6 FILLA9 FILLA8 FILLA7 FILLUZ
C01511 00440 LISTARRAY LISTA3 LISTAZ LISTA7 LISTA1 LISTA2 LISTA5 LISTA6 LISJOB LISFIL LISTD5 LISTD6 LISTZ5 LISTZ6 LLDAT ILDAT LLDSTB LDAGEN LDPRLS LDDDTP LDBGEN LDNPDS
C01519 00441
C01534 00442 IALB FASLOAD LDXXY1
C01536 00443 LDDISM LDRTHS LDXQQ5 LDXQQ2 LDXQQ3 LDXQQ6 LDXQQ8 LDXQQ7
C01542 00444 LDXXX1 LDXXX9
C01544 00445 LDXHHK LDXHAK LDXHK1 LDXHK2 LDXHK3 LDXHK5
C01548 00446 LDXHAK LDXFLC LDXIRL LDREL LDABS LDABS1 LDABS0 LDBIN LDBIN1 LDBIN2 LDTTBL
C01553 00447 LDGTSP LDGS0A LDGS0H LDGSP1 LDGSP3 LDGSP5 LDGSP4 LDGSP6
C01556 00448 LDSPC LDSPC1 LDQAT LDQATX LDQAT1 LDQAT2
C01559 00449 LDQLS LDQLS3 LDQLS1 LDQLS2 LDQLS5 LDQLS4 LDQLPRO LDQPR0 LDQPR1 LDGPRO
C01562 00450 LDPRC LDPRC1 PRCHAK LDPRC2 LDPRC3 LDPRC4 LDPRC5 LDPRC6 LDPRC7
C01566 00451 PRCHAK PRCSMS PRCHA1 PRCH1A PRCH1B PRCHA4 PRCHA3 PRCHA2 PRCH2A PRTRTS
C01572 00452 LDSMSH LDZA2 LDZAOK LDZA1 LDSMNS
C01576 00453 LDGET LDGET1 LDGET2 LDGT5A LDGET4 LDGT5B
C01579 00454 LDGETX LDGETJ LDGETV LDGETW LDGET6 LDGDDT LDGDDT LDGDDT LDXCT LDMASK LDLHRL
C01582 00455 LDAREF LDARE1 LDGLB LDATM LDATBL LDATPN LDATP1 LDATP2 LDATP3 LDATP4 LDATP8
C01585 00456 LDATFX LDATX0 LDATX1 LDATX2 LDATX3 LDATFL LDATL0 LDATL1 LDATL2 LDATL3
C01587 00457 LDATBN LDATB1 LDATB2 LDATB3 LDATB6 LDATB8 LDATB7 LDAEXT LDRFRF
C01589 00458 LDENT LDENT4 LDNRDF LDPARG LDPRG3
C01593 00459 LDPUT LDPUT7 LDPUT0 LDPUT4 LDPUT5 LDPUT1 LDPUTM LDPUT2 LDPT2A LDPUT3 LDLOC LDLOC5
C01598 00460 LDEVAL LDEVL7 LDEV0 LDEV4 LDEV5 LDEV2 LDEV1
C01602 00461 LDBEND LDBEN1 LDFEND LDFEN2 LDFEN3 LDNPUR LDZPUR
C01605 00462 LDSDPL LDSDP1 LDSDP2 LDSDP3
C01607 00463 LDEOMM LDEOM1 LDTRYI LDLRSP LDRSPT
C01609 00464 LDLIST LDLIS0 LDLIS1 LDLTBL LDLATM LDLLST LDLDLS LDLLS1 LDLLS3 LDOWL LDLHNK LDLEND
C01612 00465 ZZ ZZZ ZZ ZZZ LDFNM2 LDGTW0 LDGTWD LDGTW1 LDGTW9 LDGTW0 LDGTWD LDGTW1 LDGTE1 LDGTWE LDGTW0 LDGTWD LDGTW1 LDGTW6 LDGTW4
C01619 00466 ALCHAN ALCHN0 ALCHN1 ALCH1A ALCHN2 ALCHN3 ALCHN9
C01623 00467 ALFILE UNLKPJ
C01626 00468 AFILEP XFILEP FILEP AFOSP XFOSP
C01628 00469 OFILOK IFILOK ATFLOK ATOFOK ATIFOK TFILOK TIFLOK TOFLOK XIFLOK XOFLOK FILOK NFILE FILOK0 FILOK1 FILNOK
C01631 00470 NML6BT NML6B5 NML6BZ NML6B0 NML6B2 DFNWD DFFNWD NML6FN NML6UF DFNWD DFFNWD NML6FN NML6UF NML6F5 NML6F2 NML6F4 NML6F3 NML6DV NML6D0 NML6PP NML6D1 NML6D8 NML6D7 NML6D4 SARGHT
C01651 00471 IDNTB LIDNTB IDNDLS PPNGET IDND IDNDA IDNDA IDND1 IDND2 IDND3 IDNDS IDNDX
C01656 00472 NAMELIST 6BTNML 6BTNL3 6BTNL4
C01659 00473 SHORTNAMESTRING NAMESTRING 6BTNMS X6BTNSL 6BTNSL 6BTNS 6BNS0A 6BTNS0 6BTNS4 6BTNS5 6BTNS8 6BTNS1 6BTNS2 6BTNS3 6BTNS2 6BNS3A 6BTNS3 6BTNS6 6BNS6A 6BNS7A 6BTNS7 6BNS7B
C01669 00474 NMS NMS.CQ NMS.CA NMS.DV NMS.FN NMS.DT NMS.XT NMS.LB NMS.CM NMS.RB NMS.ND NMS.ST NMS6BF NMS6B0 NMS6BT NMS6B1 NMS6B8 NMS6B6 NMS6B5 NMS6B7 NMS6B9 NMS6B4 NMS6BQ NMS6BL NMS6DV NMS6SN NMS6PD NMS6LB NMS6L1 NMS6CM NMS6RB NMS6R2 NMS6R1 NMS6ST NMS6PP
C01683 00475 NMS6BB NMS6BA NMS6B0 NMS6BT JFN6BT JS%OUT JFN6BC JFN6BX JFN6BU RLJLUZ JFN6BY JFN6ER JFN6BA JFN6BB LFGB20 LFGB10
C01689 00476 IFL6BT FILSFA FIL6BT FIL6B0 FIL6DF FIL6B1 FIL6B2 NMH6BT QIOSAV LQIOSV
C01692 00477 MERGEF MRGF1 DMRGF DMRGF7 ZZZ ZZZ DMRGF5 DMRGF6 TNXUDI TNXUD0 TNXUD3 TNXUD6 TNXUD5 TNXUD2 TNXU9P TNXU9D TNXST9 TNXDIE IMRGF MRGF2 MRGF3 C6BTNML TRUNM9 TRUENAME TRUNMZ TRU6BT TRUNM2 TRUNM8 TRUNM0 SUREAD SUWRITE
C01702 00478 2MERGE PROBEF PROBEZ PROBF0 D10RFN PROBF6 PROBF8 PROBF9
C01708 00479 $RENAMEF RENAM2 RENM2A RENAM3 RENAM1 RENAM0 RENM0A RENM0B RENM1A RENAM7 RENAM8 RENAM4 RENAM5 RNAM5A RENAM4 RENAM5 RENAM6 RENAM9 XCIOL RFNAME CNAMEF CNAME3 CNAME2 CNAME1 CNAMER CNAER1 CNAER2
C01717 00480 $DELETEF $DELNS $DEL6 $DEL3 $DEL7 $DEL5 $DEL4 $DEL5 $DEL9 $DEL9A
C01722 00481 CLOSE0 $CLOSE ICLOSE ICLOS6 CLOSE9 JCLOSE CLOSE4
C01725 00482 FORCE FORSF1 FORCE1 FORCE9 IFORCE IFORC1 FORCE6 IOTTTT SIOT
C01729 00483 SFMD0 SFILEMODE SFMD0A SFMD1
C01733 00484 LOAD LOAD5 LOAD6 LOAD7 LOAD7A LOAD8 LOAD1 ZZ LOAD3 LOAD2 LOAD4 $FASLP FASLP1 FASLP8 FASLP9 FASLP2 FASLP2 INCLUDE .INCLUD INCLU1 INCEOF
C01743 00485
C01748 00486 $OPEN $OPNNS OPEN0J OPEN1A OPEN1C OPN1F1 OPEN1F OPEN1G OPEN1K OPEN1H OPEN1Z
C01752 00487 OPMDS LOPMDS OPBITS
C01754 00488 OPEN1L OPEN1Y OPEN1S OPEN1M OPEN1N OPEN1P OPEN1R OPEN1Q
C01761 00489 OPEN1T
C01764 00490 OPEN3 OPEN3C SOPEN3C OPEN3D OPN3D1 OPEN3E OPEN3F OPEN3M OPEN3N OPEN3D OPEN3E
C01774 00491 OPEN3G OPEN3P OPEN3K OPEN3L OPN3LA OPN3LB OPN3LC OPEN3J OPN3JA OPEN3Q OPEN3H OPEN3V OPEN3Z
C01782 00492 OPNBO1 OPNAO1 OPNBI1 OPNAI1 OPNA6 OPNTI1
C01785 00493 OPNTO1 OPNTO5 OPNTO6
C01789 00494 TTYGET TTYSET SCML CNSGET OPNAT3 OPNAT5 OPEN4
C01791 00495 OPNLZS OPNLZR OPNAND OPNLZ1 OPNALZ OPENLZ OPNLZ0 OPNLZ1 OPNLZ3 OPNLZ2
C01793 00496 OPENUP FILLEN ACCESS RCHST
C01795 00497 OPEN9A OPEN9B OPEN9D
C01798 00498 OPEN9C $EOPEN $EOPN1 $EOPN2 $EOPN3 $EOPN6 $EOPN5 $EOPN7 $EOPN8 $EOPN9 $EOPN4
C01805 00499 DEFAULTF SSCRFILE ENDPAGEFN EOFFN EOFFN0 EOFFNZ EOFFN2 EOFFN5 EOFFNY EOFFN7
C01808 00500 $LISTEN $LSTN3 $LSTNS $LSTN4 $LSTN6 $LSTN5 LISTEN
C01811 00501 LINEL PAGEL CHARPOS LINENUM PAGENUM FLFWNA FLNSFL FLFROB FLFRFL FLFRF1 FLFRB1 FLFB1A FLFRB3 FLFRB5 FLFRB6 FLFRB8 FLFRB7
C01815 00502 $IN $INNOS $INTST $IN2 $IN1 $IN3 INB6 $IN4 $IN5M $IN7 INB4 $IN8 INSIOT IB4
C01823 00503 $OUT $OUTNS $OUT3 $OUT2 $OUT1
C01826 00504 FILEPOS FPOS0E FPOS0B FPOS0C FPOS0D FPOS0 FPOS0A FPOS1 FP1SF1 FPOS1A FPOS1C FPOS2
C01829 00505 FPOS5 FP5SF1 FPOS5A FPOS6 FPOSZ FPOS6C FPOS6B FPOS6A FPOS7 $LENWT $LENGTHF $LENFL
C01837 00506 CNPCHK VAROPT
C01840 00507 CNPCOD CNPCUR CNPCD1 CNPCD2 CNPC9
C01844 00508 CNPOK RCPOS RCPS1 RSTCUR RSTCU3
C01848 00509 CNP.X CNP.B CNP.M CNP.C CNP.T CNP.IL CNP.DL CNP.A CNP.D CNP.F CNP.H CNP.H1 CNP.I CNP.Z CNP.U CNP.V CNPBBL CNPBL CNPL CNPU CNPF CLRSRN
C01852 00510 OPNTTY OPNT0 OPNT1 OPNT1A OPNT2 COPNT2
C01856 00511 CLRIN CLRI3 CLRIN9
C01858 00512 CLROUT CLROSF CLRISF CLRO3 CLRO4 CLRO4 RCPOS1
C01861 00513 TTYMOR TTYMO3 TTYMO1 TTYMO2 TTYMOZ
C01863 00514 STCREA STCREN STMASK STCRE4 STCRE5 STCRE6 STCRE3 STCRE2 SCREBS STCRE1 STKNOT STKNOL STCAL1 STCALL ISTCAL ISTCA0 ISTCSH ISTCA1 ISTCA2 STPRED STSTOR STGET STDISW STDIOB STDIS1 STDIS2 STSYSL STRSLN STGETD STGETU STGPNA STGFUN STGWOM STGWO1 STGWO2 STSTOD STSTOU STSTU1 STSPNA STSFUN STSWO1 STSWOM
C01877 00515
C01878 00516 PIHOLD PINBL STDMSK DBGMSK STDMS2 DBGMS2 INTVEC TTYDF1 TTYDF2 LINTVEC
C01882 00517 DISMSK DISMSK STDMSK STDMSK STDMSK DBGMSK CHNTAB LEVTAB ENBINT ENBIN2 ENBIN1 REAINT DALINT DISINT DSMINT INTSUP $PDLOV INTNXP INTIRD INTMPV INTIWR INTILO INTMER INTASS ASSIN1 ASSRET
C01895 00518 ENBINT REAINT REAIN1 DISINT DALINT INTRPT MAILINT DSMINT INTERR PARINT NXMINT ILMINT SAIMER EYEINT SAIIMS SAIDSP
C01909 00519 ENBINT REAINT REAIN2 REAIN1 DISINT DALINT APRTRP $PDLOV DSMINT UCHINT REETRP REETR1
C01917 00520 INTXIT INTXT2 INTXT9 INTLOS INTLS1 INTLS9 XUINT XUINT9
C01922 00521 MEMERR MPVERR PURERR ILOPER ILOPR1 PARERR MEMER5 MEMER7 MEMER8 UIMPAR UIMILO UIMWRO UIMMPV $XLOST $XLOSE MEMER8 UIMPAR UIMILO UIMWRO UIMMPV IOCERR IOCERA IOCER8 IOCER9
C01930 00522 CHNINT CHNI1H CHNIZ TTYI1 CHNI2
C01936 00523 CHNI4 CHNI4A CHNI5 CHNI8 CHNI4C CHNI4H
C01938 00524 JOBINT TTYICH TTYIC1
C01941 00525 CN.W CN.W0 CN.Z CN.Z0 ALTP CN.Z ALTP CN.Z CKI2I CTRLG CN.X CN.G CN.G1
C01945 00526 REALCLOCK RUNCLOCK RCLOK1 FNYINT FNYIN0 RCLOK2
C01947 00527 CLIINT TTRINT SYSINT MARINT
C01948 00528 YESIN1 UISTK1 UISTK2 TMDAMI TMDAM2 QMARK
C01950 00529 PURPGI PPGI5A PPGI3 PPGI5 PPGI6
C01952 00530 UIMPAR UIMILO UIMWRO UIMMPV UIFCLI UIFMAR UIFTTR UIFSYS NUINT1 NUINT2
C01956 00531 UINT UINTEX UINTX1 UINT2 UINT3 HHCTB UINTPU
C01959 00532 YESINT UINT0 UIXPUSH UISWS UISAVT UIFRM UISAVA
C01964 00533 UINT30 UINT31 UINT32 UINT33 UINT40 UINT0X UINT0N UINT0Z UINT88 EUINT0 UINT45 UINT46 UINT49 UINT90 UINT91
C01969 00534 CKI0 CKI2 CKI2A CKI2F CKI2F1 CKI3 CKI3B RQITR CKI4A CKI1 CKI1A
C01972 00535 UUOH0 UUOH2 UUOH2A UUOACL UUOAJC UUOH0B UUOH0A
C01975 00536 UUOH1 UUOH0C UUOH1A UUOH3B
C01977 00537 UUOTRT UUAT UUST UUFST UULT UUET UUFET UUNAF UUALT UUMCT UUALT1
C01980 00538 UUOBNC UUOBAK UUBKG1 UUOBK7 UUOBK0 UUOBK1 UUOBK8 UUOBK5 UUOBK6
C01982 00539 UUOSBR UUOSB2 UUOSB3 UUOSB5 UUOSB6 UUOSB7 UUOSB4 UUOXT0 UUOXIT UUOXT1 UUOXCT UUOACS
C01985 00540 UUOARR UUOS0 UUOS03 UUOAR2 UUONVL FIX7 UUOS1E UUOS2E UUOE3
C01988 00541 UUOS0E UUOS0F UUOE2 UUOSE1 UUOS1
C01990 00542 UUOX4B UUOLSB UUOLB3 UUOLB4 UUOFUL
C01993 00543 UUOS9 UUOS7 UUOS7A UUOS7H UUOS7K
C01995 00544 UUOS2A UUOS2 UUOS2Q CILIST UUOS1A
C01997 00545 UUOS4 UUF2N UUOS6 UUOS6Q UUOS11
C01999 00546 UUOS3 UUOS4A UUOEX2 UUOS UUOEXP UUOEX4 UUOS10 UUS10A
C02001 00547 UUL2N UUOS5 UUOS5A UUOS5B UUOS5C
C02004 00548 ARGCHK ARGLCK ARGCK1 ARGCK2 ARGCK0 ARGCK4 ARGCK3 ARGCK5 ARGPDL ARGP0 ARGP1 PDLARG PAERR PDLA2
C02006 00549 STRTOUT ERP0E ERP0F ERP0A ERBPLOC ER7PLOC ERP1 ERP5 ERP5A ERP7A ERP7 ERP0D ERP0C ERP3 ERP4 ERP6 ERP6A ENDFUN
C02010 00550 LISP LISP17 LIHAC LISP43
C02015 00551 PPNUSNSET UDIRSET UDRS5 UDRS4 UDRS1 UDRS1A UDRS1B UDRS2 UDIRS6 UDIRS7 UDIRS8 UDRS8A UDIRSX TNXSET TNXST0 TNXST2 TNXST4 TNXST1 D10SET
C02025 00552 JCLSET JCST4 JCST2 JCST5 JCST1 JCST3
C02028 00553 SFXTBL SFXTBI PROTB
C02030 00554 $IWAIT INTSFX SPWIN SPWIN1
C02033 00555 IWLOOK INTXCT
C02035 00556 INTSYP INTSYQ INTSYX INTROT INTPPC INTC2X INTC2Y INTACT INTTYX INTACX INTZAX INTBAK INTBK1 INTOK IWWIN IWSTAK
C02038 00557 PATCH EPATCH NPURPG INUM PFXEST SYMEST LSYALC GSNSYSG GSNSY2 GSNPFXSG KNOB KNOB
C02041 00558 C.. C. PNL F.
C02044 00559 PNL S. B. ZZ A C.
C02047 00560 BLSTIM DEDSAR DBM BSYSAR OBARRAY READTABLE PRDTBL TTYIFA TTYOFA INIIFA ESYSAR
C02051 00561 C. BXVCSG BXVCSG EVCSG SY2ALC TRUTH QUNBOUND SYALC S. ESYMGS
C02053 00562 $$$TRUTH $$$UNBOUND B. INR70 IPPN1 IPPN2 F. EPFXGS BPURFS PWIOINT $$UNBOUND $$NIL VNIL $$TRUTH VT VTRUTH SUNBOUND
C02056 00563 SSSBRL ASBRL SYSBRL SBRL QGRTL IGSBV QLSTF.X PRMCLS BSYSAP QFL.ER ER$AL QFL.HE HE$AL QFL.AL AL$AL QFL.DY DY$AL QFL.LE LE$AL QFL.HM HM$AL QFL.LT LT$AL ESYSAP
C02059 00564 Q%ALD QA%DDD IRATBL IRACOM BNM23A BNM23B BN.1A BNV2A QTLIST QLSPOUT QLSPOUT QUWL QURL LGOR
C02061 00565 QNILSETQ QTSETQ QXSETQ ARQLS $QMLST QSJCL SPCNAMES PURSPCNAMES PDLNAMES
C02063 00566 RDQTEB
C02065 00567 QBIGNUM ITSCSR IPPN1 IPPN2
C02071 00568
C02073 00569
C02077 00570
C02079 00571
C02082 00572
C02083 00573
C02085 00574
C02090 00575
C02092 00576
C02094 00577
C02097 00578 DOLLRP
C02100 00579 PFSLAST ESYSVC LISAR TYIMAN UNTYIMAN UNREADMAN READPMAN FASLP TIRPATE ARGLOC ARGNUM
C02102 00580 BFVCS INFVCS SYMSYL NXXASG NXXZSG BXXASG NXXASG BXXZSG NXXZSG NSY2SG ZZ ZZZ XHINUM XLONUM IN0
C02105 00581 BXXPSG NXXPSG NPURFS FIRSTW QXSET1 NUNMRK PLLISP FEATLS OPSYFT SITEFT FILEFT
C02108 00582 BPROTECT TLF BLF VCTRS QF1SB PA3 GCPSAR RDLARG SUDIR FEATURES LDFNAM LDEVPRO NILPROPS DEOFFN DENDPAGEFN UUSRHNK USENDI UCALLI LPROTECT
C02110 00583 Q. V. IGCMKL OBTFS LFSALC FSALC VBP1 VBPE1 IGCFX1 IGCFX2 LFWSALC FWSALC NIFWAL
C02112 00584 BBIGPRO BN235 BNM235 BNM236 BNV2 BN.1 LBIGPRO BBNSG NBNSG BXXBSG NXXBSG BLSTIM NBITB ZZ BTBLKS BFBTBS NBPSSG NFXPSG NFLPSG NPSG NSPSG NXFXPSG NXFLPSG NXPSG NXSPSG NNXMSG NNXMSG ZZX ZZX SPDLORG PDLORG FLPORG FXPORG ZZX ZZX SPDLORG PDLORG FLPORG FXPORG
C02117 00585 OBTL INITIALIZE
C02120 00586 INIT2A INIT2B INIT2F INIT2P INIT2E INIT2X
C02123 00587 INIBS INIBS1 INIBS2 INIT5
C02126 00588 BZERSG BSYSSG IN10ST IN10S5 IN10S8
C02129 00589 ININTR INIRND BINIT9 BINIT9
C02131 00590 INIT1Z INIT1W INIT1E INIT1A INIT1B INIT1M INIT1J INIT1K INIT1F INIT1G INIT1H INIT1D INIT1C INIT1V INIT1X INIT2A INIT2B INIT7A INIT7B INIT99 INITO1 INITO2 INITO3 INIT1Q INIT1S
C02139 00591 NOTINIT INIBSP INIBD INIBD1 KLINIT KLINI1 KLINI2
C02142 00592 LOPDL LOFXPDL LOSPDL LOFLPDL ALBPS
C02143 00593 XLABEL
C02144 00594 FAKJCL ALLF AINFIL ATYF LICACR ALERR ALLTYO ATYOI ALLECO SAILP4 SAIP1 SAIP2 SAIP3 ALLTYI ATI2 ATI1 ALLTYC ALOIOT
C02148 00595 ALLRUB ALLNUM ALNM2 ALNM27 ALNM3 ALNMOK ALSYER ALNMER ALLNER
C02150 00596 ALNM1 ALNM1A DECDIG DDIG1
C02152 00597 ALOFIL ALOINI ALOFL2 ALOJCL ALOIN1 ALOFL4 ALOFL1 ALOFL5 ALOFL6 ALFDEF
C02155 00598 ALLFIL ALLFL1 ALLFL2 ALCLUZ ALCLZ1 ALLTTS ALHELP
C02158 00599 ALFLER ALCERR ALFL6 ALFL6A ALF6A0
C02160 00600 %ALLOC ALFDE1 ALJ1 ALJ1A ALJ1A1 ALJ1A2 ALJ1B ALJ1B1 ALJ1B2 ALJ2 ALJ2Q ALJ2A ALJ2A1 ALJ3 E.ALJO ALJ1 ALJ1A ALJ1A1 ALJ1A2 ALPPN1 ALJ1A3 ALJ1B ALJ1B2 ALJ2 ALJ2Q HAFPPN HAFPP1 ALJ3 ALLCB1 ALLOCB
C02172 00601 ALLOCA ALLOC1
C02174 00602 ALCORX ALCORE ALCORX ALCORE ALLOCC
C02176 00603 ALLCZX
C02178 00604 ALLCPD
C02180 00605 ALLCPD ALCPD1 SYMMV6 ALQX1 ALSGHK ALQX2
C02185 00606 ALLDONE SYMMOV SYMMV1 LPROGS
C02186 00607 INIIF1 INIIF2 FI.EOF FI.BBC FI.BBF F.MODE F.CHAN F.FLEN F.FPOS F.DEV F.RDEV F.DEV F.DIR F.FNM F.EXT F.VRS AT.CHS AT.LNN AT.PGN LONBFA FB.BYT FB.BFL FB.BVC FB.IBP FB.BP FB.CNT FB.HED FB.NBF FB.BWS FB.BUF LINIFA EINIFA ENDLISP ENDHI
C02192 ENDMK
C⊗;
;.MLLIT ITS TOPS10 TOPS20 SAIL TENEX CMU ML BIGNUM OBTSIZ PTCSIZ NEWRD JOBQIO HNKLOG SFA NIOBFS USELESS DBFLAG CXFLAG NARITH
;;; -*-MIDAS-*-
;;; **************************************************************
;;; ***** MACLISP ****** LISP INTERPRETER AND SYSTEM *************
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
.SYMTAB 16001. ;ENSURE ROOM FOR MANY SYMBOLS
TITLE ***** MACLISP ****** LISP INTERPRETER AND SYSTEM *************
.NSTGWD ;NO STORAGE WORDS PLEASE UNTIL FIRSTLOC
.XCREF A,B,C,AR1,AR2A,T,TT,D,R,F,P,FXP,%
.MLLIT==1
SUBTTL ASSEMBLY PARAMETERS
IF1,[ ;***** CONDITIONAL ASSEMBLY FLAGS AND PARAMETERS *****
;" FOR ASSLIS - DO NOT PUT ANY OTHER DOUBLE QUOTES ON THIS PAGE
ITS==0 ;1 FOR RUNNING UNDER THE ITS MONITOR
TOPS10==0 ;1 FOR RUNNING UNDER DEC TOPS-10 MONITOR
TOPS20==0 ;1 FOR RUNNING UNDER DEC TOPS-20 MONITOR
SAIL==0 ;1 FOR RUNNING UNDER SAIL MONITOR
TENEX==0 ;1 FOR RUNNING UNDER THE TENEX MONITOR
CMU==0 ;1 FOR RUNNING UNDER THE CMU MONITOR
;LATER WE WILL DEFINE D10==TOPS10\SAIL\CMU AND D20==TENEX\TOPS20
ML==0 ;1 SAYS THIS LISP IS FOR ML (OR MC) INSTEAD OF AI (ONLY IF ITS==1)
BIGNUM==1 ;MULTIPLE PRECISION ROUTINES FLAG
OBTSIZ==777 ;LENGTH OF OBLIST
PTCSIZ==40 ;MINIMUM SIZE FOR PATCH AREA
NEWRD==0 ;NEW READER FORMAT ETC
JOBQIO==1 ;SUPPORT FOR INFERIOR PROCEDURES
HNKLOG==9 ;LOG2 OF SIZE (IN WORDS) OF LARGEST HUNK (0 => NO HUNKS)
SFA==1 ;1 FOR SFA I/O
NIOBFS==1 ;NUMBER OF I/O BUFFERS FOR D10 SYSTEMS
USELESS==1 ;NOT PARTICULARLY IMPORTANT FEATURES, LIKE:
; 1) ROMAN NUMERAL READER AND PRINTER
; 2) PRINLEVEL AND PRINLENGTH
; 3) DOUBLE-PRECISION INPUT OF SINGLE-PRECISION FLONUMS
; 4) CURSORPOS
; 5) GCD
; 6) DUMPARRAYS, LOADARRAYS [AUTOLOADED IN NEWIO]
; 7) RECLAIM, AND RETSP FEATURE WHICH RETURNS BPS CORE TO TS SYSTEM
; 8) PURIFY, AND PURE-INITIAL-READ-TABLE
; 9) CLI INTERRUPT SUPPORT
; 10) MAR-BREAK SUPPORT
; 11) AUTOLOAD PROPERTIES FOR ALLFILES ETC.
; 13) CLEVER TERPRI-BEFORE-THE-PARENS HACK
; 14) HUGE TABLE FOR RANDOM NUMBER GENERATOR
; 15) Exchange A and CONSed hunk for REES and RWK
DBFLAG==0 ;1 FOR DOUBLE-PRECISION FLOATING-POINT NUMBERS
CXFLAG==0 ;1 FOR COMPLEX ARITHMETIC
;; IF EITHER THE DBFLAG OR CXFLAG ARE SET, THE THE FLAGS KA, KI, AND KL MUST BE
;; SET. OR ELSE, MAYBE, GO THRU AND REMOVE THEIR USAGE. JONL - 10/16/80
NARITH==0 ;1 FOR NEW ARITHMETIC PACKAGE
;" FOR ASSLIS - DOUBLE QUOTES ARE OKAY NOW
;
;;; IF1
SUBTTL STORAGE LAYOUTS
;;; STORAGE LAYOUT FOR ITS
;;;
;;; BZERSG 0 - - LOW PAGES
;;; ACCUMULATORS, TEMPORARY VARIABLES,
;;; INITIAL READTABLE AND OBARRAY
;;; BSTSG ST: - - SEGMENT TABLES
;;; BSYSSG FIRSTL: INITIAL SYSTEM CODE (PURE)
;;; BSARSG INITIAL SAR SPACE
;;; BVCSG INITIAL VALUE CELL SPACE
;;; BXVCSG [EXTRA VALUE-CELL SEGMENTS - - POSSIBLY NONE]
;;; BIS2SG SYMBOL-BLOCKS
;;; BSYMSG SYMBOL-HEADERS
;;; BSY2SG **SYMBOL-BLOCKS
;;; BPFXSG **FIXNUMS
;;; BPFSSG **LIST-STRUCTURE
;;; BPFLSG [**FLONUMS - - POSSIBLY NONE]
;;; BIFSSG LIST-STRUCTURE
;;; BIFXSG FIXNUMS
;;; BIFLSG FLONUMS
;;; BBNSG BIGNUMS
;;; BBITSG BIT BLOCKS FOR GC
;;; BBPSSG START OF BINARY PROGRAM SPACE
;;; C(BPSL) (ALLOC IS IN THIS AREA)
;;; V(BPORG) START OF BPS UNUSED FOR PROGRAMS
;;; V(BPEND) ARRAYS START NO LOWER THAN THIS
;;; C(BPSH) LAST WORD OF BPS
;;; ... BINARY PROGRAM SPACE GROWS UPWARD ...
;;; C(HINXM) LAST WORD OF GROSS HOLE IN MEMORY
;;; ... LIST STRUCTURE GROWS DOWNWARD ...
;;; PUSHDOWN LISTS WITH HOLES BETWEEN:
;;; FXP, FLP, P, SP
;;;
;;; C(NPDLL) LOW WORD OF NUMBER PDL (LOW OF FXP)
;;; C(NPDLH) HIGH WORD OF NUMBER PDL + 1 (HIGH+1 OF FLP)
;;;
;;; STORAGE LAYOUT FOR DEC10
;;;
;;; ***** LOW SEGMENT *****
;;; BZERSG 0 - - LOW PAGES
;;; ACCUMULATORS, TEMPORARY VARIABLES,
;;; INITIAL READTABLE AND OBARRAY
;;; BSTSG ST: - - SEGMENT TABLES
;;; BSARSG INITIAL SAR SPACE
;;; BVCSG INITIAL VALUE CELL SPACE
;;; BXVCSG [EXTRA VALUE-CELL SEGMENTS - - POSSIBLY NONE]
;;; BIS2SG SYMBOL-BLOCKS
;;; BSYMSG SYMBOL-HEADERS
;;; BIFSSG LIST-STRUCTURE
;;; BIFXSG FIXNUMS
;;; BIFLSG FLONUMS
;;; BBNSG BIGNUMS
;;; BBITSG BIT BLOCKS FOR GC
;;; PUSHDOWN LISTS:
;;; FXP, FLP, P, SP
;;; C(NPDLL) LOW WORD OF NUMBER PDL (LOW OF FXP)
;;; C(NPDLH) HIGH WORD OF NUMBER PDL + 1 (HIGH+1 OF FLP)
;;; BBPSSG START OF BINARY PROGRAM SPACE
;;; (ALLOC IS IN THIS AREA)
;;; V(BPORG) START OF BPS UNUSED FOR PROGRAMS
;;; V(BPEND) ARRAYS START NO LOWER THAN THIS
;;; C(BPSH) LAST WORD OF BPS (FIXED, SET BY ALLOC)
;;; C(HIXM) HIGH WORD OF EXISTING MEMORY
;;; C(MAXNXM) HIGHEST WORD OF NXM THAT MAY BE USED
;;;
;;; ***** HIGH SEGMENT *****
;;; BSYSSG INITIAL SYSTEM CODE (PURE)
;;; BSY2SG **SYMBOL-BLOCKS
;;; BPFXSG **FIXNUMS
;;; BPFSSG **LIST-STRUCTURE
;;; BPFLSG [**FLONUMS - - POSSIBLY NONE]
;;; BPFSSG INITIAL PURE LIST STRUCTURE
;LVRNO LVRNO ZZZ ZZZ DEFAULT
;;; IF1
SUBTTL VARIOUS PARAMETER CALCULATIONS
IFNDEF LVRNO,LVRNO==.FNAM2
IFE LVRNO-SIXBIT \MID\,[
PRINTX /What is LISP's version number (type four octal digits) ?/
.TTYMAC VRS
LVRNO=SIXBIT \VRS\
TERMIN
]
.ELSE,[
LVRNO==<LVRNO←-6>+<SIXBIT \1\> ;HACK FOR CROSSING 1000'S
IFN <<LVRNO←-30>&77>-'9, LVRNO==LVRNO+<1←36> ;HACK FOR CROSSING 2000'S
;;; REMEMBER! SOMEDAY WE MAY HAVE TO CROSS TO 3000'S - JONL, 9 JUL 1980
] ;END OF IFGE LVRNO
PRINTX \MACLISP VERSION \ ;PRINT OUT VERSION OF THIS LISP
.TYO6 .OFNM2
PRINTX \ [\ ;WATCH OUT FOR THE BRACKETS!
.TYO6 LVRNO
PRINTX \] ASSEMBLED ON \
.TYO6 .OSMIDAS
PRINTX \ AT \
IFE <.SITE 0>, PRINTX \UNKNOWN SITE\
.ELSE REPEAT 20, IFE <.SITE .RPCNT>,[.ISTOP] .TYO6 <.SITE .RPCNT>
PRINTX \
\ ;TERPRI TO FINISH VERSION MESSAGE
;;; HACK FLAGS AND PARAMETERS
DEFINE ZZZZZZ X,SYM,VAL
IFSE [X]-, PRINTX \* \
.ELSE PRINTX \ \
PRINTX \SYM=VAL
\
TERMIN
PRINTX \INITIAL SWITCH VALUES (*=EXPERIMENTAL):
\
;X=- => EXPERIMENTAL SWITCH
IRPS S,X,[ITS,TOPS10,TOPS20,SAIL,TENEX-CMU-
ML,BIGNUM,OBTSIZ,JOBQIO,HNKLOG,USELESS,
DBFLAG-CXFLAG-NARITH-SFA-]
ZZZZZZ [X]S,\S
TERMIN
EXPUNGE ZZZZZZ
PRINTC \REDEFINITIONS:
\
.INSRT TTY:
PRINTC \
\
IFNDEF HSGORG,HSGORG==400000
;;; ALL FLAGS WHICH ARE NON-ZERO MUST BE ONES: MUCH CONDITIONAL
;;; ASSEMBLY DOES ARITHMETIC WITH THEM.
IRP FOO,,[ITS,TOPS10,TOPS20,SAIL,TENEX,CMU
ML,BIGNUM,NEWRD,JOBQIO,USELESS
DBFLAG,CXFLAG,NARITH,SFA]
IFN FOO, FOO==:1
.ELSE FOO==:0
TERMIN ;USE OF ==: PREVENTS CHANGING THEM RANDOMLY
;;; CHECK MUTUALLY EXCLUSIVE FLAGS OF WHICH ONE MUST BE SET
DEFINE MUTXOR FLAGS,DEFAULT
ZZZ==0
IRP X,Y,[FLAGS]
ZZZ==ZZZ+X
IRP Z,,[Y]
IFN X*Z, .FATAL BOTH X AND Z SPECIFIED AMONG {FLAGS}
TERMIN
TERMIN
IFE ZZZ,[
PRINTX \NONE OF {FLAGS} SPECIFIED - ASSUMING DEFAULT==:1
\
EXPUNGE DEFAULT
DEFAULT==:1
] ;END OF IFE ZZZ
EXPUNGE ZZZ
TERMIN
IRP OS,,[ITS,DEC,SAIL,TENEX,CMU]FLAG,,[ITS,TOPS10,SAIL,TENEX,CMU]
IFE .OSMIDAS-<SIXBIT \OS\>, MUTXOR [ITS,TOPS10,TOPS20,SAIL,TENEX,CMU]OS
TERMIN
;D10 D20 ZZZ SEGLOG OBTSIZ DXFLAG
;;; IF1
D10==:TOPS10\SAIL\CMU ;SWITCH FOR DEC-10-LIKE SYSTEMS
D20==:TOPS20\TENEX ;SWITCH FOR DEC-20-LIKE SYSTEMS
IFNDEF PAGING, PAGING==:D20\ITS ;SWITCH FOR PAGING SYSTEMS
IFNDEF HISEGMENT, HISEGMENT==:D10*<1-PAGING> ;ASSUME HISEGMENT FOR DEC-10
;;; INSIST FORCIBLY ALTERS A PARAMETER IF NECESSARY.
DEFINE INSIST COND,SET
COND,[
IRPS X,,[SET]
ZZZ==X
EXPUNGE X
SET
IFN X-ZZZ,[
PRINTX \ COND =>SET
\
]
EXPUNGE ZZZ
.ISTOP
TERMIN
] ;END OF COND
TERMIN
;;; CANONICALIZE BITS
INSIST IFE ITS, JOBQIO==:0
INSIST IFG SAIL*<6-NIOBFS>, NIOBFS==:6
SEGLOG==:11 ;LOG2 OF # OF WORDS PER SEGMENT (WARNING! BUILT INTO NCOMPLR!)
INSIST IFG HNKLOG-SEGLOG, HNKLOG==:SEGLOG-1
OBTSIZ==:OBTSIZ\1 ;MUST BE ODD
DXFLAG==:DBFLAG*CXFLAG
;GETTAB
;;; IF1
IFE .OSMIDAS-<SIXBIT \ITS\>,[
DEFINE $INSRT $%$%$%
.INSRT $%$%$% >
PRINTX \ ==> INSERTED: \
.TYO6 .IFNM1
PRINTX \ \
.TYO6 .IFNM2
PRINTX \
\
TERMIN
] ;END OF IFE .OSMIDAS-<SIXBIT \ITS\>,
.ELSE,[
DEFINE $INSRT $%$%$%
.INSRT $%$%$%!.MID
PRINTX \INSERTED: \
.TYO6 .IFNM1
PRINTX \.\
.TYO6 .IFNM2
PRINTX \
\
TERMIN
] ;END OF .ELSE
;;; MAKE SURE THE SYMBOLS WE WILL NEED ARE DEFINED.
;;; THEY MAY NOT BE IF ASSEMBLING FOR A DIFFERENT OPERATING SYSTEM
DEFINE FLUSHER DEF/
IRPS SYM,,[DEF]
EXPUNGE SYM
.ISTOP
TERMIN
TERMIN
DEFINE SYMFLS TARGETSYS,OS,.DEFS.,DEFFER,CHKSYM,.BITS.,CHKBIT
IFE <.OSMIDAS-SIXBIT\OS\>,[
IFE TARGETSYS,[
PRINTX \FLUSHING OS SYMBOL DEFINITIONS
\
$INSRT .DEFS.
DEFFER FLUSHER
IFSN .BITS.,,[
PRINTX \FLUSHING OS BIT DEFINITIONS
\
EQUALS DEFSYM,FLUSHER
$INSRT .BITS.
EXPUNGE DEFSYM
] ;END OF IFSN .BITS.
] ;END OF IFE TARGETSYS
] ;END OF IFE <.OSMIDAS-SIXBIT\OS\>
TERMIN
DEFINE SYMDEF TARGETSYS,OS,.DEFS.,DEFFER,CHKSYM,.BITS.,CHKBIT
IFN TARGETSYS,[
IFN <.OSMIDAS-SIXBIT\OS\>,[
PRINTX \MAKING OS SYMBOL DEFINITIONS
\
$INSRT .DEFS.
DEFFER
IFSN .BITS.,,[
PRINTX \MAKING OS BIT DEFINITIONS
\
$INSRT .BITS.
] ;END OF IFSN .BITS.,,
] ;END OF IFN <.OSMIDAS-SIXBIT\OS\>
.ELSE,[
IFNDEF CHKSYM,[
PRINTX \FUNNY - RUNNING ON OS, BUT CHKSYM UNDEFINED; MAKING OS SYMBOL DEFINITIONS
\
$INSRT .DEFS.
DEFFER
] ;END OF IFNDEF CHKSYM
IFSN .BITS.,,[
IFNDEF CHKBIT,[
PRINTX \FUNNY - RUNNING ON OS, BUT CHKBIT UNDEFINED; MAKING OS BIT DEFINITIONS
\
$INSRT .BITS.
] ;END OF IFNDEF CHKBIT
] ;END OF IFSN .BITS.,,
] ;END OF .ELSE
] ;END OF IFN TARGETSYS
TERMIN
IFN D20, EXPUNGE RESET
IRP HACK,,[SYMFLS,SYMDEF]
HACK ITS,ITS,ITSDFS,.ITSDF,.IOT,ITSBTS,%PIC.Z
HACK TOPS10,DEC,DECDFS,.DECDF,LOOKUP,DECBTS,.GTSTS
HACK TOPS20,TENEX,TNXDFS,.TNXDF,JSYS,TWXBTS,GJ%FOU
HACK TENEX,TENEX,TNXDFS,.TNXDF,JSYS,TWXBTS,GJ%FOU
HACK SAIL,SAIL,SAIDFS,.DECDF,SPCWAR,DECBTS,.GTSTS
TERMIN
;;; CONFLICTS WITH UNLOCKI MACRO AND SEGSIZ VARIABLE
IFN D10,[
IFE SAIL,[
IFN <.OSMIDAS-SIXBIT\CMU\>,[
;THE FOLLOWING ARE THE SPECIAL CMU UUOs:
DEFINE .CMUCL DEF
DEF SRUN=:47000777756
DEF USRDEF=:47000777757
DEF JENAPX=:47000777760
DEF IMPUUO=:47000777761
DEF PRIOR=:47000777762
DEF LNKRDY=:47000777763
DEF INT11=:47000777764
DEF RSTUUO=:47000777765
DEF UNTIME=:47000777766
DEF TIME=:47000777767
DEF STOP=:47000777770
DEF UNLOCK=:47000777771
DEF JENAPR=:47000777772
DEF MSGPOL=:47000777773
DEF MSGSND=:47000777774
DEF DECCMU=:47000777775
DEF CMUDEC=:47000777776
TERMIN
PRINTX \MAKING CMU-SPECIFIC "CALL" DEFINITIONS
\
.CMUCL FLUSHER
.CMUCL
] ;END OF IFN <.OSMIDAS-SIXBIT\CMU\>
] ;END OF IFE SAIL
IFN SAIL, EXPUNGE SEGSIZ
EXPUNGE UNLOCK
] ;END OF IFN D10
COMMENT | MAKE @ PROGRAM UNDERSTAND POTENTIAL FILE INSERTIONS
;TABS IN FRONT OF $INSRT'S ARE NECESSARY TO FAKE OUT UNIFY PROGRAM
$INSRT ITSDFS
$INSRT DECDFS
$INSRT TNXDFS
$INSRT SAIDFS
$INSRT ITSBTS
$INSRT DECBTS
$INSRT TWXBTS
| ;END OF COMMENT
IFN D10,[
DEFINE HALT
JRST 4,.!TERMIN
EXPUNGE .VALUE
EQUALS .VALUE HALT
DEFINE .LOSE <A>
JRST 4,.-1!TERMIN
] ;END OF IFN D10
IFN D20,[
GETTAB==:47←33 41
DEFINE HALT
HALTF!TERMIN
EXPUNGE .VALUE
EQUALS .VALUE HALTF
DEFINE .LOSE <A>
HALTF!TERMIN
] ;END OF IFN D20
;
;;; IF1
;;; CALL IS A DEC UUO, BUT WE USE THAT NAME FOR A LISP UUO
EXPUNGE CALL
;;; DON'T HACK THIS $INSRT - UNIFY DEPENDS ON IT
;;@ DEFNS 228 STANDARD AC, UUO, AND MACRO DEFINITIONS
;;; ***** MACLISP ****** STANDARD AC, UUO, AND MACRO DEFINITIONS *
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
;;; THIS FILE CONTAINS:
;;; STANDARD SYMBOLIC ACCUMULATOR DEFINITIONS.
;;; UUO DEFINITIONS:
;;; ERROR CALLS AND STRING TYPEOUT.
;;; COMPILED CODE TO INTERPRETER INTERFACES.
;;; VARIOUS UUOS USEFUL FROM DDT.
;;; .GLOBAL DECLARATIONS.
;;; .FORMAT DECLARATIONS.
;;; TYPE BIT DEFINITIONS FOR USE WITH SEGMENT TABLE
;;; MACROS FOR CONDITIONALIZING SINGLE LINES OF CODE.
;;; GENERAL MACRO DEFINITIONS [THAT ANY LOSER MIGHT WANT].
;;; SYMBOL BLOCK-STRUCTURE DEFINITIONS
;;; SYMBOLIC NAMES RELATED TO ARRAYS.
;;; SYMBOLIC NAMES RELATED TO FILES.
;;; THE DEFINITIONS FOR MACLISP CONTAINED HEREIN
;;; ARE RELATIVELY STABLE. THIS FILE MAY BE .INSRT'D BY MIDAS
;;; FILES ASSEMBLED IN .FASL MODE TO DEFINE THESE THINGS.
;;; THE .GLOBAL DECLARATIONS IN PARTICULAR ARE FOR THE
;;; BENEFIT OF THESE .FASL FILES.
;;; IT IS A GOOD IDEA FOR .FASL FILES TO USE THE FASEND MACRO
;;; IN PLACE OF THE USUAL END STATEMENT.
;;; SYMBOLS FOR COMPILED CODE
IFNDEF ITS, ITS==:1
IFNDEF TOPS10, TOPS10==:0
IFNDEF TOPS20, TOPS20==:0
IFNDEF SAIL, SAIL==:0
IFNDEF TENEX, TENEX==:0
IFNDEF CMU, CMU==:0
IFNDEF D10, D10==:TOPS10\SAIL\CMU
IFNDEF D20, D20==:TOPS20\TENEX
IFNDEF PAGING, PAGING==:ITS\D20
IFNDEF BIGNUM, BIGNUM==:1
IFNDEF JOBQIO, JOBQIO==:1
IFNDEF SFA, SFA==:1
;NIL A B C AR1 AR2A NACS T TT D R F FREEAC P FLP FXP SP
SUBTTL ACCUMULATOR USAGE
NIL=:0 ;ATOM HEADER FOR NIL
A=:1 ;ARG 1; VALUE; MARKED FROM BY GC
B=:2 ;ARG 2; MARKED FROM BY GC
C=:3 ;ARG 3; MARKED FROM BY GC
AR1=:4 ;ARG 4; MARKED FROM BY GC
AR2A=:5 ;ARG 5; MARKED FROM BY GC
NACS==:5 ;NUMBER OF ACS MARKED FROM BY GC - NO OTHER ACS MARKED
T=:6 ;-<NO. OF ARGS> FOR LSUBR CALL; ALSO USED FOR JSP T,
TT=:7 ;TEMP; OFTEN USED FOR ARGS TO INTERNAL ROUTINES
D=:10 ;SOMEWHAT LESS TEMPORARY THAN TT
R=:11 ;DITTO; SOMETIMES USED FOR JSP R,
F=:12 ;SOMEWHAT LESS TEMPORARY THAN D AND R
FREEAC=:13 ;UNUSED BY LISP, EXCEPT SAVED-USED-RESTORED BY GC
P=:14 ;SUBROUTINE AND SYSTEM PDL POINTER ("REGULAR PDL")
FLP=:15 ;FLONUM PDL POINTER ("FLOPDL")
FXP=:16 ;FIXNUM PDL POINTER ("FIXPDL")
SP=:17 ;LAMBDA-BINDINGS PDL POINTER ("SPECIAL PDL")
;;; PDL POINTERS ARE ALWAYS KEPT IN ACS. PDL POINTERS ARE NOT
;;; MARKED FROM, BUT PDL DATA ON REGULAR AND SPECIAL PDLS ARE
;;; PROTECTED FROM GARBAGE COLLECTION.
;;; FLP IS NOT USED BY LISP, EXCEPT AT LDATFL AND ERRIOJ,
;;; BUT PRIMARILY BY COMPILED NUMERICAL CODE.
;;; DO NOT DO RANDOM PUSH/POPS ON SP - USE BIND AND UNBIND ROUTINES.
;LERR ACALL AJCALL LER3 ERINT PP STRT SERINT TP IOJRST STRT7 UUOMAX CALL JCALL CALLF JCALLF NCALL NJCALL NCALLF NJCALF NUUOCLS NERINT NERINT
SUBTTL DEFINITIONS OF UUO'S
;;; NOTE: LERR < LER3 < ERINT < SERINT -- SEE ERRFRAME.
LERR=:1←33 ;LISP ERROR; AC FIELD=0 => MSG IS SIXBIT, ELSE S-EXP
ACALL=:2←33 ;KLUDGY FAST UUO FOR NCALLS TO ARRAYS
AJCALL=:3←33 ;AJCALL:ACALL :: JCALL:CALL
LER3=:4←33 ;EPRINT, THEN LERR
ERINT=:5←33 ;A CORRECTABLE ERROR
PP=:6←33 ;SEXP TYPE OUT FROM DDT
STRT=:7←33 ;STRING TYPEOUT (sixbit format - stops on unquoted "!")
SERINT=:10←33 ;LIKE ERINT, BUT S-EXPRESSION MESSAGE.
TP=:11←33 ;PRINTS ST ENTRY FOR A GIVEN LOCATION
IOJRST=:12←33 ;JRST TO ADR AFTER PUTTING I/O ERROR MSG IN C
STRT7=:13←33 ;STRING TYPEOUT (ascii format - stops on 0 byte)
UUOMAX==:13 ;NO OF ERROR-TYPE UUO'S
CALL=:14←33 ;BASIC CALL FROM COMPILED CODE TO INTERFACE TO INTERPRETER
JCALL=:CALL+1←33 ;4.1 BIT ON MEANS JRST TO FUNCTION RATHER THAN PUSHJ
CALLF=:CALL+2←33 ;4.2 BIT ON MEANS NEVER CONVERT UUO INTO PUSHJ [OR JRST]
JCALLF=:CALL+3←33
NCALL=:20←33 ;4.5 BIT MEANS NUMBER FUNCTION CALL
NJCALL=:NCALL+1←33
NCALLF=:NCALL+2←33
NJCALF=:NCALL+3←33
NUUOCLS==:NJCALF←-33-CALL←-33
;;; SPECIAL INTERPRETATION OF STRT AC FIELD:
;;; AC FIELD OUTPUT TO
;;; 0 OUTFILES IF ↑R SET; TTY IF ↑W SET
;;; 17 MSGFILES
;;; X FILE(S) IN ACCUMULATOR X
;;; ERINT AND SERINT ARE DECODED BY THEIR ACCUMULATOR FIELDS.
;;; HERE ARE SOME SYMBOLS FOR REFERENCING THEM.
NERINT==0
IRPS X,,[UDF,UBV,WTA,UGT,WNA,GCL,FAC,IOL]
%!X=:ERINT .IRPCNT,
%%!X=:SERINT .IRPCNT,
DEFINE X CRUFT
%!X [SIXBIT ≤CRUFT≤]
TERMIN
NERINT==NERINT+1
TERMIN
;;; SHORT FORM ATOM WHAT IS IT?
;;;
;;; 0) UDF UNDEF-FNCTN UNDEFINED FUNCTION (FUNCTION IN A)
;;; 1) UBV UNBND-VRBL UNBOUND VARIABLE BEING EVAL'ED (ATOM IN A)
;;; 2) WTA WRNG-TYPE-ARGS WRONG TYPE OF ARGUMENTS FOR A FUNCTION (ARG IN A)
;;; 3) UGT UNSEEN-GO-TAG GO TO A TAG THAT'S NOT THERE (TAG IN A)
;;; 4) WNA WRNG-NO-ARGS WRONG NUMBER OF ARGS TO A FUNCTION (FORM IN A)
;;; 5) GCL GC-LOSSAGE GC LOST (A = NAME OF SPACE: LIST...)
;;; 6) FAC FAIL-ACT RANDOM LOSSAGE (ARG IS UP TO CALLER)
;;; 7) IOL IO-LOSSAGE ;I/O LOSSAGE
;
SUBTTL TABLE OF GLOBAL SYMBOLS USED BY COMPILED FUNCTIONS
;;; THE RELATIVE POSITIONS OF THESE SYMBOLS GET BUILT INTO FASL FILES,
;;; SO BE VERY CAREFUL ABOUT DISTURBING THE ORDER OF EXISTING SYMBOLS!
;;; GLBSYM AND SIXSYM MUST ALWAYS HAVE CORRESPONDING ENTRIES.
DEFINE GLBSYM B
IRP A,,[.SET,.MAP,PRINTA,SPECBIND,UNBIND,IOGBND,.LCALL
.UDT,ARGLOC,INUM,ST,FXNV1,PDLNMK,PDLNKJ,FIX1A
FIX1,FLOAT1,IFIX,IFLOAT,FXCONS,FLCONS,ERSETUP,ERUNDO
GOBRK,CARCDR,.STORE,NPUSH,PA3,QUNBOUND,FLTSKP,FXNV2
FXNV3,FXNV4,FIX2,FLOAT2,AREGET]
B
TERMIN
IRP A,,[%HUNK1,%HUNK2,INTREL,INHIBIT,NOQUIT,CHECKI,0PUSH,0.0PUSH,NILPROPS,VBIND
%CXR,%RPX,%CONS,%NCONS,%XCONS,%C2NS,%HUNK3,%HUNK4,%PDLC,%PDLXC,%PDLNC
PTNTRY,PTEXIT,SFCALI,UNWPUS]
B
TERMIN
TERMIN
DEFINE SIXSYM B ;SIXBIT NAMES -- MUST MATCH GLBSYM
IRP A,,[*SET,*MAP,PRINTA,SPECBIND,UNBIND,IOGBND,*LCALL
*UDT,ARGLOC,INUM,NUMVAL,FXNV1,PDLNMK,PDLNKJ,FIX1A
FIX1,FLOAT1,IFIX,IFLOAT,FXCONS,FLCONS,ERSETUP,ERUNDO
GOBRK,CARCDR,*STORE,NPUSH,PA3,MAKUNBOUND,FLTSKP,FXNV2
FXNV3,FXNV4,FIX2,FLOAT2,AREGET]
B
TERMIN
IRP A,,[%HUNK1,%HUNK2,INTREL,INHIBIT,NOQUIT,CHECKI,0PUSH,0*0PUSH,NILPROPS,VBIND
%CXR,%RPX,%CONS,%NCONS,%XCONS,%C2NS,%HUNK3,%HUNK4,%PDLC,%PDLXC,%PDLNC
PTNTRY,PTEXIT,SFCALI,UNWPUS]
B
TERMIN
TERMIN
;;; ADDITIONAL SYMBOLS FOR LAP AND .FASL HACKERS.
;;; THE ORDER OF THESE IS NOT CRITICAL.
DEFINE XTRSYM B
IRP A,,[CPOPJ,CCPOPJ,POPAJ,POP1J,CINTREL,LWNACK,SIXMAK,SQUEEZE,MKFXAR,FWCONS
SACONS,CFIX1,1DIMF,2DIMF,SEGLOG,R70,ARGLOC,ARGNUM,TTSAR,Q..MIS,MAKVC,SUNBOUND
IN0,TYIMAN,READ6C,READ0A,GCMKL,DEDSAR,BRGEN,RINTERN,LPNF,PNBUF
ALFILE,ALCHAN,XFILEP,FIL6BT,6BTNML,SIXATM,CHNTB,%HNK4R,GRBPSG,HNKLOG,IAPPLY]
B
TERMIN
IFN PAGING,[
IRP A,,[FLSTBL]
TERMIN
] ;END of IFN PAGING
IFN ITS,[
IRP A,,[GETCOR,IOCINS,J.STADR,J.CRUFT]
B
TERMIN
] ;END OF IFN ITS
IFN D10,[
IRP A,,[PPNATM,CMUP]
B
TERMIN
] ;END OF IFN D10
IFN D20,[
IRP A,,[TENEXP]
B
TERMIN
] ;END OF IFN D20
IFN BIGNUM,[
IRP A,,[BNCONS,NVSKIP]
B
TERMIN
] ;END OF IFN BIGNUM
IFN JOBQIO,[
IRP A,,[JOBTB,LOJOBA]
B
TERMIN
] ;END OF IFN JOBQIO
IFN SFA,[
IRP A,,[AFOSP,XFOSP]
B
TERMIN
] ;END IFN SFA
TERMIN
GLBSYM [.GLOBAL A]
XTRSYM [.GLOBAL A]
;%SY %SYHKL %SYKIL %SYLCL %SYGBL BYTSWD
SUBTTL SYMBOLS FOR NUMBER-OF-ARGS CHECKING, AND .FORMAT
;;; SYMBOLS TO BE USED WITH FWNACK AND LWNACK.
;;; ORDINARILY ONE WRITES
;;; JSP TT,FWNACK
;;; FAXXX,,QZZZZZ
;;; IN EACH SYMBOL, THE 3.1 BIT (THESE ARE LEFT-HALF SYMBOLS)
;;; MEANS FSUBR. THE 3.2 BIT MEANS 0 ARGS IS OKAY; 3.3, 1 ARG;
;;; 3.4, 2 ARGS; ... ; 4.8, 15. ARGS; 4.9, > 15. ARGS.
;;; ITEMS IN THIS IRP MUST HAVE FIRST FOUR CHARS UNIQUE!!!
;;; IF YOU ADD STUFF HERE, ALSO FIX UP FASEND.
.SEE FASEND
IRP X,,[02,1N,12,23,2N,0,1,2,4,01,012,01234,0234,3456,1234567
13456,234,345,234567,76543,45]
LA!X==0
IRPC Q,,[X]
IFSN Q,N, LA!X==LA!X+2←Q
.ALSO ZZ==Q
.ELSE LA!X==LA!X+<<777774←ZZ>&7777777>
TERMIN
FA!X==LA!X+1
TERMIN
;;; THE FOLLOWING FORMATS ARE HEREBY DECLARED ILLEGAL AS
;;; BEING REDUNDANT AND/OR GROSSLY CONFUSING.
;;; SEE THE MIDAS MANUAL FOR DETAILS.
;;; ,A
;;; ,A C
;;; ,A,
;;; ,A,C
;;; A B C
;;; A,
;;; A,B
;;; A,B C
;;; A,B,
;;; A,B,C
IRP X,,[14,15,16,17,25,30,34,35,36,37]
.FORMAT X,0
TERMIN
;;; FLAG BITS FOR SQUOZE SYMBOLS IN DDT
%SY==1,,537777
%SYHKL==:400000 ;HALF KILLED
%SYKIL==:200000 ;FULLY KILLED
%SYLCL==:100000 ;LOCAL
%SYGBL==:40000 ;GLOBAL
;;; A FEW RANDOMLY USEFUL DEFINITIONS TO KEEP THINGS SYMBOLIC
;;; BUT WATCH OUT! DONT JUST RANDOMLY THINK YOU CAN CHANGE NASCII
;;; AND HAVE THINGS WIN, ESPECIALLY THE PACKING OF CHARS FOR
;;; PNAMES, AND THE SPECIAL OBARRAY ENTRIES FOR SCOS.
IFN SAIL, NASCII==:1000 ;NUMBER OF ASCII CHARS
.ELSE NASCII==:200 ;NUMBER OF ASCII CHARS
BYTSWD==:5 ;NUMBER OF ASCII BYTES PER WORD
;LS ST.LS $FS ST.$FS FX ST.FX FL ST.FL BN ST.BGN SY ST.SY SA ST.SA VC ST.VAC $PDLNM ST.$PDLNM $XM ST.$XM $NXM ST.$NXM PUR ST.PUR HNK ST.HNK DB ST.DB CX ST.CX DX ST.DX RN NUM ST.
SUBTTL DEFINITIONS OF BIBOP TYPE BITS FOR USE IN THE SEGMENT TABLE
.SEE ST
LS==:400000 ;4.9 1=LIST STRUCTURE, 0=ATOMIC
ST.LS==:400000
$FS==:200000 ;4.8 FREE STORAGE (BIT 4.9 SHOULD BE ON ALSO)
ST.$FS==:200000
FX==:100000 ;4.7 FIXNUM STORAGE
ST.FX==:100000
FL==:40000 ;4.6 FLONUM STORAGE
ST.FL==:40000
BN==:20000 ;4.5 BIGNUM HEADER STORAGE
ST.BGN==:20000
SY==:10000 ;4.4 SYMBOL HEADER STORAGE
ST.SY==:10000
SA==:4000 ;4.3 SAR STORAGE (BIT 3.8 SHOULD BE ON ALSO)
ST.SA==:4000
VC==:2000 ;4.2 VALUE CELL STORAGE (BIT 4.9 SHOULD BE ON ALSO)
ST.VAC==:2000
$PDLNM==:1000 ;4.1 NUMBER PDL AREA
; (ONE OF THE NUMBER TYPE BITS SHOULD BE ON ALSO)
ST.$PDLNM==:1000
;3.9 400 RESERVED - AVOID USING (FORMERLY $FLP)
$XM==:200 ;3.8 EXISTENT (RANDOM) AREA
ST.$XM==:200
$NXM==:100 ;3.7 NONEXISTENT (RANDOM) AREA
ST.$NXM==:100
PUR==:40 ;3.6 PURE SPACE
; (ONE OF BITS 4.8-4.5, 3.8, OR 3.4-3.2 ALSO ON)
ST.PUR==:40
HNK==:20 ;3.5 HUNK OF ONE KIND OR ANOTHER (BIT 4.9 ON ALSO)
ST.HNK==:20
DB==:10 ;3.4 DOUBLE-PRECISION FLONUMS
ST.DB==:10
CX==:4 ;3.3 COMPLEX NUMBERS
ST.CX==:10
DX==:2 ;3.2 DOUBLE-PRECISION COMPLEX NUMBERS
ST.DX==:2
;3.1 1 UNUSED (USE THIS BEFORE BIT 3.9)
RN==:$XM+$NXM ;RANDOMNESS!
NUM==:FX+FL+BN+DB+CX+DX ;NUMBERNESS!
ST.==:1,,<ST.LS+ST.FX+ST.BGN+ST.SA+ST.$PDLNM+ST.$NXM+ST.HNK+ST.CX+1>
;
SUBTTL ONE-LINE CONDITIONAL MACROS
;;; THESE HELP MAKE SOME CODE LESS MESSY TO READ.
;;; PREFACING A LINE OF CODE WITH ONE OF THESE SYMBOLS TELLS MIDAS
;;; TO ASSEMBLE THAT LINE ONLY UNDER THE SPECIFIED CONDITION.
;;; EXAMPLE:
;;;
;;; FOO: MOVE A,(P)
;;; 10$ PUSHJ P,10HACK ;THIS LINE IS FOR DEC-10 ONLY
;;; MOVE A,-1(P)
;;; Q% PUSHJ P,OLDHAK ;THIS LINE IS FOR OLD I/O ONLY
;;; POPJ P,
DEFINE 10$
IFN D10,TERMIN
DEFINE 10%
IFE D10,TERMIN
DEFINE IT$
IFN ITS,TERMIN
DEFINE IT%
IFE ITS,TERMIN
DEFINE 20$
IFN D20,TERMIN
DEFINE 20%
IFE D20,TERMIN
DEFINE 10X
IFN TENEX,TERMIN
DEFINE SA$
IFN SAIL, TERMIN
DEFINE SA%
IFE SAIL,TERMIN
DEFINE CMU$
IFN CMU,TERMIN
DEFINE CMU%
IFE CMU,TERMIN
DEFINE T10$
IFN TOPS10,TERMIN
DEFINE T10%
IFE TOPS10,TERMIN
DEFINE 20X
IFN TOPS20,TERMIN
;;; NEWRD IS FOOLISH NEW READER FLAG (HISTORICAL ARTIFACT -- FLUSH EVENTUALLY)
DEFINE NW$
IFN NEWRD,TERMIN
DEFINE NW%
IFE NEWRD,TERMIN
DEFINE BG$
IFN BIGNUM,TERMIN
DEFINE BG%
IFE BIGNUM,TERMIN
DEFINE DB$
IFN DBFLAG,TERMIN
DEFINE DB%
IFE DBFLAG,TERMIN
DEFINE CX$
IFN CXFLAG,TERMIN
DEFINE CX%
IFE CXFLAG,TERMIN
DEFINE DX$
IFN DXFLAG,TERMIN
DEFINE DX%
IFE DXFLAG,TERMIN
DEFINE HN$
IFN HNKLOG,TERMIN
DEFINE HN%
IFE HNKLOG,TERMIN
DEFINE KA
IFN KA10,TERMIN
DEFINE KAKI
IFN KA10+KI10,TERMIN
DEFINE KI
IFN KI10,TERMIN
DEFINE KIKL
IFN KI10+KL10,TERMIN
DEFINE KL
IFN KL10,TERMIN
DEFINE PG$
IFN PAGING,TERMIN
DEFINE PG%
IFE PAGING,TERMIN
DEFINE SFA$
IFN SFA,TERMIN
DEFINE SFA%
IFE SFA,TERMIN
DEFINE HS$
IFN HISEGMENT,TERMIN
DEFINE HS%
IFE HISEGMENT,TERMIN
DEFINE REL$
IFE D20\<D10*PAGING>,TERMIN
DEFINE REL%
IFN D20\<D10*PAGING>,TERMIN
;
SUBTTL GENERAL MACROS
DEFINE CONC A,B ;HAIRY CONCATENATOR MACRO
A!B!TERMIN
DEFINE LOCKI ;LOCK OUT USER INTERRUPTS UNTIL UNLOCKI'D
PUSH FXP,INHIBIT
SETOM INHIBIT
TERMIN
DEFINE UNLOCKI ;RELEASE THE USER-INTERRUPT LOCK, AND CHECK TO SEE
PUSHJ P,INTREL ;IF ANY INTERRUPTS WERE STACKED UP WHILE IN LOCKED STATE
TERMIN
DEFINE LOCKTOPOPJ ;LOCK ALL THE ENSUING CODE UNTIL THE
PUSH P,CINTREL ;EXITING POPJ P,
LOCKI
TERMIN
DEFINE UNLKPOPJ ;UNLOCK, THEN POPJ P,
JRST INTREL
TERMIN
.SEE CHNINT
DEFINE .5LOCKI ;HALF-LOCK INHIBIT
PUSH FXP,INHIBIT
HRROS INHIBIT
TERMIN
DEFINE .5LKTOPOPJ
PUSH P,CINTREL
.5LOCKI
TERMIN
IRP PL,,[,FX]
DEFINE SAVE!PL AL/ ;CALLED LIKE SAVE A B C
IRPS AC,,AL
PUSH PL!P,AC
TERMIN
TERMIN
DEFINE RSTR!PL AL/ ;CALLED LIKE RSTR C B A
IRPS AC,,AL
POP PL!P,AC
TERMIN
TERMIN
TERMIN
DEFINE MACROLOOP COUNT,NAME,C ;FOR EXPANDING MANY MACROS
IFSN C,, .CRFOFF
REPEAT COUNT,[ CONC NAME,\.RPCNT
]
IFSN C,, .CRFON
TERMIN
;SKIP IF TYPE, USING TT AS TEMP, ACCORDING TO BIBOP TYPE BITS
DEFINE SKOTT /Z
SKOTT% N,L,Z
TERMIN
;SKIP IF NOT TYPE, USING TT AS TEMP, ACCORDING TO BIBOP TYPE BITS
DEFINE SKOTTN /Z
SKOTT% E,GE,Z
TERMIN
DEFINE SKOTT% N,L,X,TYP
IFN TT-<X>, HRRZ TT,X
LSH TT,-SEGLOG
IFN <TYP>-LS,[
MOVE TT,ST(TT)
TLN!N TT,<TYP>
]
.ELSE SKIP!L TT,ST(TT)
TERMIN
;%%% %%% LABEL
DEFINE % ;THIS IS GOOD FOR LIST STRUCTURE
,,.+1!TERMIN
DEFINE INFORM R,S,T,U,V,W,X,Y,Z,$,%
PRINTX ≤ R!S!T!U!V!W!X!Y!Z!$!%
≤
TERMIN
DEFINE WARN R,S,T,U,V,W,X,Y,Z,$,%
WARN1 [R!S!T!U!V!W!X!Y!Z!$!%]
TERMIN
DEFINE WARN1 CRUFT
IFL 40-.LENGTH ≤CRUFT≤,[ .ERR ######
PRINTX ≤ ###### CRUFT
≤
]
.ELSE .ERR ###### CRUFT
TERMIN
;;; USEFUL MACRO FOR .FASL FILES. CAUSES LOADING TO PRINT MESSAGE.
DEFINE VERPRT NAME,VRS=[???]
IFN .FNAM2-SIXBIT /MID/,[
%%%==.fnam2
.SXEVAL ((LAMBDA (X)
(COND ((STATUS NOFEATURE NOLDMSG)
(TERPRI MSGFILES)
(TYO #73 MSGFILES)
(PRINC (QUOTE L/o/a/d/i/n/g/ NAME/ ) MSGFILES)
(PRINC X MSGFILES)
(TYO #40 MSGFILES)))
(PUTPROP (QUOTE NAME) X (QUOTE VERSION)))
(MAKNAM (DELQ #40
(QUOTE (#<<<%%%&<770000,,0>>←-36>+40>
#<<<%%%&<7700,,0>>←-30>+40>
#<<<%%%&<77,,0>>←-22>+40>
#<<<%%%&770000>←-14>+40>
#<<<%%%&7700>←-6>+40>
#<<%%%&77>+40> )))))
]
.ELSE [
.SXEVAL (COND ((STATUS NOFEATURE NOLDMSG)
(TERPRI MSGFILES)
(TYO #73 MSGFILES)
(PRINC (QUOTE L/o/a/d/i/n/g/ NAME/ VRS/ ) MSGFILES)))
.SXEVAL (DEFPROP NAME VRS VERSION)
]
TERMIN
;; Silent VERPRT, which doesn't print the message, just does the DEFPROP
;; of the version property
DEFINE SVERPRT NAME,VRS=[???]
IFN .FNAM2-SIXBIT /MID/,[
%%%==.fnam2
.SXEVAL (PUTPROP (QUOTE NAME)
(MAKNAM (DELQ #40
(QUOTE (#<<<%%%&<770000,,0>>←-36>+40>
#<<<%%%&<7700,,0>>←-30>+40>
#<<<%%%&<77,,0>>←-22>+40>
#<<<%%%&770000>←-14>+40>
#<<<%%%&7700>←-6>+40>
#<<%%%&77>+40> ))))
(QUOTE VERSION))
]
.ELSE [
.SXEVAL (DEFPROP NAME VRS VERSION)
]
TERMIN
;MACRO TO HANDLE UNWIND-PROTECT
; UNWINDPROTECT CODE,CONTINUATION-CODE
;CAUSES CONTINUATION TO BE INVOKED AFTER CODE IS EXECUTED
;THE STATE OF THE PDLS MUST BE THE SAME BEFORE AND AFTER CODE EXECUTES.
; CODE SHOULD BE THOUGHT OF AS A FUNCTION CALL.
; CODE IS THE CODE TO BE INVOKED AND PROTECTED.
; CONT IS THE "CONTINUATION" TO BE RUN WHEN UNWINDING THE STACK, OR AFTER
; CODE IS RUN
DEFINE UNWINDPROTECT CODE,CONT,\LABEL
JSP TT,PTNTRY ;SETUP AN UNWIND PROTECT
JRST LABEL
CONT
POPJ P,
LABEL:
CODE
;ASSUMPTION IS THAT FOLLOWING JSP CLOBBERS THE WORLD
JSP TT,PTEXIT ;RUN CONTINUATION, PRESERVES A
TERMIN
;;; HERE COME THE RANDOM "RPG" MACROS FOR IN-LINING THE PDL-FIXUP CODE
DEFINE PFIXPDL AC
HRRZ AC,P
MOVE P,C2
SUBI AC,(P)
HRLS AC
ADD P,AC
TERMIN
DEFINE FXPFIXPDL AC
HRRZ AC,FXP
MOVE FXP,FXC2
SUBI AC,(FXP)
HRLS AC
ADD FXP,AC
TERMIN
DEFINE FLPFIXPDL AC
HRRZ AC,FLP
MOVE FLP,FLC2
SUBI AC,(FLP)
HRLS AC
ADD FLP,AC
TERMIN
DEFINE SPFIXPDL AC
HRRZ AC,SP
MOVE SP,SC2
SUBI AC,(SP)
HRLS AC
ADD SP,AC
TERMIN
;NBITMACS NBITMACS XX YY
IF1,[
;;; FEATURE SO THAT HAIRY SUMS OF BITS MAY BE WRITTEN NICELY.
;;; BITMAC FOO,FOO.
;;; CAUSES THE FORM
;;; FOO<A+B+C>
;;; TO EXPAND INTO THE FORM
;;; FOO.A+FOO.B+FOO.C
NBITMACS==0
DEFINE BITMAC XX,YY,ZZ=[1,,525252]
DEFINE XX<BITS>
IRPS J,K,[BITS]
YY!!J!K!TERMIN TERMIN
BITMA1 XX,YY,[ZZ]\NBITMACS
NBITMACS==NBITMACS+1
TERMIN
DEFINE BITMA1 XX,YY,ZZ,NN
DEFINE BTMC!NN
EXPUNGE XX,YY
XX==ZZ
YY==ZZ
IFSN [ZZ], IFGE <.TYPE ZZ>, EXPUNGE ZZ
TERMIN
TERMIN
IRP FOO,,[%TB,%TI,%TJ,%TX,%TO,%TS,%TC,%TG,%TT,%PI,%PJ]
IFDEF FOO, SV$!FOO==FOO .SEE BITMAC
.ELSE SV$!FOO==1,,525252
EXPUNGE FOO
TERMIN
BITMAC AS,AS. ;LH ASARS
BITMAC TTS,TTS.,[1,,725252] ;LH TTSARS
BITMAC FBT,FBT. ;LH F.MODE WORD IN FILE ARRAYS
BITMAC RS.,RS. ;FOR READER SYNTAX BITS
BITMAC RS%,RS%,525252 ;READER SYNTAX BITS, LH SHIFTED INTO RH
BITMAC IB,IB.,[525252,,525252] ;WORD 1 INTERRUPT BITS
BITMAC %TB,%TB,SV$%TB ;LH .TTY USER VARIABLE
BITMAC %TI,%TI,SV$%TI ;LH TTY IOCHNM BITS (SOME PER-IOT)
BITMAC %TJ,%TJ,SV$%TJ
BITMAC %TX,%TX,SV$%TX ;RH TTY CHARACTER BITS
BITMAC %TO,%TO,SV$%TO ;LH TTYOPT VARIABLE
BITMAC %TS,%TS,SV$%TS ;LH TTYSTS VARIABLE
BITMAC %TC,%TC,SV$%TC ;LH TTYCOM VARIABLE
BITMAC %TG,%TG,SV$%TG ;6-BIT BYTE TTYST1,TTYST2 GROUPS
BITMAC %TT,%TT,SV$%TT ;LH TTYTYP VARIABLE
BITMAC %PI,%PI,SV$%PI ;FULL WORD .PIRQC VARIABLE
BITMAC %PJ,%PJ,SV$%PJ ;LH .PIRQC VARIABLE
] ;END OF IF1
;
;;; MACRO FOR .FASL LOSERS WHO .INSRT THIS FILE TO USE
;;; IN PLACE OF THE "END" PSEUDO. THIS GENERATES AN "END"
;;; AFTER PERFORMING SOME CLEANUP. MANY SYMBOLS ARE EXPUNGED
;;; SO THAT .FASL FILES WILL NOT SPEND INFINITE TIME TRYING TO
;;; PASS THEM TO DDT.
DEFINE FASEND
IF2,[
EXPUNGE NIL A B C AR1 AR2A NACS T TT D R F FREEAC P FLP FXP SP
EXPUNGE LERR ACALL AJCALL LER3 ERINT PP STRT SERINT TP IOJRST UUOMAX
EXPUNGE CALL JCALL CALLF JCALLF NCALL NJCALL NCALLF NJCALF NUUOCLS
EXPUNGE NERINT NASCII
EXPUNGE %UDF %UBV %WTA %UGT %WNA %GCL %FAC %IOL
EXPUNGE %%UDF %%UBV %%WTA %%UGT %%WNA %%GCL %%FAC %%IOL
EXPUNGE ASAR TTSAR
EXPUNGE AS.SFA AS.JOB AS.FIL AS.RDT AS.OBA AS.SX AS.FX AS.FL AS.DB AS.CX
EXPUNGE AS.DX AS.GCP
EXPUNGE TTS.CL TTS.IM TTS.BN TTS.TY TTS.IO TTS.CN TTS.GC
EXPUNGE TTSDIM TTS.1D TTS.2D TTS.3D TTS.4D TTS.5D
EXPUNGE FI.EOF FO.EOF FI.BBC FI.BBF TI.BFN FT.CNS F.GC
EXPUNGE F.MODE FBT.CM FBT.SA FBT.CP FBT.LN FBT.AP FBT.CC FBT.ND
EXPUNGE F.CHAN F.JFN F.FLEN F.FPOS F.DEV F.SNM F.PPN F.FN1 F.FN2
EXPUNGE F.RDEV F.RSNM F.RFN1 F.RFN2
EXPUNGE F.DIR F.FNM F.EXT F.VRS
EXPUNGE L.6DEV L.6DIR L.6FNM L.6EXT L.6VRS L.D6BT L.N6BT L.F6BT
EXPUNGE LOPOFA
EXPUNGE TI.ST1 TI.ST2 TI.ST3 TI.ST4 ATO.LC
EXPUNGE AT.CHS AT.LNN AT.PGN FO.LNL FO.PGL FO.RPL LONBFA
EXPUNGE FB.BFL FB.BVC FB.BYT FB.IBP FB.BP FB.CNT FB.HED FB.NBF
EXPUNGE FB.BWS FB.ROF FB.BUF
EXPUNGE J.INTF J.LFNM J.GC J.INTB J.STAD J.UIND LOJOBA J.SYMS J.CRUF
EXPUNGE SR.CAL SFCALI SR.WOM SR.UDL SR.FML SR.FUN SR.PNA SR.FUS SR.LEN
EXPUNGE SO.OPN SO.CLO SO.REN SO.DEL SO.TRP SO.PR1 SO.TYI SO.UNT SO.TIP
EXPUNGE SO.IN SO.EOF SO.TYO SO.OUT SO.FOU SO.RED SO.RDL SO.PRT SO.PRC
EXPUNGE SO.MOD SO.POS
EXPUNGE ST.LS ST.$FS ST.FX ST.FL ST.BGN ST.SY ST.SA ST.VAC ST.$PDLNM
EXPUNGE ST.$XM ST.$NXM ST.PUR ST.HNK ST.DB ST.CX ST.DX ST.
IRP X,,[02,1N,12,23,2N,0,1,2,4,01,012,01234,0234,3456,1234567
13456,234,345,234567,76543,45]
EXPUNGE LA!X FA!X
TERMIN
MACROLOOP NBITMACS,BTMC,*
] ;END OF IF2
END
TERMIN
;SYMVC SYMARGS SYMPNAME SY.ONE SY.LAP SY.PUR SY.CCN SY.OTC SY.ZER SY.
SUBTTL SYMBOL BLOCK-STRUCTURE DEFINITIONS
;;; FORMAT OF SYMBOL HEADER FOR BIBOP:
;;; THE MAIN HEADER OF A SYMBOL IS A SINGLE WORD IN SYMBOL SPACE.
;;; THE RIGHT HALF CONTAINS THE PROPERTY LIST, AND THE LEFT HALF
;;; POINTS TO THE REST OF THE HEADER, WHICH IS IN THE IS2 OR SY2 AREA.
;;; SINCE THE REST OF THE HEADER (ALSO CALLED A "SYMBOL BLOCK") MUST
;;; LIE ON AN EVEN WORD BOUNDARY, THE LOW BIT OF THE LEFT HALF OF
;;; THE MAIN HEADER IS NORMALLY ZERO. THIS BIT IS USED BY THE
;;; GARBAGE COLLECTOR FOR MARKING PURPOSES, AND THEN RESET TO ZERO.
;;; THE SYMBOL BLOCK IS 2 WORDS LONG:
;;; <VARIOUS BITS>,,<POINTER TO VALUE CELL>
;;; <ARGS PROPERTY>,,<PNAME LIST>
;;; THE "VARIOUS BITS" ARE:
;;; 4.9-3.9 ONES (FOR NO PARTICULARLY GOOD REASON)
;;; 3.9 ZERO (RESERVED FOR SPECIAL VALUE CELL/LAP HACK)
;;; 3.8 1 => SYMBOL BLOCK MAY BE PURE (SEE GCMARK)
;;; 3.7 ONE IFF COMPILED CODE NEEDS THE SYMBOL
;;; 3.6 ONE IFF COMPILED CODE REFERENCES BY OTHER THAN CALL UUO
;;; (IMPLIES 3.7 WHICH *MUST* ALSO BE ON)
;;; 3.5-3.1 ZERO (SO CAN INDIRECT THROUGH THE WORD TO GET VALUE)
;;; THE ARGS PROPERTY IS IN THE SAME FORMAT FASLOAD USES,
;;; TWO NINE-BIT BYTES DECODED AS FOLLOWS:
;;; 0 => NIL
;;; 777 => 777 (EFFECTIVELY INFINITY)
;;; N => N-1, N NOT 0 OR 777
;;; THUS 000006 = (NIL . 5), 004005 = (3 . 4), AND 002777 = (1 . 777)
SYMVC==0 ;BITS,,VC
SYMARGS==1 ;ARGS PROP,,PNAME
SYMPNAME==1
SY.ONE==:777000 ;ONES (NO GOOD REASON!!)
SY.LAP==:400
SY.PUR==:200
SY.CCN==:100
SY.OTC==:040
SY.ZER==:037
SY.==:1,,<SY.ONE+SY.PUR+SY.OTC>
;ASAR TTSAR AS.SFA AS.JOB AS.FIL AS.RDT AS.OBA AS.DX AS.CX AS.DB AS.SX AS.FX AS.FL AS.GCP TTS.CL TTS.BM TTS.IM TTS.BN TTS.TY TTS.IO TTS.CN TTS.GC TTSDIM TTS.1D TTS.2D TTS.3D TTS.4D TTS.5D
SUBTTL FORMAT OF ARRAYS
;;; ARRAYS ARE POINTED TO BY A TWO-WORD SAR (SPECIAL ARRAY CELL).
;;; SARS RESIDE IN A SPECIAL SPACE CALLED SAR SPACE.
ASAR==:0 ;SAR POINTER POINTS TO ASAR (CODE DEPENDS ON THIS)
TTSAR==:1 ;TTSAR COMES JUST AFTER IT
;;; THE FIRST WORD OF THE SAR, CALLED THE ASAR, POINTS TO THE ARRAY
;;; HEADER; PUSHJ'ING INDIRECTLY THOUGH IT GETS TO THE ARRAY
;;; SUBSCRIPT EVALUATION CODE. THE LEFT HALF, EXCLUDING THE
;;; INDIRECT AND INDEX BITS, CONTAINS VARIOUS BITS DESCRIBING
;;; THE TYPE OF THE ARRAY:
AS.SFA==:200000 ;SFA ARRAY
AS.JOB==:100000 ;JOB ARRAY
AS.FIL==:40000 ;FILE ARRAY
AS.RDT==:20000 ;READTABLE
AS.OBA==:10000 ;OBARRAY
AS.DX==:4000 ;DUPLEX ;THESE ARE
AS.CX==:2000 ;COMPLEX ; THE ACCESS
AS.DB==:1000 ;DOUBLE ; METHODS -
AS.SX==:400 ;S-EXPRESSION ; EXACTLY ONE
AS.FX==:200 ;FIXNUM ; SHOULD BE SET
AS.FL==:100 ;FLONUM ; IN EACH ASAR
AS.GCP==:40 ;GC SHOULD USE AOBJN PTR TO MARK ARRAY
;;; THE SECOND WORD, CALLED THE TTSAR, POINTS TO THE ARRAY DATA
;;; AND IS INDEXED BY ACCUMULATOR TT. ITS LEFT HALF, EXCLUDING
;;; AGAIN THE INDIRECT AND INDEX BITS, CONTAIN MORE INFORMATION
;;; ABOUT THE ARRAY:
TTS.CL==:40000 ;CLOSED FILE
TTS.BM==:20000 ;TOPS-10 I/O BUFFER HAS BEEN MOVED
TTS.IM==:2000 ;1 => IMAGE ;BOTH 0
TTS.BN==:1000 ;1 => BINARY (FIXNUM) ; => ASCII
TTS.TY==:400 ;0 => DSK-TYPE, 1 => TTY
TTS.IO==:200 ;0 => IN, 1 => OUT
TTS.CN==:100 ;COMPILED CODE NEEDS THIS SAR
TTS.GC==:40 ;USED AS MARK BIT BY GC
TTSDIM==:410300 ;BYTE POINTER FOR # OF DIMENSIONS (1-5)
TTS.1D==:100000 ;DEFINITIONS
TTS.2D==:200000 ; FOR SPECIFYING
TTS.3D==:300000 ; NUMBER OF
TTS.4D==:400000 ; ARRAY
TTS.5D==:500000 ; DIMENSIONS
;;; S-EXPRESSION ARRAYS HAVE THE FOLLOWING FORM:
;;; -<# WDS FOR GC MARK>,,<1ST WD OF DATA TO MARK>
;;; HEADER: JSP TT,<N>DIMS ;ASAR POINTS HERE; N=# OF DIMS
;;; <ADDRESS OF SAR> ;LH USED BY FLASH
;;; <DIMENSION 1>
;;; ...
;;; <DIMENSION N>
;;; DATA: <ENTRY 0>,,<ENTRY 1> ;TTSAR POINTS HERE
;;; ... ;DATA PACKED 2/WD
;;; <ENTRY X-1>,,<ENTRY X>
;;;
;;; THE FORMAT OF A NUMBER ARRAY IS AS FOLLOWS:
;;; <GC AOBJN PTR> ;PROBABLY MEANINGLESS
;;; HEADER: PUSH P,CFIX1 ;CFLOAT1 FOR A FLONUM ARRAY
;;; JSP TT,<N>DIMF ;N=# OF DIMS
;;; <ADDRESS OF SAR> ;LH USED BY FLASH
;;; <DIMENSION 1>
;;; ...
;;; <DIMENSION N>
;;; DATA: <ENTRY 0> ;TTSAR POINTS HERE
;;; <ENTRY 1> ;FULL-WORD DATA 1/WD
;;; ...
;;; <ENTRY X>
;;; THE AOBJN POINTER AT THE TOP OF EACH ARRAY IS MEANINGFUL ONLY
;;; IF THE AS.GCP BIT IS 1 IN THE ARRAY'S ASAR; IT INDICATES
;;; WHAT ENTRIES IN THE ARRAY GC SHOULD MARK. FOR S-EXPRESSION
;;; ARRAYS, THIS IS GENERALLY THE ENTIRE ARRAY; FOR OBARRAYS,
;;; IT INCLUDES THE BUCKETS BUT NOT THE SCO TABLE. FOR
;;; READTABLES, WHICH ARE OTHERWISE FIXNUM ARRAYS, UNDER NEWRD
;;; THE GC AOBJN POINTER INDICATES THAT THE LIST OF CHARACTER
;;; MACRO FUNCTIONS SHOULD BE MARKED.
;;; NOTE THAT IF SUCH AN AOBJN POINTER IS OF THE FORM <-N>,,<DATA>,
;;; THEN 2*N ENTRIES ARE MARKED; THE LEFT HALF IS THE NUMBER
;;; OF WORDS TO BE MARKED, WITH TWO ENTRIES PER WORD.
;;; CORRESPONDS TO ARRAY TYPE BITS IN ASAR'S.
;FI.EOF FO.EOP FJ.INT FI.BBC FI.BBF TI.BFN FT.CNS F.GC F.MODE FBT.CM FBT.SA FBT.CP FBT.LN FBT.EC FBT.SE FBT.FU FBT.ND FBT.SC F.CHAN F.JFN F.FLEN F.FPOS L.6DEV L.6DIR L.6FNM L.6EXT L.6VRS L.6DEV L.6DIR L.6FNM L.6EXT L.6VRS L.D6BT L.N6BT L.F6BT F.DEV F.FN1 F.FN2 F.RDEV F.RFN1 F.RFN2 F.DIR F.FNM F.EXT F.VRS LOPOFA TI.ST1 TI.ST2 ATO.LC AT.CHS AT.LNN AT.PGN FO.LNL FO.PGL FO.RPL LONBFA FB.BYT FB.BFL FB.BVC FB.IBP FB.BP FB.CNT FB.HED FB.NBF FB.BWS FB.BUF
SUBTTL FORMAT OF FILE ARRAYS
;;; FILE ARRAYS ARE ARRAYS WHICH HAVE THE AS.FIL BIT SET
;;; IN THE ASAR AND SOME EXTRA BITS IN THE TTSAR DESCRIBING
;;; THE TYPE OF ARRAY.
;;; A FILE ARRAY CONTAINS A NUMBER OF VARIABLES RELATED TO
;;; THE FILE, AND POSSIBLY A BUFFER FOR DATA.
;;; THE PREFIX OF EACH NAME OF A FILE ARRAY COMPONENT INDICATES THE
;;; TYPES OF FILE ARRAYS TO WHICH IT IS APPLICABLE. THUS TI.ST1
;;; IS ONLY FOR TTY INPUT FILE ARRAYS.
;;; NOTE: COMPONENTS MARKED (RELOC) MUST HAVE THEIR RIGHT
;;; HALVES RELOCATED WHEN THE ARRAY IS MOVED.
.SEE GT3D
;;; THE FOLLOWING ARE INDICES INTO THE FILE ARRAY'S DATA AREA
;;; (I.E. THEY ARE USED TO INDEX THROUGH THE TTSAR).
FI.EOF==:0 ;EOF FUNCTION
FO.EOP==:0 ;END OF PAGE FUNCTION
FJ.INT==:0 ;INTERRUPT FUNCTION FOR USR DEVICE
FI.BBC==:1 ;BUFFERED BACK CHARS FOR ASCII FILES
; LEFT HALF: SINGLE CHAR (3.8=1 IF ANY,
; SO CAN DISTINGUISH ↑@ FROM NONE)
; RIGHT HALF: LIST OF CHARS FOLLOWING THE ONE
; IN THE LEFT HALF
.SEE $DEVICE
FI.BBF==:2 ;LIST OF BUFFERED BACK FORMS (NOT IMPLEMENTED)
TI.BFN==:3 ;BUFFER-FORWARD (PRESCAN) FUNCTION FOR READ
FT.CNS==:4 ;ASSOCIATED TTY FILE FOR OTHER DIRECTION
.SEE STTYCONS
;;; SLOTS 5, 6, AND 7 ARE RESERVED FOR EXPANSION.
F.GC==:10 ;NUMBER OF SLOTS GC SHOULD EXAMINE
F.MODE==:10 ;MODE BITS
FBT.CM==:400000 ;4.9 0=BUFFERED, 1=CHARMODE
FBT.SA==:200000 ;4.8 SAIL CHARACTER SET (OUTPUT ONLY)
FBT.CP==:100000 ;4.7 CURSORPOS WILL SUCCEED (?)
; ON ITS, REFLECTS %TOMVU (CAN MOVE UP)
.SEE OPNTO1
FBT.LN==:40000 ;4.6 HANDLE TTY IN LINE MODE
SA$ FBT.AP==:20000 ;4.5 OPENED IN APPEND MODE
SA% 10% FBT.AP==:20000 ;4.5 OPENED IN APPEND MODE
SA% 10$ FBT.AP==:0 ;4.5 NOT YET HACKED FOR VANILLA TOPS-10
FBT.EC==:10000 ;4.4 OUTPUT TTY IN ECHO AREA (ITS ONLY)
FBT.SE==:2000 ;4.2 TTY CAN SELECTIVELY ERASE
FBT.FU==:1000 ;4.1 TTY SHOULD READ/PRINT FULL 12.-BIT
; CHARACTERS (FIXNUM MODE)
FBT.ND==:400 ;3.9 DON'T MEREGEF WITH DEFAULTF (NEVER LEFT ON
; IN OPTIONS WORD)
IT% FBT.CA==:0 ;THIS SHOULD WORK CORRECTLY
IT$ FBT.CA==:40 ;3.6 CLA DEVICE (ITS ONLY)
FBT.SC==:20 ;3.5 SCROLL MODE
;THE RIGHT HALF IS USED TO INDEX VARIOUS TABLES.
;1.4-1.3 0=ASCII, 1=FIXNUM, 2=IMAGE
;1.2 0=DSK, 1=TTY
;1.1 0=INPUT, 1=OUTPUT
F.CHAN==:11 ;I/O CHANNEL NUMBER
;FOR ALL IMPLEMENTATIONS, THIS IS THE INDEX INTO
.SEE CHNTB ; THE CHANNEL TABLE.
;FOR THE ITS AND D10 IMPLEMENTATIONS, IT IS
; ALSO THE I/O CHANNEL NUMBER.
F.JFN==:12 ;THE JOB-FILE NUMBER FOR THIS FILE
F.FLEN==:13 ;THE LENGTH OF THE FILE, OR -1 IF RANDOM ACCESS IS IMPOSSIBLE.
; MAY NOT BE UP-TO-DATE ON AN OUTPUT FILE, BUT FILEPOS
.SEE FPOS5 ; UPDATES IT FIRST IN THIS CASE.
F.FPOS==:14 ;FILE POSITION
;FOR SINGLE MODE FILES, THIS IS THE ACTUAL FILE POSITION.
;FOR BLOCK MODE, THIS IS THAT OF THE BEGINNING OF
.SEE FB.BUF ; THE BUFFER IN THE FILE ARRAY, AND ONE
.SEE FB.B ; MUST LOOK AT FB.BVC AND FB.CNT
.SEE FB.CNT ; (OR WHATEVER) TO CALCULATE THE EXACT FILEPOS.
;THE POSITION IS MEASURED IN CHARACTERS FOR ASCII FILES,
; AND WORDS FOR FIXNUM FILES.
;THIS VALUE MAY BE GARBAGE IF F.FLEN IS NEGATIVE.
;;; SLOTS 15-17 ARE RESERVED.
IFN ITS+D10,[
;;; FROM F.DEV TO F.RFN2 ARE USED BY JOB ARRAYS ALSO.
;;; MUST HAVE (F.DEV, F.SNM/F.PPN, F.FN1, F.FN2) IN THAT ORDER.
;;; DITTO FOR (F.RDEV, F.RSNM/F.RPPN, F.RFN1, F.RFN2).
L.6DEV==:1 ;LENGTH OF DEVICE NAME IN "SIXBIT" FORM
L.6DIR==:1 ;LENGTH OF DIRECTORY NAME
L.6FNM==:1 ;LENGTH OF FILE NAME
L.6EXT==:1 ;LENGTH OF EXTENSION (TYPE)
L.6VRS==:0 ;LENGTH OF VERSION (GENERATION)
] ;END OF IFN ITS+D10
IFN D20,[
;;; FOR D20, "SIXBIT" FORM IS REALLY AN ASCIZ STRING.
L.6DEV==:8 ;LENGTH OF DEVICE NAME IN "SIXBIT" FORM
L.6DIR==:8 ;LENGTH OF DIRECTORY NAME
L.6FNM==:8 ;LENGTH OF FILE NAME
L.6EXT==:8 ;LENGTH OF EXTENSION (TYPE)
L.6VRS==:2 ;LENGTH OF VERSION (GENERATION)
] ;END OF IFN D20
L.D6BT==:L.6DEV+L.6DIR ;LENGTH OF DEVICE/DIRECTORY "SIXBIT" FORM
L.N6BT==:L.6FNM+L.6EXT+L.6VRS ;LENGTH OF FILE NAMES IN "SIXBIT" FORM
L.F6BT==:L.D6BT+L.N6BT ;LENGTH OF TOTAL FILE SPEC IN "SIXBIT" FORM
;;; THESE ARE THE NAME WHICH WERE GIVEN TO OPEN.
F.DEV==:20 ;DEVICE NAME
IFE D20,[
IT$ F.SNM==:F.DEV+L.6DEV ;SYSTEM NAME (SNAME)
10$ F.PPN==:F.DEV+L.6DEV ;PROJECT-PROGRAMMER NUMBER
F.FN1==:F.DEV+L.D6BT ;FILE NAME 1
F.FN2==:F.FN1+L.6FNM ;FILE NAME 2 (D10: EXTENSION)
;;; THESE ARE THE NAMES RETURNED BY THE TRUENAME FUNCTION.
F.RDEV==:F.DEV+L.F6BT ;"REAL" DEVICE NAME
IT$ F.RSNM==:F.RDEV+L.6DEV ;"REAL" SYSTEM NAME
10$ F.RPPN==:F.RDEV+L.6DEV ;"REAL" PPN
F.RFN1==:F.RDEV+L.D6BT ;"REAL" FILE NAME 1
F.RFN2==:F.RFN1+L.6FNM ;"REAL" FILE NAME 2
] ;END OF IFE D20
IFN D20,[
F.DIR==:F.DEV+L.6DEV ;DIRECTORY
F.FNM==:F.DIR+L.6DIR ;FILE NAME
F.EXT==:F.FNM+L.6FNM ;EXTENSION
F.VRS==:F.EXT+L.6EXT ;VERSION
;;; THE "REAL" FILE NAMES ARE NOT STORED, BUT FETCHED BY JSYS EACH TIME.
; F.RDEV
; F.RDIR
; F.RFNM
; F.REXT
; F.RVRS
] ;END OF IFN D20
LOPOFA==:70 .SEE ALFILE ;LENGTH OF PLAIN OLD FILE ARRAY
IFL LOPOFA-<F.DEV+L.F6BT>, WARN [DEFINITION OF LOPOFA IS TOO SMALL]
IFN ITS+D20+SAIL,[
;;; FOR ITS, THESE ARE TTYST1 AND TTYST2 FOR GIVING TO TTYSET.
;;; FOR D20, THESE ARE THE CCOC WORDS FOR GIVING TO SFCOC.
;;; FOR SAIL, THESE ARE THE ACTIVATION WORDS FOR SETACT.
TI.ST1==:LOPOFA+0 ;TTY STATUS WORD 1
TI.ST2==:LOPOFA+1 ;TTY STATUS WORD 2
IT% TI.ST3==:LOPOFA+2 ;TTY STATUS WORD 3
IT% TI.ST4==:LOPOFA+3 ;TTY STATUS WORD 4
] ;END OF ITS+D20+SAIL
ATO.LC==:LOPOFA+4 ;LAST CHARACTER FLAG FOR ASCII OUTPUT:
;ZERO: NORMAL STATE.
;POSITIVE: LAST CHARACTER OUTPUT WAS A SLASH,
; SO THE AUTOMATIC TERPRI SHOULD BE INHIBITED.
;NEGATIVE: LAST CHARACTER OUTPUT WAS A <CR>,
; SO IT MAY BE NECESSSARY TO SUPPLY A <LF>.
AT.CHS==:LOPOFA+5 ;CHARPOS
AT.LNN==:LOPOFA+6 ;LINENUM
AT.PGN==:LOPOFA+7 ;PAGENUM
FO.LNL==:LOPOFA+10 ;LINE LENGTH
;NORMALLY INITIALIZED TO 1 LESS THAN THE ACTUAL WIDTH
; OF THE DEVICE TO ALLOW FOR SLASH OVERRUN.
.SEE STERPRI ;MAY BE NEGATIVE, IN WHICH CASE THE
; MAGNITUDE IS THE ACTUAL VALUE.
FO.PGL==:LOPOFA+11 ;PAGE LENGTH
FO.RPL==:LOPOFA+12 ;"REAL" PAGEL FOR TTYS
;;; SLOTS 13-17 ARE RESERVED FOR EXPANSION.
LONBFA==:LOPOFA+20 ;LENGTH OF NON-BUFFERED FILE ARRAY
;;; EVERYTHING AFTER THIS IS ONLY FOR FILES WITH BUFFERS
FB.BYT==:LONBFA+0 ;NUMBER OF DATA BYTES PER WORD
FB.BFL==:LONBFA+1 ;LENGTH OF BUFFER IN BYTES
FB.BVC==:LONBFA+2 ;# VALID CHAARS IN BUFFER (ONLY INPUT FILES)
IFN ITS+D20,[
FB.IBP==:LONBFA+3 ;INITIAL BUFFER BYTE POINTER (RELOC)
FB.BP==:LONBFA+4 ;CURRENT BUFFER BYTE POINTER (RELOC)
FB.CNT==:LONBFA+5 ;COUNT OF REMAINING BYTES IN BUFFER
] ;END OF ITS+D20
IFN D10,[
FB.HED==:LONBFA+3 ;ADDRESS OF 3-WORD BUFFER RING HEADER
FB.NBF==:LONBFA+4 ;NUMBER OF BUFFERS
FB.BWS==:LONBFA+5 ;SIZE OF BUFFER IN WORDS (NOT COUNTING BUFFER HEADER)
SA$ FB.ROF==:LONBFA+6 ;(NEGATIVE) RECORD OFFSET IN BYTES, I.E. FILEPOS
; OF THE PHYSICAL BEGINNING OF THE FILE
] ;END OF IFN D10
FB.BUF==:LONBFA+10 ;BEGINNING OF BUFFER
;FOR ITS AND D20, THE DATA BUFFER BEGINS HERE.
;FOR D10, THE BUFFER RING STRUCTURE BEGINS HERE.
;FOR TTY INPUT FILES, THE "BUFFER" IS AN ARRAY
; OF INTERRUPT FUNCTIONS FOR EACH ASCII CHARACTER.
;J.INTF J.CINT J.LFNM J.CRUFT J.GC J.INTB J.STAD J.UIND LOJOBA J.SYMS
SUBTTL FORMAT OF JOB ARRAYS
IFN ITS,[
;;; JOB ARRAYS ARE ARRAYS WHICH HAVE THE AS.JOB BIT SET
;;; IN THE ASAR. THE TTS.CL BIT IS RELEVANT HERE ALSO,
;;; INDICATING A CLOSED JOB ARRAY.
;;; THE ARRAY CONTAINS VARIOUS DATA ASSOCIATED WITH THE JOB.
;;; NOTE: COMPONENTS MARKED (RELOC) MUST HAVE THEIR RIGHT
;;; HALVES RELOCATED WHEN THE ARRAY IS MOVED.
;;; THE FOLLOWING ARE INDICES INTO THE FILE ARRAY'S DATA AREA
;;; (I.E. THEY ARE USED TO INDEX THROUGH THE TTSAR).
J.INTF==:0 ;INTERRUPT FUNCTION (NEEDED BY INT SYSTEM)
J.CINT==:1 ;CHANNEL INTERRUPT FUNCTION
J.LFNM==:2 ;LOAD FILE NAMELIST?
J.CRUFT==:3 ;RANDOM CRUFT (USUALLY PROPERTY LIST)
J.GC==:4 ;NUMBER OF SLOTS GC SHOULD EXAMINE
;SLOTS 3-12 RESERVED
;;; F.DEV THROUGH F.RFN2 (12 TO 21) APPLY TO JOB ARRAYS ALSO.
J.INTB==:LOPOFA+0 ;INTERRUPT BIT, OR ZERO FOR FOREIGN JOB
J.STAD==:LOPOFA+1 ;START ADDRESS
J.UIND==:LOPOFA+2
LOJOBA==:FB.BUF
J.SYMS==:FB.BUF ;START OF SYMBOL TABLE, IF ANY
] ;END OF IFN ITS
;SR.CAL SFCALI SR.WOM SR.UDL SO.OPN SO.CLO SO.REN SO.DEL SO.TRP SO.PR1 SO.TYI SO.UNT SO.TIP SO.IN SO.EOF SO.TYO SO.PRO SO.FOU SO.RED SO.RDL SO.PRT SO.PRC SO.MOD SO.POS SO.ICL SO.OCL SO.OUT SR.FML SR.FUN SR.PNA SR.FUS SR.LEN STPFL NM
IFE SFA, SFCALI==-1
IFN SFA,[
SUBTTL FORMAT OF SFA OBJECTS
;;; AN SFA OBJECT HAS THE AS.SFA BIT SET IN THE ASAR. TTS.CL IS IGNORED.
;;; THE FOLLOWING ARE INDICIES INTO THE SFA ARRAY AND ARE UNMARKED FROM:
SR.CAL==:0 ;THE LISP CALL UUO XCT'ED TO INVOKE THE SFA FUNCTION
SFCALI==:SR.CAL ;FOR COMPILED CODE
SR.WOM==:1 ;WHICH-OPERATIONS MASK: ENCODED MASK OF THE OPERATIONS THAT
; THE SFA CAN PERFORM. USED FOR QUICK TESTING IN CERTAIN
; DISPATCH CASES. BITS AS FOLLOWS:
SR.UDL==:2 ;USER DATA LENGTH
;;; ***NOTE: THE HALVNESS OF THE BITS MUST NOT CHANGE ***
;LH BITS
SO.OPN==:400000 ;OPEN
SO.CLO==:200000 ;CLOSE
SO.REN==:100000 ;RENAMEF
SO.DEL==:040000 ;DELETEF
SO.TRP==:020000 ;TERPRI
SO.PR1==:010000 ;PRIN1
SO.TYI==:004000 ;TYI
SO.UNT==:002000 ;UNTYI
SO.TIP==:001000 ;TYIPEEK
SO.IN==:000400 ;IN
SO.EOF==:000200 ;EOFFN
SO.TYO==:000100 ;TYO
SO.PRO==:000040 ;PRINT-OBJECT
SO.FOU==:000020 ;FORCE-OUTPUT
SO.RED==:000010 ;READ
SO.RDL==:000004 ;READLINE
SO.PRT==:000002 ;PRINT
SO.PRC==:000001 ;PRINC
;RH BITS
SO.MOD==:400000 ;FILEMODE
SO.POS==:200000 ;FILEPOS
SO.ICL==:100000 ;CLEAR-INPUT
SO.OCL==:040000 ;CLEAR-OUTPUT
SO.OUT==:020000 ;OUT
SR.FML==:3 ;FIRST MARKED LOCATION
SR.FUN==:3 ;RH IS SFA FUNCTION
SR.PNA==:4 ;RH IS PRINTNAME
SR.FUS==:5 ;LH IS FIRST USER SLOT
SR.LEN==:5 ;NUMBER OF WORDS NEEDED BY THE SYSTEM
] ;END IFN SFA
;;; Size of hunks
IFDEF SEGLOG, HNKLOG==SEGLOG-1
IFNDEF SEGLOG, HNKLOG==11;;@ END OF DEFNS 228
;;; DON'T HACK THIS $INSRT - UNIFY DEPENDS ON IT
;;@ MACS 74 LOTSA MOBY MACROS
;;; ***** MACLISP *** RANDOM MIDAS MACROS FOR USE IN LISP SOURCE *
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
SUBTTL RANDOM MACROS
;;; MACRO TO REMOVE SYMBOLS OF THE FORM "GXXXXX"
DEFINE GEXPUN
DEFFLUSH
.GSSET 0
STPFL==0
.TAG FOO FLUSH
IFE STPFL, .GO FOO
TERMIN
DEFINE DEFFLUSH \SYM
DEFINE FLUSH \ZZX
IFSE SYM,ZZX, STPFL==1
EXPUNGE ZZX
TERMIN
TERMIN
DEFINE HAOLNG NM,N
RADIX 2
NM==HAOWNG \N
RADIX 8
TERMIN
DEFINE HAOWNG A
.LENGTH /A/
TERMIN
DEFINE MAYBE DEF
IF1,[
IRPS SYM,,[DEF]
IFNDEF SYM, DEF
.ISTOP
TERMIN
]
TERMIN
DEFINE TBLCHK START,LENGT
IFN .-<START>-<LENGT>, WARN [WRONG LENGTH TABLE]
TERMIN
;
;;; "POP IMMEDIATE" MACRO TRIES TO DECREMENT A PDL POINTER IN THE BEST WAY.
DEFINE POPI <AC,N>
;; IFN KL10, ADJSP AC,-<N> .STOP
IFDEF R70, IFDEF LR70, IFL <N>-LR70, SUB AC,R70+<N> .STOP
SUB AC,[<N>,,<N>]
TERMIN
;;; "PUSH N SLOTS" MACRO PUSHES ZERO WORDS ONTO A PDL.
DEFINE PUSHN <AC,N>
IFE <N>, .STOP
IFE <N>-1, PUSH AC,R70 .STOP
IFE AC-P,{
PUSHN1 AC,N,NPUSH
.STOP}
IFE AC-FXP,{
PUSHN1 AC,N,0PUSH
.STOP}
IFE AC-FLP,{
PUSHN1 AC,N,0.0PUSH
.STOP}
WARN [PUSH AC,N UNKNOWN PDL]
TERMIN
DEFINE PUSHN1 <AC,M,XPUSH>
IFLE <M>-N!XPUSH, JSP T,XPUSH-<M> .STOP
JSP T,XPUSH-N!XPUSH
PUSHN1 AC,<M-N!XPUSH>,XPUSH
TERMIN
;%HISEG %LOSEG CURSTD %LOSEG %HISEG CURSTD
SUBTTL $LOSEG, $HISEG,
IFN D10,[
IFN HISEGMENT,[
DEFINE $LOSEG ;MACRO TO SWITCH TO LOW SEGMENT FOR 2SEG ASSEMBLY
IFN %LOSEG+1,[
%HISEG==.-HILOC
LOC FIRSTLOC+%LOSEG
%LOSEG==-1
CURSTD==STDLO
] ;END OF IFN %LOSEG+1
.ELSE WARN [ALREADY IN LOW SEGMENT]
TERMIN
DEFINE $HISEG ;MACRO TO SWITCH TO HIGH SEGMENT FOR 2SEG ASSEMBLY
IFN %HISEG+1,[
%LOSEG==.-FIRSTLOC
LOC HILOC+%HISEG
%HISEG==-1
CURSTD==STDHI
] ;END OF IFN %HISEG+1
.ELSE WARN [ALREADY IN HIGH SEGMENT]
TERMIN
] ;END IFN HISEGMENT
IFE HISEGMENT,[
DEFINE $LOSEG
TERMIN
DEFINE $HISEG
TERMIN
] ;END IFE HISEGMENT
] ;END OF IFN D10
;
SUBTTL PIONAGAIN, PIPAUSE, PION, TICCMAP
IFN ITS,[
DEFINE PIPAUSE ;DISABLE INTERRUPT SYSTEM
.SUSET PIHOLD
TERMIN
DEFINE PIONAGAIN
.SUSET PINBL
TERMIN
DEFINE PION
.SUSET PINBL
TERMIN
] ;END OF IFN ITS
IFN D10\D20,[
DEFINE PIPAUSE
PUSHJ P,DALINT
TERMIN
DEFINE PIONAGAIN
PUSHJ P,REAINT
TERMIN
DEFINE PION
PUSHJ P,ENBINT
TERMIN
] ;END OF IFN D10\D20
IFN D20,[
;DO THE "BODY' WITH "CODE" SUCCESSIVELY SET TO TERMINAL-INTERRUPT-CONTROL OPTIONS
DEFINE TICMAP {BODY}
IRP CODE,,[CB,CD,CG,CW,CX,CZ,CA,CV,CE,CF]
BODY
TERMIN
TERMIN
] ;END OF IFN D20
;ZZZ ZZZ
SUBTTL FUMBLE, STUMBLE, AND GRUMBLE
DEFINE FUMBLE FF,RIDER,SPECS ;FOR SPACES
STUMBLE FUMBLE,FF,RIDER,0,SEGSIZ,[SPECS]
TERMIN
DEFINE GRUMBLE PDL,RIDER,SPECS ;FOR PDLS
STUMBLE GRUMBLE,PDL,RIDER,20,100,[SPECS]
TERMIN
DEFINE STUMBLE NAME,FF,RIDER=[IFE 0],LO,HI,%SPECS
ZZZ==0
IRP SPEC,,[%SPECS]
IRP COND,VALS,[SPEC]
IFN COND,[
IRP M,,[MIN,MAX]Q,,[LO,HI]V,,VALS
RIDER,[
IFL V-Q, M!!FF==:Q
.ELSE M!!FF==:V
]
.ELSE M!!FF==:0
TERMIN
ZZZ==ZZZ+1
]
.ISTOP
TERMIN
TERMIN
IFN ZZZ-1, WARN \ZZZ,[ SPECS SUCCEEDED FOR NAME FF]
EXPUNGE ZZZ
TERMIN
;PGTPMK NPGTPS
SUBTTL PGBOT, [PGTOP], PAGEUP, SEGUP, SPCBOT, SPCTOP
;;; NOTE THAT PGBOT DEFINES PGTOP FOR THE NEXT USE, WHILE
;;; PGTOP IS AUTO-EXPUNGING (AND VICE VERSA).
DEFINE DPGBOT
DEFINE PGBOT SPC
PGTPMK==.
DEFINE PGBOT SPC1
WARN [ILLEGAL PGBOT SPC1]
TERMIN
DEFINE PGTOP SPC1,CRUFT
IFSN SPC1,SPC, WARN [PGTOP SPC1 DOESN'T MATCH PGBOT SPC]
CONC CPG,\NPGTPS,: CONSTANTS
CONC ECPG,\NPGTPS,::
PGTOP1 \NPGTPS,\.-PGTPMK,[CRUFT]
NPGTPS==NPGTPS+1
DPGBOT
TERMIN
TERMIN
DEFINE PGTOP SPC,CRUFT
WARN [ILLEGAL PGTOP SPC,CRUFT]
TERMIN
TERMIN
DPGBOT
DEFINE PGTOP1 N,SIZE,STUFF
PRINTX ≤ P!N: SIZE [STUFF]
≤
TERMIN
.XCREF PGTOP1
DEFINE PAGEUP
REL$ LOC .RL1+<<.-.RL1+CURSTD+PAGSIZ-1>&PAGMSK>-CURSTD
REL% LOC <<.-CURSTD+PAGSIZ-1>&PAGMSK>-CURSTD
TERMIN
DEFINE SEGUP PT
REL$ LOC .RL1+<<PT-.RL1+CURSTD+SEGSIZ-1>&SEGMSK>-CURSTD
REL% LOC <<PT+CURSTD+SEGSIZ-1>&SEGMSK>-CURSTD
TERMIN
;ZZY ZZ ZZX ZZY
DEFINE SPCBOT SPC
REL$ ZZ==.-.RL1
REL% ZZ==.
ZZY==.TYPE B!SPC!SG
IFN <17-ZZY>*<3-ZZY>*<11-ZZY>,[
IFN B!SPC!SG-., WARN [FORMERLY B!SPC!SG=]\B!SPC!SG,[, BUT NOW B!SPC!SG=]\ZZ
]
IFN <ZZ+CURSTD>&SEGKSM, WARN \ZZ+CURSTD,[=BAD BOUNDARY FOR B!SPC!SG]
B!SPC!SG==.
TERMIN
;;; NOTE WELL! ZZW MUST BE SAFE ACROSS THE SPCTOP MACRO
DEFINE SPCTOP SPC,TYP,CRUFT
ZZ==.
SEGUP .
ZZX==<.-B!SPC!SG>/SEGSIZ
ZZY==.TYPE N!SPC!SG
IFN <17-ZZY>*<3-ZZY>*<11-ZZY>,[
IFN N!SPC!SG-ZZX, WARN [FORMERLY N!SPC!SG=]\N!SPC!SG,[, BUT NOW N!SPC!SG=]\ZZX
]
N!SPC!SG==ZZX
IFL ZZX-5, SPCTP1 \ZZX,[CRUFT]\<.-ZZ>
IFGE ZZX-5, SPCTP2 \ZZX,[CRUFT]\<.-ZZ>
TERMIN
DEFINE SPCTP1 N,CRUFT,U
IRP Q,,[0,1,2,3,4]R,,[ZERO,ONE,TWO,THREE,FOUR]
IFE N-Q,[
PRINTX ≤ ***** R CRUFT SEGMENT≤
IFN N-1, PRINTX \S\
IFN U, PRINTX \ [U UNUSED WORDS]\
PRINTX \
\
]
IFE N-Q, .ISTOP
TERMIN
TERMIN
DEFINE SPCTP2 N,CRUFT,U
IRP Q,,[5,6,7,10,11,12,13,14,15,16,17,20,21,22
23,24,N]R,,[FIVE,SIX,SEVEN,EIGHT,NINE,TEN
ELEVEN,TWELVE,THIRTEEN,FOURTEEN,FIFTEEN,SIXTEEN,SEVENTEEN
EIGHTEEN,NINETEEN,TWENTY,N (OCTAL)]
IFE N-Q,[
PRINTX ≤ ***** R CRUFT SEGMENT≤
IFN N-1, PRINTX \S\
IFN U, PRINTX \ [U UNUSED WORDS]\
PRINTX \
\
]
IFE N-Q, .ISTOP
TERMIN
TERMIN
.XCREF SPCTP1 SPCTP2
;NPURTR NIOCTR
SUBTTL PURTRAP, IOCTRAP, 2DIF, AND INTPRO MACROS
;;; FEATURE FOR AUTOMATIC TRAPOUT ON PURE PAGE VIOLATIONS
;;; STANDARD USAGE IS TO REPLACE
;;; MOVEM X,Y ;COULD CAUSE PURE PAGE TRAP
;;; WITH
;;; PURTRAP PATCH-LOC,AC, MOVEM X,Y
;;; IF THE INSTRUCTION CAUSES A PURE PAGE VIOLATION,
;;; THEN THE PURE PAGE TRAP HANDLER WILL TRANSFER TO FOO,
;;; WITH ALL ACS, ETC. INTACT (HOPEFULLY), RATHER THAN
;;; ERRORING OUT, WHICH IS THE DEFAULT. SEE PURPGI.
;;; FOR DEC-10, THERE IS AN EXPLICIT CHECK FOR TRYING TO CLOBBER
;;; THE HISEG.
;;; A SIMILAR FEATURE FOR IOC TRAPS
;;; STANDARD USAGE IS:
;;;
;;; BAR: XCT D ;D HAS .IOT
;;; IOCTRAP TT,FOO,N ;N IS OPTIONAL
;;; <MORE CODE>
;;;
;;; IF THE INSTRUCTION AT BAR CAUSES AN IOC ERROR,
;;; THEN THE IOC ERROR CODE IS PUT INTO ACCUMULATOR TT,
;;; AND CONTROL TRANSFERRED TO FOO WITH ALL OTHER ACS INTACT.
;;; IF N IS GIVEN, ONLY IOC ERROR CODE N IS TRAPPED.
IFN ITS+D20,[
DEFINE PURTRAP X,B-INST
INST
PURTR1 \.-1,\NPURTR,D,X
NPURTR==NPURTR+1
TERMIN
DEFINE PURTR1 L,N,AC,X
DEFINE ZZP!N
CAIN AC,L
HRROI AC,X
TERMIN
TERMIN
;;; FOR COMMENTS ON 2DIF, SEE BELOW
DEFINE 2DIF INST,X,Y
<INST>\<,,<X>-<Y>>
TERMIN
] ;END OF IFN ITS+D20
DEFINE IOCTRAP AC,X,N
IOCTR1 \.-1,\NIOCTR,AC,X,N
NIOCTR=NIOCTR+1
TERMIN
DEFINE IOCTR1 L,N,AC,X,N
DEFINE ZZI!N
IFSN [N],[
CAIE D,N
JRST .+3
]
CAIN R,L
MOVE R,[SETZ X(AC)]
TERMIN
TERMIN
;N2DIF
IFN D10,[
DEFINE PURTRAP X,B-INST
HS$ CAIL B,HILOC
HS$ JRST X
INST
TERMIN
] ; END -- IFN D10,
;Hack for PWIOINT for WITHOUT-INTERRUPTS, in BIND
;PURTRAP is OK for non-D10, but must check explicitly for PWIOINT in D10
;I'm not sure if this HS$ is the right thing. It wants to check in all cases
;where a pure trap won't happen, such as PLISP at SAIL --RWK
IFE D10,[
DEFINE BNDTRAP LBL,X,B-INST
IFSN LBL,,LBL:
PURTRAP X,B, INST
TERMIN
] ;END -- IFE D10
IFN D10,[
DEFINE BNDTRAP LBL,X,B-INST
CAIN B,PWIOINT
JRST X
IFSN LBL,,LBL:
INST
TERMIN
] ;END -- IFN D10,
IFN D10,[
;;; FEATURE FOR TWO-SEGMENT DEC-10 ASSEMBLIES TO WIN ON THE
;;; MANY INSTRUCTIONS IN LISP WHICH ARE OF THE FORM
;;; JRST FOO-BAR(X)
;;; WHERE FOO IS IN ONE SEGMENT AND BAR IN THE OTHER.
;;; THE CORRECT WAY TO WRITE THE ABOVE INSTRUCTION IS
;;; 2DIF JRST (X),FOO,BAR
DEFINE 2DIF INST,X,Y
IFN %HISEG+1, 2DIF1 \.-HILOC,HILOC,[X][Y]\N2DIF
IFE %HISEG+1, 2DIF1 \.-FIRSTLOC,FIRSTLOC,[X][Y]\N2DIF
N2DIF==N2DIF+1
INST
TERMIN
;;; A COUPLE OF CROCKS:
;;; [1] THE .CRFON AND .CRFOFF IN ZZD!N INTERACT WITH
;;; THOSE IN THE MACROLOOP MACRO.
;;; [2] THE OFFSETS ALLOW ADDRESSES CONTAINING . IN
;;; THE 2DIF'ED INSTRUCTION (KNOCK PLASTIC).
;;; I.E. THE OFFSET F+L-. IS A HACK SO THAT
;;; ANY .'S IN X OR Y WILL REFER TO THE 2DIF'D
;;; INSTRUCTION AND NOT TO THE PLACE WHERE THE ZZD!N
;;; GETS EXPANDED.
DEFINE 2DIF1 L,F,X,Y,N
.CRFOFF
DEFINE ZZD!N
.CRFON
OFFSET F+L-.
MOVEI T,X
SUBI T,Y
OFFSET 0
.CRFOFF
HRRM T,F+L
TERMIN
.CRFON
TERMIN
;;; THE ZZD MACROS GET EXPANDED IN THE INIT ROUTINE.
] ;END OF IFN D10
;NPRO
DEFINE INTPRO W
REL$ PROENT \.-.RL1,W,\NPRO
REL% PROENT \.,W,\NPRO
TERMIN
DEFINE PROENT L,W,N
DEFINE PRO!N
REL$ W,,L+.RL1
REL% W,,L
TERMIN
NPRO==NPRO+1
TERMIN
DEFINE NOPRO ;BEGINS INTERVAL WITH NO INT PROTECTION
INTPRO INTOK
TERMIN
DEFINE SFXPRO ;CODE PROMISES TO RETURN THROUGH AN SFX CELL
INTPRO INTSFX
TERMIN
DEFINE XCTPRO ;FOLLOWING INSTRS MUST BE XCT'D BEFORE INT
INTPRO INTXCT
TERMIN
DEFINE BAKPRO ;MUST BACK UP TO HERE IF INT HAPPENS
INTPRO INTBAK
TERMIN
DEFINE SPECPRO H ;USED A SPECIALIZED PROTECTION ROUTINE
INTPRO H
TERMIN
;;; NO PROTECTION FOR ABSOLUTE LOCATIONS FROM 0 UP TO NEXT INTERVAL
DEFINE PRO0
INTOK,,0
TERMIN
;;; THE PRO MACROS ARE EXPANDED AT PROTB (Q.V.)
;ZZ ZZ ZZ GS SEGBYT LONUM HINUM PAGSIZ PAGMSK PAGKSM NPAGS NNUMTP NTYPES
SUBTTL ST AND GCST HACKERS
IFN PAGING,[
;;; THESE MACROS ACTUALLY FILL IN THE SEGMENT TABLES, FOR ITS ASSEMBLIES
DEFINE $ST SPC,BITS
IFN .-ST-<B!SPC!SG/SEGSIZ>,[
WARN [SEGMENT TABLE PHASE ERROR - TABLE LOC=]\.-ST,[, B!SPC!SG/SEGSIZ=]\B!SPC!SG/SEGSIZ
LOC ST+<B!SPC!SG/SEGSIZ>
]
IFN N!SPC!SG, $ST1 SPC,\N!SPC!SG,BITS
TERMIN
DEFINE $ST1 SPC,N,XBITS
ST.!SPC:
ZZ==0
IRP TYPE,,[LIST,FIXNUM,FLONUM,BIGNUM,SYMBOL,RANDOM,ARRAY]BB,,[LS,FX,FL,BN,SY,RN,SA]
IFN <XBITS>&BB,[
REPEAT N, <XBITS>,,Q!TYPE
ZZ==ZZ+1
]
TERMIN
IFN ZZ-1, WARN [IMPROPER TYPE BITS FOR SPC SPACE: ]\XBITS
TERMIN
;;; THERE ARE NO INITIAL HUNKS!!!
;;; THESE MACROS HAVE THEREFORE NOT BEEN HACKED FOR HUNKS!!!
DEFINE $GCST SPC,LINK,BTBP,BITS
IFSE LINK,L, L!SPC!SG==0
IFN .-GCST-<B!SPC!SG/SEGSIZ>,[
WARN [GCST PHASE ERROR - TABLE LOC=]\.-GCST,[, B!SPC!SG/SEGSIZ=]\B!SPC!SG/SEGSIZ
LOC GCST+<B!SPC!SG/SEGSIZ>
]
IFN N!SPC!SG, $GCST1 \N!SPC!SG,SPC,LINK,BTBP,BITS
TERMIN
DEFINE $GCST1 N,SPC,LINK,BTBP,BITS
GS.!SPC:
REPEAT N,[
ZZ==(BITS)
IFSE BTBP,B, ZZ==ZZ+BTB.←<5-SEGLOG>
.ALSO BTB.==BTB.+BTBSIZ
IFSE LINK,L, ZZ==ZZ+L!SPC!SG←<22-<SEGLOG-5>>
.ALSO L!SPC!SG==.-GCST
ZZ
]
TERMIN
] ;END OF IFN PAGING
IFE PAGING,[
;;; THIS MACRO MAKES UP THE CODE THAT INITIALIZES THE SEGMENT TABLES
DEFINE 10ST SPC,STENT=[$XM,,QRANDOM]GCENT=0,LINK,BITS
IFN N!SPC!SG,[
MOVEI T,B!SPC!SG
LSH T,-SEGLOG
MOVE TT,[STENT]
REPEAT N!SPC!SG, MOVEM TT,ST+.RPCNT(T)
IFN GCENT,[
MOVSI TT,GCENT
REPEAT N!SPC!SG,[
IFSN BITS,,[
HRRI TT,(AR1)
ADDI AR1,1
] ;END OF IFSN BITS,,
MOVEM TT,GCST+.RPCNT(T)
] ;END OF REPEAT N!SPC!SG
] ;END OF IFN GCENT
IFSN LINK,,[
IFG N!SPC!SG-1,[
HRLI T,-N!SPC!SG+1
DPB T,[SEGBYT,,GCST+1(T)]
AOBJN T,.-1
] ;END OF IFG N!SPC!SG-1
HRRZM T,LINK
] ;END OF IFSN LINK,,
] ;END OF IFN N!SPC!SG
TERMIN
] ;END OF IFE PAGING
;;; $<GS>T IN DDT IS GOOD FOR LOOKING AT GCST
GS==<777000,,>\<<1←<22-<SEGLOG-5>>>-1>
;;; FOR FETCHING LINK FIELD WITH A LDB
SEGBYT==<22-<SEGLOG-5>>←14+<22-SEGLOG>←6
;;@ END OF MACS 74
SA% LRCT==:NASCII+10 ;SPACE SUFFICIENT FOR CHARS AND SWITCHES
SA$ LRCT==:1010
10$ LIOBUF==:200 ;LENGTH OF STANDARD VANILLA I/O BUFFER
LONUM==400 ;MINIMUM MAGNITUDE OF LOWEST NEGATIVE INUM
HINUM==1000 ;MINIMUM MAGNITUDE OF LARGEST POSITIVE INUM
;SOME CODE ASSUMES HINUM IS AT LEAST 777
;MUCH CODE ASSUMES HINUM IS AT LEAST 177 (FOR ASCII CHARS)
IFN ITS, PAGLOG==:12 ;LOG2 OF PAGE SIZE
; (DAMN WELL BETTER BE 12 FOR ITS!!!
IFN D10, PAGLOG==:11 ; SOME CODE ASSUMES IT WILL BE 11 OR 12)
IFN D20, PAGLOG==:11
IFE D10*PAGING, MEMORY==:<1,,0> ;SIZE OF MEMORY!!!
IFN D10*PAGING, MEMORY==:776000 ;ON D10 SYSTEMS, CAN'T USE ALL OF MEMORY
PAGSIZ==:1←PAGLOG ;PAGE SIZE
PAGMSK==:<777777←PAGLOG>&777777 ;MASKS ADDRESSES TO PAGE BOUNDARY
PAGKSM==:PAGMSK#777777 ;MASKS WORD ADDRESS WITHIN PAGE
NPAGS==:MEMORY/PAGSIZ ;NUMBER OF PAGES IN MEMORY
NNUMTP==:2+BIGNUM+DBFLAG+CXFLAG+DBFLAG*CXFLAG ;NUMBER OF NUMBER TYPES
NTYPES==:3+HNKLOG+1+NNUMTP+1 ;NUMBER OF DATA TYPES, COUNTING RANDOM
;SEGSIZ SEGMSK SEGKSM NSEGS BTBSIZ SGS%PG BTSGGS ALPDL ALFXP ALFLP ALSPDL ALFXP ALFLP ALPDL ALSPDL
;;; IF1
SEGSIZ==:1←SEGLOG ;SEGMENT SIZE
SEGMSK==:<777777←SEGLOG>&777777 ;MASKS ADDRESSES TO SEGMENT BOUNDARY
SEGKSM==:SEGMSK#777777 ;MASKS WORD ADDRESS WITHIN SEGMENT
NSEGS==:MEMORY/SEGSIZ ;NUMBER OF SEGMENTS IN MEMORY
BTBSIZ==:SEGSIZ/40 ;SIZE OF BIT BLOCKS
;(ENOUGH BITS FOR A SEGMENT, 40 PER WORD)
SGS%PG==:NSEGS/NPAGS ;NUMBER OF SEGMENTS PER PAGE
BTSGGS==1 ;GUESS AT THE NUMBER OF INITIAL BIT SEGMENTS
IFN PAGING,[
ALPDL==4*PAGSIZ ;DEFAULT TOTAL PDL SIZES
ALFXP==4*PAGSIZ
ALFLP==1*PAGSIZ
ALSPDL==2*PAGSIZ
] ;END OF IFN ITS+D20
IFE PAGING,[
ALFXP==SEGSIZ ;DEFAULT TOTAL PDL SIZES
ALFLP==SEGSIZ
ALPDL==3000
ALSPDL==1400
] ;END OF IFN D10
;;; GROSSLY DETERMINE MIN AND MAX PARAMETERS FOR EACH SPACE AND PDL
FUMBLE FFS,,[[1,[0.25,40000]]]
FUMBLE FFX,,[[PAGING,[0.2,14000]],[PAGING-1,[0.25,3000]]]
FUMBLE FFL,,[[PAGING,[0.15,2*SEGSIZ]],[PAGING-1,[0.25,SEGSIZ]]]
FUMBLE FFD,IFN DBFLAG,[[1,[0,SEGSIZ]]]
FUMBLE FFC,IFN CXFLAG,[[1,[0,SEGSIZ]]]
FUMBLE FFZ,IFN DXFLAG,[[1,[0,SEGSIZ]]]
FUMBLE FFB,IFN BIGNUM,[[PAGING,[3*SEGSIZ/4,2*SEGSIZ]],[PAGING-1,[0.2,SEGSIZ]]]
FUMBLE FFY,,[[PAGING,[SEGSIZ/2,6000]],[PAGING-1,[SEGSIZ/2,3*SEGSIZ]]]
FUMBLE FFH,IFN HNKLOG,[[1,[0,2*SEGSIZ]]]
FUMBLE FFA,,[[1,[40,SEGSIZ]]]
GRUMBLE PDL,,[[1,[200,1400]]]
GRUMBLE SPDL,,[[1,[100,1400]]]
GRUMBLE FXP,,[[1,[200,1000]]]
GRUMBLE FLP,,[[1,[20,200]]]
;IB.ALARM IB.TIMER IB.PARITY IB.FLOV IB.PURE IB.PCPURE IB.SYSUUO IB.AT3 IB.AT2 IB.AT1 IB.DEBUG IB.RVIOL IB.CLI IB.PDLOV IB.LTPEN IB.MAR IB.MPV IB.SCLK IB.1PROC IB.BREAK IB.ILAD IB.IOC IB.VALUE IB.DOWN IB.ILOP IB.DMPV IB.AROV IB.42BAD IB.C.Z IB.TTY IB.PDLOV IB.MPV
;;; IF1
;;; ********** INTERRUPT BITS **********
IFN ITS,[
;;; THESE NAMES SHOULD BE PHASED OUT IN FAVOR OF THE ITS-STANDARD %PI SERIES.
;;; LISP SETS ITS INTERRUPT MASK (.MASK USET VARIABLE) ONLY FROM
;;; THE CONTENTS OF LOCATION IMASK, WHICH INITIALLY CONTAINS STDMSK.
;;; DEPOSITING DBGMSK THERE BEFORE STARTUP DISABLES ALL INTERRUPTS
;;; EXCEPT TTY AND PDL OVERFLOW, SO THAT DDT WILL TRAP ILOP, MPV, ETC.
IB.ALARM==200000,, ; REAL TIME CLOCK (ALARM CLOCK)
IB.TIMER==100000,, ; RUN TIME CLOCK
IB.PARITY==1000,, ;+ PARITY ERROR
IB.FLOV==400,, ; FLOATING OVERFLOW
IB.PURE==200,, ;+ PURE PAGE TRAP (WRITE INTO READ-ONLY)
IB.PCPURE==100,, ;+ PURE INSTRUCTION FETCH FROM IMPURE
IB.SYSUUO==40,, ;+ SYS UUO TRAP
IB.AT3==20,, ; ARM TIP BREAK 3
IB.AT2==10,, ; ARM TIP BREAK 2
IB.AT1==4,, ; ARM TIP BREAK 1
IB.DEBUG==2,, ; SYSTEM BEING DEBUGGED
IB.RVIOL==1,, ;+ RESTRICTION VIOLATION (?)
IB.CLI==400000 ; CORE LINK INTERRUPT
IB.PDLOV==200000 ; PDL OVERFLOW
IB.LTPEN==100000 ; LIGHT PEN INTERRUPT
IB.MAR==40000 ;+ MAR INTERRUPT
IB.MPV==20000 ;+ MEMORY PROTECTION VIOLATION
IB.SCLK==10000 ; SLOW CLOCK TICK (.5 SEC)
IB.1PROC==4000 ;* SINGLE INSTRUCTION PROCEED
IB.BREAK==2000 ;* .BREAK EXECUTED
IB.ILAD==1000 ;+ ILLEGAL USER ADDRESS
IB.IOC==400 ;+ I/O CHANNEL ERROR
IB.VALUE==200 ;* .VALUE EXECUTED
IB.DOWN==100 ; SYSTEM GOING DOWN OR BEING REVIVED
IB.ILOP==40 ;+ ILLEGAL INSTRUCTION OPERATION
IB.DMPV==20 ;+ DISPLAY MEMORY PROTECTION VIOLATION
IB.AROV==10 ; ARITHMETIC OVERFLOW
IB.42BAD==4 ;* BAD LOCATION 42
IB.C.Z==2 ;* ↑Z TYPED WHEN THIS JOB HAD TTY
IB.TTY==1 ; INTERRUPT CHAR TYPED ON TTY
] ;END OF IFN ITS
IFN D10,[
IB.PDLOV==AP.POV ; PDL OVERFLOW
IB.MPV==AP.ILM ;+ MEMORY PROTECTION VIOLATION
SA% STDMSK==AP.REN+AP.POV+AP.ILM+AP.NXM+AP.PAR
SA$ STDMSK==<404,,230000>
] ;END OF IFN D10
;;; ********** I/O CHANNEL ASSIGNMENTS **********
;;; PAGE 376 IS RESERVED FOR COPYING (SEE IP1), AND 377 FOR DISUSE.
;;; (THE DISUSE AS TO DO WITH AN OLD HARDWARE BUG IN BLT.)
;;; ON AI, PAGE 375 IS FOR MAPPING PAGE 0 OF THE DISPLAY SLAVE.
IT$ P6=MEMORY-3*PAGSIZ ;PAGE 0 OF PDP6 SLAVE IS MAPPED INTO PDP-10 MEMORY
] ;END OF IF1
;TOPN BOTN NPURTR NIOCTR N2DIF NPRO %LOSEG %HISEG FIRSTLOC STDLO STDHI CURSTD STDLO STDHI CURSTD
;IFE <ITS+TENEX>*USELESS, NPGTPS==0
IFE 0, NPGTPS==0
TOPN==0
BOTN==0
.XCREF TOPN BOTN
NPURTR==0
NIOCTR==0
.XCREF PURTR1 NPURTR NIOCTR
N2DIF==0
NPRO==0+1 ;NUMBER OF INTERRUPT PROTECTION REGIONS
;NOTE DEFN OF PRO0 IN MACS FILE
.XCREF NPRO
IFN D10,[
HS$ .DECTWO HSGORG ;DEC TWO-SEGMENT RELOC OUTPUT
HS% .DECREL ;ONE SEGMENT ASSEMBLY
IFN PAGING, LOC 140 ;FOR PAGING ASSEMBLY NEED ABSOLUTE ADDRESSING
%LOSEG==-1 ;INITIALLY START IN LOW SEGMENT
%HISEG==0 ;START AT 0 RELATIVE TO HIGH SEG ORIGIN
] ;END OF IFN D10
IFN ITS, IFDEF .SBLK, .SBLK ;EVENTUALLY FLUSH "IFDEF .SBLK"
20$ .DECREL ;FOR TOPS-20 NEED DEC RELOCATABLE FORMAT
20$ LOC 140 ;BUT FORCE ABSOLUTE ADDRESSING
.YSTGWD ;STORAGE WORDS ARE OKAY NOW
FIRSTLOC:
IFN D10,[
HS$ HILOC==.+HSGORG ;HISEG GENERALLY STARTS AT 400000
HS% HILOC==.
;;; FOR DEC-10, FIRSTLOC AS LOADED WITH RELOCATION MUST BE
;;; STDLO+M*SEGSIZ
;;; AND SIMILARLY HILOC WHEN LOADED MUST BE
;;; STDHI+N*SEGSIZ
;;; FOR INTEGRAL M AND N. INIT WILL ENFORCE THIS IN ORDER
;;; TO PRESERVE SEGMENT BOUNDARIES CORRECTLY.
;;; CURSTD IS THE STDXX FOR WHICHEVER IS THE CURRENT SEGMENT.
STDLO==140 ;SIZE OF JOB DATA AREA
STDHI==10 ;VESTIGIAL JOB DATA AREA
CURSTD==STDLO .SEE $LOSEG
] ;END OF IFN D10
IFN PAGING,[
STDLO==0
STDHI==0
CURSTD==0
] ;END OF IFN PAGING
IFN PAGING, BZERSG==0 ;BEGINNING OF "ZERO" SEGMENT(S)
IFE PAGING, BZERSG==FIRSTLOC-STDLO
;GOINIT GOINI7 SUSCON LISPGO LISPSW SUSFLS KA10P
SUBTTL FIRST LOCATIONS (41, GOINIT, LISPGO); UUO AND INTERRUPT VECTORS
LOC 41
JSR UUOH ;UUO HANDLER
10X WARN [TENEX INTERRUPT VECTOR?]
LOC FIRSTLOC
GOINIT:
IT$ .SUSET [.S40ADDR,,[TWENTY,,FORTY]] ;SET .40ADDR
MOVEI A,READTABLE
MOVEM A,VREADTABLE
IFN USELESS,[
MOVE A,[RCT0,,RCT]
BLT A,RCT+LRCT-1 ;RESTORE READ CHARACTER SYNTAX TABLE
] ;END OF IFN USELESS
MOVEI A,TTYIFA
MOVEM A,V%TYI
MOVEI A,TTYOFA
MOVEM A,V%TYO
MOVEI A,TRUTH
MOVEM A,VINFILE
SETZM VINSTACK
SETZM VOUTFILES
SETZM VECHOFILES
MOVEI A,QTLIST
MOVEM A,VMSGFILES
IFN USELESS&ITS,[
MOVEI T,IB<MAR> ;RESET THE MAR BREAK FEATURE
ANDCAM T,IMASK
.SUSET [.SAMASK,,T]
.SUSET [.SMARA,,R70]
] ;END OF IFN USELESS
MOVEI A,OBARRAY
MOVEM A,VOBARRAY ;GET BACK TOPLEVEL OBARRAY
SETZM V%PR1
SETZM VOREAD
SETZM TLF
SETZM BLF ;??
SETZM UNRC.G ;CLEAR STACKED NOINTERRUPT STUFF
SETZM UNRRUN
SETZM UNRTIM
SETZM UNREAR
SETZM TTYOFF
JSP A,ERINIT
GOINI7: SETZB A,VERRLI ;NULLIFY ERRLIST
PUSHJ P,INTERN
JUMPE A,LISPGO
PUSHJ P,REMOB2 ;GET STANDARD COPY OF NIL ON OBLIST
JRST GOINI7
;;; HERE IF NOT STOPPING AFTER A SUSPEND
SUSCON: MOVEI A,TRUTH ;RETURN T RATHER THAN NIL
MOVEM A,-1(FLP)
;;; FALL INTO LISPGO
LISPGO: SETOM AFILRD ;START HERE ON ≠G'ING
IT$ .SUSET GOL1 ;SET .40ADDR
IT$ .SUSET GOL2 ;GET INITIAL SNAME
20$ RESET ;RESET OURSELVES ON STARTUP
JRST 2,@LISPSW ;ZEROS OUT PC FLAGS, AND TRANSFERS TO LISP
IT$ GOL2: .RSNAM,,IUSN ;KEEP THESE ON SAME PHYSICAL PAGE
IT$ GOL1: .S40ADDR,,.+1
IT$ TWENTY,,FORTY
LISPSW: %ALLOC ;ALLOC CLOBBERS TO BE "LISP"
SUSFLS: TRUTH ;NON-NIL MEANS FLUSH SHARABLE PAGES BEFORE SUSPENDING
KA10P: 0 ;NON-ZERO ==> KA PROCESSOR (AS OPPOSED TO KL OR KI)
;TWENTY THIRTY FORTY UUOGLEEP JPCSAV
IFN ITS,[
TWENTY==:20 ;VARIOUS PLACES OFFSET FROM TWENTY ARE USED BY DDT
THIRTY==:TWENTY+10 ;RECALL THAT THE LEFT HALF OF .40ADDR IS THE ".20ADDR"
;;; ADDRESSES IN THE 20 BLOCK, SWIPED FROM DDT ORDER
;;; 25 HOLDS "." DURING A USER TYPEOUT INSTRUCTION
;;; 26 CONDITIONAL BREAKPOINT INSTRUCTION
;;; 27-30 .BREAK 16,'S FOR RETURNING FROM 26
;;; 31 INSTRUCTION FOR BREAKPOINT WHICH DIDN'T BREAK
;;; 32-33 JRST'S TO PROGRAM FROM 31, OR DATA FOR INSTRUCTION IN 31
;;; 34 INSTRUCTION BEING ≠X'D
.SEE MEMERR
.SEE UUOGL2
;;; 35-36 .BREAK 16,'S FOR RETURNING FROM 34
.SEE $XLOST
.SEE UUOGL2
;;; 37 HOLDS ≠Q DURING A USER TYPEOUT INSTRUCTION
.SEE PSYM1
FORTY: 0 ;.40ADDR USER VARIABLE POINTS HERE
JSR UUOGLEEP ;SYSTEMIC UUO HANDLER
-LINTVEC,,INTVEC ;SYSTEMIC INTERRUPT HANDLER
;;; THAT'S SYSTEMIC, NOT NECESSARILY SYSTEMATIC!!!
;;; ITS PASSES THE BUCK TO THE USER ON UUO'S 0 AND 50-77.
;;; THEY TRAP THROUGH THE .40ADDR, NOT NECESSARILY 40;
;;; SINCE LISP TREATS THESE AS ERRORS, WE CAN AFFORD TO SAVE
;;; THE JPC AND OTHER GOODIES HERE.
UUOGLEEP: 0
.SUSET [.RJPC,,JPCSAV]
JRST UUOGL1
] ;END OF IFN ITS
JPCSAV: 0
;NSFC NSFC NSFC
SUBTTL SFX HACKERY
;;; SFX MACRO TELLS WHERE A LONG PIECE OF SEMI-CRITICAL (MAY BE QUIT
;;; OUT OF, BUT MUST NOT PERMIT USER INTERRUPTS IN) CODE MAY BE MUNGED
;;; IF INTERRUPTED IN THE MIDDLE SO THAT WHEN DONE IT WILL RETURN TO
;;; THE INTERRUPT HANDLER. SUCH CODE INCLUDES ARRAY SUBSCRIPT
;;; COMPUTATIONS (SINCE AN INTERRUPT COULD DISPLACE THE ARRAY)
;;; AND ALL CODE WHICH MODIFIES THE SPECIAL PDL.
NSFC==0 ;COUNTER FOR MACRO SFX
.XCREF NSFC
IFE PAGING,[
DEFINE SFX A/
SFSTO \.-FIRSTLOC,\NSFC,[A]
NSFC==NSFC+1
A
TERMIN
DEFINE SFSTO PT,NM,IN
DEFINE ZZM!NM
FIRSTLOC+PT
TERMIN
DEFINE ZZN!NM
IN
TERMIN
TERMIN
] ;END OF IFN PAGING
IFN PAGING,[
DEFINE SFX A/
SFSTO \.,\NSFC,[A]
NSFC==NSFC+1
A
TERMIN
DEFINE SFSTO PT,NM,IN
DEFINE ZZM!NM
PT
TERMIN
DEFINE ZZN!NM
IN
TERMIN
TERMIN
] ;END OF IFN PAGING
;;; THE ZZM AND ZZN MACROS ARE EXPANDED AT SFXTBL (Q.V.)
;UNBND2 ABIND3 SETXIT SPECX AYNVSFX 1DIMS ARYGET ARYGT4 ARYGT8 1DIMF ANYGET 1DIMD ADYGET 1DIMZ AZYGET SPSV
;;; **** ALL USES OF THE SFX MACRO MUST APPEAR ON THIS PAGE ****
SFXPRO
10$ UNBD2A:
10$ POP FLP,R ;Restore R
UNBND2: MOVE TT,(SP)
MOVEM TT,SPSV ;ABOUT LOADING TT WITH SPSV, SEE UNBIND
MOVE TT,UNBND3
SFX POPJ P,
ABIND3: PUSH SP,SPSV
SFX POPJ P,
SETXIT: SUB SP,R70+1
SFX JRST (T)
SPECX: PUSH SP,SPSV
SFX JRST (T)
AYNVSFX: ;XCT'ED BY AYNVER
SFX %WTA (D)
1DIMS: JSP T,AYNV1 ;1-DIM S-EXP ARRAYS COME HERE
ARYGET: ROT R,-1 ;COMMON S-EXP ARRAY ACCESS ROUTINE
ADDI TT,(R)
ARYGT4: JUMPL R,ARYGT8
HLRZ A,(TT)
SFX POPJ P,
ARYGT8: HRRZ A,(TT)
SFX POPJ P,
1DIMF: JSP T,AYNV1 ;1-DIM FULLWORD ARRAYS COME HERE
ANYGET: ADDI TT,(R) ;COMMON FULLWORD ARRAY ACCESS ROUTINE
MOVE TT,(TT)
SFX POPJ P,
IFN DBFLAG+CXFLAG,[
1DIMD: JSP T,AYNV1 ;1-DIM DOUBLEWORD ARRAYS COME HERE
ADYGET: LSH R,1 ;COMMON DOUBLEWORD ARRAY ACCESS ROUTINE
ADDI TT,(R)
KA MOVE D,1(TT)
KA MOVE TT,(TT)
KIKL DMOVE TT,(TT)
SFX POPJ P,
] ;END OF IFN DBFLAG+CXFLAG
IFN DXFLAG,[
1DIMZ: JSP T,AYNV1 ;1-DIM FOUR-WORD ARRAYS COME HERE
AZYGET: LSH R,2 ;COMMON FOUR-WORD ARRAY ACCESS ROUTINE
ADDI TT,(R)
KA MOVE R,(TT)
KA MOVE F,1(TT)
KA MOVE D,3(TT)
KA MOVE TT,2(TT)
KIKL DMOVE R,(TT)
KIKL DMOVE TT,2(TT)
SFX POPJ P,
] ;END OF IFN DXFLAG
NOPRO
SPSV: 0 ;IMPORTANT TO SPECPDL BINDINGS
.SEE $IWAIT
;;; **** THERE MUST BE NO MORE USES OF THE MACRO SFX BEYOND HERE ****
EXPUNGE SFX SFSTO
;INTFLG NOQUIT UNREAL REALLY ERRSVD IMASK LFAKP LFAKFXP FAKP FAKFXP CMUP MONL6P UPIINT CCOCW1 CCOCW2 TENEXP VTS20P INTPC1 INTPC2 INTPC3 PDLSVT SUPSAV LV2SVT LV2SVF LV2ST2 LV3SVT LV3SVF LV3ST2 DSMSAV CINTAB CINTSZ
SUBTTL INTERRUPT FLAGS AND VARIABLES
;;; INTFLG INDICATES WHETHER IN INTERRUPT IS PENDING:
;;; 0 => NO INTERRUPT
;;; -1 => USER INTERRUPT PENDING (STACKED IN INTAR)
;;; -2 => ↑X QUIT PENDING, DON'T RESET TTY
;;; -3 => ↑G QUIT PENDING, DON'T RESET TTY
;;; -6 => ↑X QUIT PENDING, DO RESET TTY
;;; -7 => ↑G QUIT PENDING, DO RESET TTY
INTFLG: 0
;;; MAY NOT ↑G/↑X QUIT OR ALLOW USER INTERRUPTS IF NOQUIT NON-ZERO
;;; NON-ZERO IN LH MEANS GC IN PROGRESS; IMPLIES
;;; PDL POINTERS AND NIL MAY BE CLOBBERED
;;; NON-ZERO ONLY IN RH MEANS PDL POINTERS AND NIL ARE OK
NOQUIT: 0
¬
;;; MAY NOT ALLOW "REAL TIME" INTERRUPTS (CLOCK AND TTY) WHEN
;;; UNREAL IS NON-ZERO. MUNGED BY THE FUNCTION NOINTERRUPT.
;;; 0 => ALL INTERRUPTS OKAY
;;; -1 => NO INTERRUPTS OKAY
;;; 'TTY => ALARMCLOCK OKAY, TTY NOT OKAY
UNREAL: 0
REALLY: 0 ;IF NON-ZERO, THE ADDRESS OF A PDL SLOT FOR THE
;UNBINDER TO UNBIND A SAVED UNREAL INTO.
;SO THAT UNWPR1 CAN KEEP UNREAL SET WHILE BILDING IT.
.SEE WIMUNB
.SEE UNWPR1
ERRSVD: 0 .SEE ERRBAD
;;; INTERRUPT MASK IS ALUAQS IJITIALIZED FROM THIS WORD.
;;; FOR ITS, THIS IS THE .MASK (AND .MSK2) WORDS.
;;; FOR TOPS10 AND CMU, THIS IS THE APRENB WORD.
;;; FOR D20, THIS IS THE CHANNEL ENABLE WORD
;;; DEPOSITANG DBGMSK INTO IT BEFORE STARTUP CAN AID DEBUGGING.
;;; FOR ITS AND D20, IMPURE LISPS WILL HAVE DABUG MASKS IN THESE
;;; LOCATIONS; THE PUBIFY ROUTINE INSTALLS THE STANDARD MASKS.
.SEE PURIFY
.SEE DBGMSK
IFN <D10+D20>, OIMASK: 0 ;HOLDS OLD INT MASK WHEN INTS ARE DISABLED
SA% INTMSK:
IMASK: STDMSK ;INTERRUPT MASK WORD
IT$ IMASK2: STDMS2 ;ITS HAS TWO INTERRUPT MASKS
LFAKP==5 ;MUST BE LONC ENOUGH FOR USES BY
LFAKFXP==6 ; PDLOV, ERINIT, AND PURIFY
FAKP: BLOCK LFAKP ;FAKE REGPDL, FOR USE BY PDLOV AND ERINIT
FAKFXP: BLOCK LFAKFXP ;FAKE FIXPDL, FOR USE BY PDLOV AND ERINIT
IP$ VALFIX: 0 ;-1 --> VALRET 'S@)I∪≥∞N↓∪&A%∃β→→2↓αA
∪a≥+~~)∪(H∩$∩∩]'∃
A-β1')$~(~∃∪
8Aλb`16~∃π5+ t∩@∩∩wπ5*A≠∨9∪)∨$|~∃∪
∀A'β∪0Y6~∃5∨≥_m@t∩`∩ll[→Y_A≠=≥∪)∨HA∨$A ))I }~∃t∩w≥⊂A∨A%
A'¬∪_~∃t∩w≥⊂A∨A%
≤AλD`~∀~(vvvA%A≥∨8[5%<XA)⊃%&Aπ∨9)β∪≥LA)⊃
↓β %∃'&A∨_AαA+M$['U!!→∪∃λ~∀vlvA∪≥Q%%+A(A!%=π''=$\@AQ⊃
A→%' A'e')~↓∪≥)I%+!(↓⊃β≥ 1$~∀lvvA/%→_A∂%-
A∪PAβ≥2↓∪≥)I%+!(↓→∪' ↓ ∨'8O(A!I∨π'LA∪)'∃→\AM
A∪9(`\~(~∃+!%∪≥(t$`~∀~)∪
≤A⊂d`Y64∀vvv↓)∨!&4d`A∪9)%%U!(A-¬%∪β¬1&~∀4∀vvv↓
→β∂LA')U A¬2↓β→→∨Aβ≥λ↓'+'!∃≥λ~∃
π∨π.Dt∪ππ=εb∩wQQSfA]←eIf↓[CrA J@Ee∃[←IK1KHDA¬hACY1←GCi%←\Ai%[JXA¬]HACP~∃ππ=π.dt%ππ∨εH∩vAgQCeh[U`AMe=ZAgkMaK]g%←\XAQ↑ACG
←k]h↓M←d@Da0↑dA0AIS→MKeK9GKf~))≥a t∩`$wβYg<AgKh↓k`ACLACE←YJ~∃-Q&da h@`@∩m≥←\Z@ASLAMsgiK4AQCf↓iQJAYSeik¬XA)KI[S]C0A'kaA←eh~(~∀vvlA¬→∨
⊗A∨↓)⊃%∀A→∨π¬)∪∨≥LA∪≤A]⊃∪π⊂↓)⊃
AAεA∪&↓')∨%∃λA∨≤↓β≤A∪9)%%U!(\~(vvvA=≥
A→=πβ)∪=≤A
∨HAβπ A∨AQ∨!&ZH`O&AQ⊃%
↓→-1&~∃∪9)!εbh∩`~∃%≥)!εHt∩`~)∪≥)!ft∩`4∀~∀vlvA)5!∨%βI2A→∨
β)∪∨9&A+'∃λA¬2↓∪≥)I%+!(↓⊃β≥ 1%&~)! →'Y(t∩`$w+'⊂A¬2@⊃! →∨XA)≡AMβ-
A¬εA(A]⊃∪→
↓≠+≥∂%≥∞A)!
A∪≥Q! _~)'+!'¬,t@`$∩∩w+MλA¬dA∪≥)M+ ~∃1,e'-Pt∩`∩$∩w→Y_@d↓!β%β5)%LtA'βY
A(~)→,e'Yt∩`$∩∩v∩$@@@@↓'β-
↓~∃→Xe'(dh∩`∩∩$v∩∩@@@A'∃π∨≥λ↓'β-
↓(~∃→Xg'-(h∩`∩∩$w→-∃_@fAAβ%β≠∃)%&hA'β-∀A(~∃1,g'-_t∩`∩$∩v∩∩@@@AMβ-
A_~∃→,M'(dt$`∩∩∩l∩∩@@@A'
∨≥λAMβ-
AP~∃ '5'β,t$\∩∩∩m!∨∪≥Q$A∪9)≡A'5β→_AM)βπ⊗↓+'λ↓¬2A M≠∪≥(4∀∪¬→=π⊗@b@∩∩w)<A¬
AMβ
X↓¬+(@PA'⊃∨U→λA¬∀A≠β1%≠+~A⊃!)⊂4∃∪(J↓π≤]5`t∩`∩$∩w/⊃∃%
A)<A1∪PAβ
)∃$A=44∀~∀vlvAβ&↓))2A%≥)%I+!(A
⊃β≥≥∃_A≠+M(A¬
↓ 3≥β5∪πβ→12Aβ→1∨πβ)∃λXAβ9λA)⊃∃%
AβI
~∀vlvA
]$Aπ!β≥≥1&A)⊃¬≤A)⊃∀A)∨)¬_A!∨M'∪¬→∀A≥+≠ $A∨_A∪≥)∃%%+!PAπ⊃βIβπ)I&X~∀lvvAα↓)β¬→∀A∪&AU'λAQ≡A')=%
A)!
A∪≥→∨%≠βQ∪∨≤\A)⊃
↓)β¬→∀A∪&@Dp\A/=% &A1∨≥∞\4∀vvv↓αA5I≡A≥Q%2A∪LA+≥+MλXA9∨≥5I≡A⊃βLA∪≥)∃%%+!PAπ⊃βIβπ)H\@A∪_A)⊃
↓)β¬→∀~∀vvlA≥)I2A∪&↓≥∂βQ∪-
X↓)⊃≤↓)⊃
A
⊃β≥≥∃_A∪&↓β''∪≥≥λA→∨$A'=≠
A∨Q⊃$AU'
\~(~∀wπ!β≥≥0Aβ''%∂≥≠9)&A
=$A≥∨8[')β9 β%λ }RA∪9)%%U!)&~(~∃π∪9)β∧t4∃)∪π5β @]Q∪εCπ=
~∃I!βP@bp\4x\[π%≥)β∧xX@`∩$∩w∪≥%)∪β→12A+≥U'λ~)π∪≥)M4zz\5π∪≥)¬∧~∃:$∩w≥⊂A∪
≤↓λd`∩4∀~∃∪→≤A'β%_Y6~)'β∪→5β∪_t%¬→∨π,@fd\$w
∨$↓≠β∪_↓++≡~):∩w9λA∨↓∪
≤AMβ∪_~(_w')Q3.bAM))3.HA'))e_bA'Q)3_d↓'))3∧bA')Q3αdA
π∨εb↓ππ∨εHA1βπQ.A1β
)_A'Q )∪.↓'βπ)\bA'β
).dAMβπ).LA'βπQ.hA'¬π)_b↓'βπ)0dA'β
)_fAMβπ)_PA+∪'Qβ⊗A∂
%'$AA →') A! →M)αA!⊃→')∧↓! →'Qε~∀~(~∃'+ ))_@↓
∪9∪)∪∨9&A∨↓))2AM)β)+LA/∨%⊃&~∀~)∪
≤A%)&Y64∀vvv↓∪≥∪)%β_A)Q2A')¬)+&A%&Aβ&↓
∨→→=/&t~(vvv∪¬π)∪-¬)∪∨≤↓π⊃β%Lt~∀vlv∩∪=[=_X↓=≤[=hXA=85=>XAM!βπ
0@x@|P@R@↓vA|AI+¬∨+P@Aπ$4∀vvv$∪→¬%¬π↔(A%¬%¬π↔(4∀vvv%∪≥)I%+!(↓π⊃β%Lt~∀vlv∩∪=[=⊂X↓=⊗XAy_XA=8[=4X↓=8[=|XA'!¬π
~∀lvv∩∪y⊂Aβ≥⊂A'!β
A ≡↓≥∨(A%≥)%I+!(~(vvv∪M!βπ
↓β≥λA βπ↔'Aβπ
A=+)!+PA∪≤A%≠β∂
↓≠∨
0Aβ→_↓∨)⊃I&A∪≤↓β'π∪$\~∀vlv∪β→0Aπ⊃βI&Aπ!≡A∪≤↓!∩A≠=
@Q∃π⊃≡A]⊃≤AQ3!λ$XA1
!(AI+¬∨+PA ∨M≤O(A∃π⊃≡\4∀vvv4∀vvv↓%πβ1_A)⊃¬(A)⊃∀A)/1-
Aπ!β%βπQ$A∂I∨+!&↓β%
t4∀vvv%=A=∧[=Ay⊗[=_↓=≤[=HA=([y4A=% %βπ↔∃(A=8↓=<A=|~∀vvl∪α[4Q+!!∃$AπβM
RXA∧[t@Q1∨/$↓πβ'
$~∀vvl∩`Zr4∀vvv$B@D@@H@JL@N@0@\@tv@}AA8A@↓xA|~(vvv∩(@V@Z↑@zAxA>~∀lvv∩x|@P@$AvA|↓→¬%β
↔(AI¬%βπ-(~∀lvv∪=≤A=&~(vvv∪y∀A=∩4∀vvv%β→)≠=
~∀lvv∪=4~∀vvl∪%+¬=+(~∀lvv∪'Aβπ
Ay⊂~∀]M
@KQ∞~∀∪M))3.DzztdLd`d`0Xd`d@dd∩∩m')β)U&A/∨I &A
=$A≥∨I≠β_A5∨
~(∪'))e.dzzhdfddH`XXdH`dfd4∀∪')Q3_bzttdfd@d`XXH`d`d@∩∩w'Qβ)+&↓/∨% LA
∨$↓→∪≥
↓≠∨
4∀∪')Q3_dzttdbd@d`XXHd`ddH~∀∪'Q)3αbtzt`dHdddX0ddddHd∩∩wM)β)+LA/∨%⊃&A
∨HAβ→→=ε~∀∪M))3αHzztfH`ddd0X`d`Hdd~∃t∩∩w9λA∨↓∪
≤A%)&~∀4∃∪
≤↓λd`Yl~∀vvlAπ←]Qe←X[
QCeC
iKd[=kiakP[π←]Qe←X@4Aio↑↓ESif↓M←dA∃CGPA
←]ie=XAGQ¬eCGi∃d~∀vlv@@`ZASO9←eJX~∀vvl@@b@4AaeS9hA=00@@~∀lvv@@H@ZA←Uiakh↓k][←⊃SMSK⊂X@@~(vvv@f@ZAMS[kY¬iJAM=e[Ch↓CGiS=\~∃%¬ ∪0@P~∀∪π
∨εbzttbbbDbbbdLfdbdLbbbb4∀@@∪
π∨εdtztbbDbbbbDbfbbDb```@~∃%β⊃∪0@p4∀vA'∃
Aππ=π.bA¬≥λAπ
∨π.b4∀~∀vlvA
←UdAGY¬ggKf↓←LAo¬WJ[k@AG←]Qe←X~)1βπ)\zzu)PK/↔-)(K/-≤W)(∃/↔ WQ(K/↔∧~∃1β
)_zzi)(K/-~∃'Q )∪.tz`∩∩m')β≥⊃β%λAQ%≠∪9β_A∪9)%%U!(A/=%λ@Z↓]←hAIKCYYdAkgK⊂B~∃)%π≠β ↓w') Q∪.z{M) )∪\Vxc>pfjZ]Q∪εCπ=
|⎇x~∃:∩$w≥λ↓∨A∪→≤Aλd@~∀~∃%
≤A'¬∪_Y64∃'βπQ.bzzhnnnn\nnnnLn`~∃Mβπ).Hzzt`L````@`j``@~∃'β
).fztt```@``dh@```~)'βπ)\hzzt@````Td```@`~∀~)'βπ)0bzzt\njbn\jnnf\`~∃'¬π)_dtzt``@````@````4∃'βπQ_fzzh````@````@``~∃Mβπ)_Pzzt`@````H````@~∃:∩$w≥λ↓∨A∪→≤A'β%_~∀~(~∀~∀4∀~∀~)'+¬)Q_∪≥Q%∪&↓)≡A-¬%∪∨+LA%∨+Q∪≥&↓πβ→→∃λA¬2↓∃'$~(~∃+∪M)β⊗t$`∩∩wM)βπ⊗↓+ @Q¬π)+β1→2XAE++
$AαA+M$A∪9))%I+!(~(∪∃%'PA+∪'Q⊗b~∀4∃∂π%M$t∩`$∩w∂ε↓%')=%
\A
→β≥LA+ A)+'(A
∨%∀Aβ≤~(∪∃%'PA∂π%M$`∩v↓β¬≥∨I≠β_A∃1∪(@!∂π≥⊂A∪&A9∨%≠β0A1∪PR\~∀4∃∪
≤↓!β∂∪9∞Y6~)! →'Q⊂t∩`$∩vE!⊃_A'(↓⊃βπ⊗λ\A∂Q&AαA9.A!¬∂
A
=$AαADL,
JRST PDLST0 ; AND UPDATES ST AND GCST APPROPRIATELY.
IFN D20,[
PDLSTA: 0 ;TEMPS FOR SAVING ACS
PDLSTB: 0
PDLSTC: 0
] ;END OF IFN D20
] ;END OF IFN PAGING
;CHNTB TMPC DPAGEL DLINEL LJOBTB JOBTB
SUBTTL NEWIO I/O CHANNEL ALLOCATION TABLE
;;; ENTRIES:
;;; 4.9 => CHANNEL IS LOCKED FOR A PARTICULAR PURPOSE
;;; 1.1-2.9 => ADDRESS OF FILE ARRAY SAR
;;; IF AN ENTRY IS NON-ZERO BUT ITS FILE ARRAY SAR'S
;;; TTS.CL BIT IS SET, THE CHANNEL MAY BE DE-ALLOCATED.
;;; THIS ORDINARILY HAPPENS ONLY ON A QUIT OUT OF $OPEN.
;;; CHANNEL 0 (TMPC) IS PERMANENTLY LOCKED FOR USE OF THE ERR
;;; DEVICE, FOR UPROBE, ETC. NOTE THAT ITS PUTS .OPEN
;;; AND .CALL FAILURE CODES ON CHANNEL 0 ARBITRARILY.
IFN ITS+D10, LCHNTB==:20 ;NUMBER FIXED BY OPERATING SYSTEM
IFN D20, MAYBE LCHNTB==:40 ;THIS NUMBER IS BASICALLY ARBITRARY
CHNTB:
OFFSET -.
TMPC:: 400000,,NIL ;FIXED TEMPORARY CHANNEL
IFGE LCHNTB-., BLOCK LCHNTB-.
.ELSE WARN [TOO MANY FIXED I/O CHANNELS]
OFFSET 0
;;; DEC-10 I/O BUFFER HEADERS (MUST REMAIN FIXED IN CORE)
;;; THEY ARE NAMED BFHD0, BFHD1, ..., BFHD17.
IFN D10, REPEAT LCHNTB, CONC BFHD,\.RPCNT,: BLOCK 3
DPAGEL: 60. ;INITIAL DEFAULT PAGEL
DLINEL: 70. ;INITIAL DEFAULT LINEL
IFN JOBQIO,[
LJOBTB==10 ;EIGHT INFERIOR PROCEDURES
JOBTB: BLOCK LJOBTB
] ;END OF IFN JOBQIO
;TTYIF1 TTYIF2 FI.EOF FI.BBC FI.BBF TI.BFN FT.CNS F.MODE F.CHAN F.FLEN F.FPOS F.@ ,↓]
≤DA]
8dA]I ,A_]↓,4∀~∀~)'+¬)Q_∪∪≥%)∪β_↓))2A%≥!+(↓
∪→
↓β%%βd~∀
∀$[]∂XY))e∪d∩$w∂εA¬∨¬∃≤↓!∨∪≥Q$~∃Q)3∪Dt∪∃'@A)(XE ∪≠&4∀∩∪)Q3∪
α$∩w!∨%≥)$↓¬βπ⊗↓)≡A'¬$~∀∩$`∩∩w%→→∂¬_A
∨HA+'HA)≡A¬ππ'L@ZA %≠≥'%∨≤A∪LA5%<~∃))e∪dt4∃∨
M(@Z8~∀∪
$]∨ht∪≥∪0∩∩w=A
+9π)∪∨8@P}}$~∀∪
$]¬¬εht∩`X1≥∪_∩$s¬+
→%λ↓¬βπ⊗↓β⊃β%L~∀∪
$]¬¬ht∪≥∪0∩∩w¬U
%∃λA¬β
⊗A
∨I≠&~∀%)∩]¬→≤tt∪E))3¬U∩∩wA%
['
β≤A
U≥π)∪=≤~∀∪→(]π≥Ltt∪)Q3∨
α$∩wβ'M∨π∪βQλA)Q2A∨+Q!+(A→∪→
~(∪%!∃β(@f0@`∩∩$∩w+≥U'λAM→∨)&4∀∪]5∨
thA'αJ%
¬(]
~XXd$w≠∨ ∀@Qβ'
∪∩A)Q2A∪≤↓'∪≥∂1
R~∀$∩A'α⊂∪
¬(9π≠9
(]→≤0Xd~∀%]π⊃¬≤tt∩4b∩∩w
⊃β≥≥∃_@F@!∪≥∪)%β→→2↓∪→→≥β_R~(d`H∪_]∃
≤ht∩∩]A%∪∪≤$∩w∃
8@Q
∨HAλd`↓∨≥→2$~∀d`∀∩∩∩`4∀∪]→→≤th∩Zb∩$w/
A∃1!πPA%β≥⊃∨~Aβ
π'&↓)≡A¬∀A∪→→∃∂β_~(∪]
A∨&tt$`∩∩w→∪⊃
AA∨'∪)%∨≤~∀%%!¬(@fX`∩∩∩$w+≥+MλA'1∨)&~)∪
≤A%)&WλD`Y6~(∪] ∃(tt∩%'∪1¬%(A9)Q38∩w⊃-∪π∀~∃∪(⊂∪]'9~tt∩$`∩∩wM≥β≠
Q
∪→1λA∪8R~∀b@H∪]A!≤tt$∩`∩∩m!!≤@!
∪→→∃λA∪≤$~∀∪9
≤bth~∃∪(⊂∩∩∪'%1¬∪(↓8]→∪M ]8∩m
∪→
↓≥β≠
b~∀b@H∩∩∪M∪1¬∪PA9→∪M!8~∀%]
≤Htt~∃%(H∩∩%'∪1¬%(A9∪9!+)8$w
∪→∀A≥β≠∀@d~∀D`H∩∩%'∪1¬%(A9∪98~∀∪_]% Xtt∪¬1∨π⊗@P∩∩w)I+
A
%→
A≥¬≠&~):∩∩w∃≥λA∨_A∪
≤↓∪)&W⊂b`~∃%
≤AλH`Y6~(∪] ∃,tt∩%β'π∪$A9))e8~∃:$∩w≥⊂A∨A%
≤AλH`~∃→=εA))e∪dW1∨!∨
∧~∃∪
8A∪)&-λd`WMβ∪_Yl~∀v∪Q∩U'(Dtt~∃%(H∩∩%'))3\b∩∩wQ)2A'Qβ)+&↓/↔% L~∀d`⊂∩∩∪π
∨εb~)'αH∩$∪'βπQ.b~∀l∪)∩]M(dtt4∃∪(H$∩∪')Q3.d~(d`H∩$∪ππ∨d~∃'∧H∩∩∪Mβπ).H~∀v∪Q∩U'(Ltt@~)'αH∩$∪'βπQ.f~∀H`H∩∩%1βπ)\~∀b`⊂∩∩∩`4∀v∪)$Y'(hht@~∃MαH∩∩%'βπ)\h~∀d@H∩∩∪M) )∪\~∃∪(⊂∩∩∩`4∃:∩∩m≥λA=A∪
8A∪)&-λd`WMβ∪_~(]→'∀∩∪¬→=π⊗@h4∀v∩∩$`∩∩]M
AβQ≡]→ε4∀v∪βP]π⊃&ht∩`∩$wπ⊃βI!∨&~(v∪β(9→≥≤th∩`∩∩m→∪≥9+~~∀l∪β(]A∂≤tt$`∩∩wAβ∂≥U~~∀v$∩∪¬→=π⊗@b@~∀f∪1∨≥¬
∧tt∪¬1≠π⊗@D`~∃→=εA))e∪dW→∧]¬+_~∀v∪→∧]¬+_tt∩∩$s∪≥)∃%%+!PA
+≥
)∪∨≥L~∃∪
∀A'β∪0Y6~∀$∪≥∪_0Y∪≤`-=α∩wy∩∩∪yα@@EM∪∂≥β0@A∨≤4∃∪(J$∪#π≤9¬∧XY9∪_∩wy@A=λ[¬%¬⊗∩∪=@@~∃%(H∩∪Eπ≤]¬λXY∪≤@W=ε∩m=∧@Ay∧[¬%∃β⊗∩∪yε@A∂A')βPA∨
4∀∩∪∪8`W=λ0Y≥∪_$w=λ@↓∂εA'Qβ(A∨8∩∪=
4∀∩∪≥%_XY∪8`W=∞$w=@@@@@@@@@@∪=∞A⊃β%⊂A#+∪P~∃%Aβ(@LX∪≥∪0XY≥∪0∩w=⊂5=~@Q→≠%≠βPA
∃π!∨%LR~∀∩%→∪_X1→∪_∩m=≤∩∩%=≡~∀$∪≥∪_0Y≥∪_$w= ∩$∪="~)∪ J∩%∪∀`Wy$XY≥%_∩w=H@A+/I∪!
A=≤p≤$MrM↓hR&@"A⊃∀L@L
wJ%∩3F¬wUb'≠THλ
ZtR5λT⊃s@∨BDo!Pλ/+P$S*⊗⊂/∃⊂&`aT'FE∧Bdg_∃W*⊗⊗'∩f∧]o∃⊂⊂*kT$j"P∪c#∨DW*FE∧Bdg_∃W+⊗⊗$S_∃o+B]o+⊂λ**,P∪e∧Do∃P⊂**⊗P#c#βEDdS_∃o,⊗'$fα]o,⊂λ)cc*λ(jdjαDo$FB∧Ddg∃o-⊗'$f∧No-⊂⊂⊃gP*'H""*∧BMP⊂⊂∂ f*&Sb"←εB∧Dg$S⊗⊗'$S∧]o.αDDagS*)'fλ)$cd∃⊗a) PebjεB∧Dg$S⊗⊗'$S∧]o/αDDo/CE)"h⊃`j⊂≡∪ iadRUY∨⊗O↔⊗c!!*c∨∧g$f⊗'$fα]`f&λ'j$"T)P$g∩j `f∪,P*g∃ibbεB.D]bS"⊂$c⊃P)`dSεEεE∩c'⊂)Pdf⊗-CE)"h⊃`j⊂_L_⊗∧g∩f∩⊗'∩f∧]`S($ a⊃j aP
iadRP_⊂*∩)'jcR⊂ iaRdP_[MTFE)⊃h"`jλ~_⊗∧S$f⊗⊗∪$f∧]S'kP!Se*)'S⊂/≡'∃f&∨⊂∃h⊂*'H/ ⊂∀__⊗Y
[TFEαDg$f⊗$gλ
o D]H⊂⊂/ CEDhPg↔!!⊗$gλ
o!D]W!⊂/!CE∧DdS_∃o"⊗'$fα]o"εB∧Dg$S⊗⊗$g∃o#DNo#⊂/⊃FE)"T"`j⊂V∧g$S⊗⊗'$SεE∧DS$f⊗⊗∪$f∧]W'⊂/'CE∧Dg∩f∩⊗'∩f∧]o∀⊂/(FB∧Ddg∃o)⊗$g_∃W+D]o∀⊂/)FB∧Ddg∃o*⊗'$f∧No*εEαDdg_
o+⊗⊗∩dε0+↑W ;↑V ↑W
IN0+↑X,,NIL ;↑X ↑Y
↓ IN0+↑Z,,NIL ;↑Z
REPEAT 3, NIL,,NIL
QCN.BB,,NIL
NIL,,NIL
NIL,,IJ0+↑G ;LOWERCASE ↑G
REPEAT 11, NIL,,NIL
IN0+↑Z,,NIL
REPEAT <NASCII/2>-<.-FB.BUF>, NIL,,NIL
] ;END IFN SAIL
OFFSET 0
;TTYOF1 TTYOF2 FO.EOP FT.CNS F.MODE F.CHAN F.FLEN F.FPOS F.DEV F.FN1 F.FN2 F.RDEV F.DEV FO.LNL FO.PGL FO.RPL
SUBTTL INITIAL TTY OUTPUT FILE ARRAY
-F.GC,,TTYOF2 ;GC AOBJN POINTER
TTYOF1: JSP TT,1DIMS
TTYOFA ;POINTER BACK TO SAR
0 ;USER MAY NOT ACCESS, SO SAY DIMENSION IS ZERO
TTYOF2:
OFFSET -.
FO.EOP:: QTTYMOR ;END OF PAGE FUNCTION
REPEAT 3, 0
FT.CNS:: TTYIFA ;STATUS TTYCONS
REPEAT 3, 0
F.MODE:: FBT.CM,,3 ;MODE (ASCII TTY OUT SINGLE)
F.CHAN:: -1 ;CHANNEL # (INITIALLY ILLEGAL)
20$ F.JFN:: .PRIOU ;JFN
20% 0
F.FLEN:: -1 ;NOT RANDOMLY ACCESSIBLE
F.FPOS:: 0 ;FILE POSITION
REPEAT 3, 0
IFN ITS+D10,[
F.DEV:: SIXBIT \TTY\ ;DEVICE
IT$ F.SNM:: 0 ;SNAME (FILLED IN)
10$ F.PPN:: 0 ;PPN (FILLED IN)
F.FN1::
IT$ SIXBIT \.LISP.\ ;FILE NAME 1
10$ SIXBIT \LISP\
F.FN2::
IT$ SIXBIT \OUTPUT\ ;FILE NAME 2
10$ SIXBIT \OUT\
F.RDEV:: BLOCK 4 ;TRUE FILE NAMES
] ;END OF IFN ITS+D10
IFN D20,[
F.DEV:: ASCII \TTY\
] ;END OF IFN D20
LOC TTYOF2+LOPOFA
BLOCK 4
0 ;ATO.LC LINEFEED/SLASH FLAG
0 ;AT.CHS CHARPOS
0 ;AT.LNN LINENUM
0 ;AT.PGN PAGENUM
FO.LNL:: 71. ;LINEL
FO.PGL:: 200000,, ;PAGEL
FO.RPL:: 24. ;"REAL" PAGEL
OFFSET 0
BLOCK <LOPOFA+LONBFA>-<.-TTYOF2>
;SWS ERRTL CATRTN EOFRTN PA4 INHIBIT ERRSW BFPRDP CATID CATSPC CATLIS CATUWP CATCAB CATALL CATCOM LEP1 KMPLOSES UIRTN RSXTB PNMK1 GCD.A UNBND3 SIXMK2 SAVMAR GCD.B AUNBD EXP.S ATAN.S UNMTMP FPTEM IFLT9 EQLP GCD.C ATAN.X GWDCNT GCD.D ATAN.Y GWDORG GWDRG1
SUBTTL SUPER-WRITABLE STUFF - MEST BE SAVED UPON USER INTERRUPT;; DONT ALLOW USER INTERRUPTS WHILE:
;;; (1) NOQUIT IS NON-ZEBO - THIS PROTECTS GC,
;;; RETSP, SUBLIS, AND OTHERS.
;;; (2) INHIBIT IS NON-ZERO - THIS PBOTECDS
3;; MANY AREAS OF SEMI-CBITICAL CODE,
;;9 ↓ (CF. LOCCI AND UNLOCKI @≠β
%∨&R4∀vvv$∩PfR↓+≥%¬_A∪&↓≥∨≤[i%≡@! β!9 &A∨8A1β
(A-β1+
R~(rvv∩$∩ZA$B&MαM→α~>∩αR"∃∧r>&:$*JJV¬!α~Vt~R&>ph(4*≥:MiHhP4)M[YαR"*α~>2dzV&::αNRV41α&M¬~εZ⊗"αP≤DY`∧r∧(U∃∃8ZB∧5(→T*∩ ~2∧≥(X∃$,EaPS[74∧t⎇D tte∀λU∃∃8ZBb∧*ZB∧J9r∧≤~H4B∧→hB¬∀X_B∧tXXB¬$tλDz¬I ∃~pQ'3KZ →e$-*
$-⊃1λ
SqtdλtQ0*H(⊂
9tUλ XH∩⊂)HK04j81λ⊃J(31+AQL¬U]H!"c`T"PP*∩ ¬ COMPILER DEPEJDS OHA↔9≠'∪≥≤A)↓
↓→≥∂Q⊂A∂4⊂vvv↓)⊃
A∃%%'PA
%β5
Aβ&↓αAπ∨9' ∩εu!αBε∀
6⊗R-⊃0⊂@ ¬εE⊃i)*'∞∧X∧]T RESTORAT@∪∨8A
∨$↓%%'∃(∩¬π¬)%)≤βP%@%]α∩1αα(U≥∧z(∃$Ly`λλitH⊂h~⊂r @c⊂ @∃$)'kCE"gc∀*'∃∧L∧Y`⊂DL RESTORATIK@≤A=_ α∃ly6→α%∩εB>- 4*B !`⊂K↓↔5∧∧D
$-≥Iz$
$α3sD qH⊃it⊂πi⊂∀"j*i∪∧A$g∩$a$j∞α 9H
∨≤55β%≡z|A∪9⊃∪¬∪P@Q 1β2RA¬→_AM$A∪9)%%U!)&~(∩∩f@ZbXX@@@z|↓∪⊂~"L∩&Aαb1α⊗D~⊗BQ¬"ReαLrR⊗J∃*BRLhR⊗JJ≥9`%5λI`≠α XTU4 dj¬λ∧R)@*⊂'gλ"i)'T⊂"*i∩dεG ERRSET
∩∩lAβπ%*ε"∩Ja↓
Vu∩⊗ε1⊂∧∧M~λ:D`:Q1⊂∩dε @)!
A2@∧∧`8H⊂
$∩iP ↔ORD
; @/!⊂→αr⊃↓
-∩JN⊗ ¬U¬-9λT"∩λ)D`8p¬P$TP( ∃SH@λ\4⊃¬
¬∩∩AhK%nI∞DλU3PjI3s@⊂∃βH@∪π A/β≥Q&A))dA!%
5'πβ≤4⊂∩α∩l∩Q%¬λXA∀*ε∩I→d*Hβ"B!⊃,¬Dj⊗dP#'T⊂ aj∩hεATILπ⊂→αr⊃α∞-∩N =* u_h!⊃⊂KX∀∧∧9α"`⊗ERNE@'LXA¬+PA≥≡AA%α['
β≤4PH$%@1→dL@λ⊃Sj$⊃Shλd∧EFERNE@'LAβ(A¬→_~∀$∩∩g∀Aa↓∃λ∧∧L2λ¬r*I⊂∧g RAAD
λCATID:∪≥%_∩∩wI⊂tAπ¬)π⊂A% ⊗:$J~&∞
"&.d
D8Q!⊂HK9IβB∧iH∀=~ →d$L8~DL@Qh∀jXU⊗4λT⊂πc⊂⊃) fbCE CATSPC==0λ`@β↓A@%Z↓↓↓α≥α⊗∞_→B¬¬)x4-≥9→d:∧βQ1(D⊂Q(λIsQ(¬ u∩⊃*$⊂R5
4⊂∧ k⊃FA∧DB]P⊂⊂λ&b`g∩dεG)
CATLIS=td``@@`∩v@@AεQI⊂RA∪LA!∂∪9)$AQ_
α¬∧b&NQ∧z→α∞
"≤Bλ¬⊂(zc"B(`j*kT≤¬0~bβ↓AAAα↓∪@4λλλ
YUr3HE4⊂SjH0q⊗λ!T!$
P S FUNCTIH∂8hP&∞ε$~ε UβVβ#β∧∧↓↔hλλ∧λp5⊂i¬0P4J)10
λ)$⊂(∪dg*"T⊂*'P
!cg)H#*g⊂⊂βATCH-PAGS)
CATALL==020000 ; CATCH-AHL: RH IS FUNCTIONMF DWLεAβ%≥&~∀∪
β)π∨4zz`b@```∩l@@@A→%∨~A
∨⊂⊗BLb⊗⊃α≤z∩¬1∧"5α∞b2→1∧r>AαMαJ>≡ph(4*d*AEUjq6⊗J∃"0⊂K5%"RR$ D,TzIα∧|d
4|lT t2∧Z*%≤-D
¬-≤∧↓PT\X Dm≤Z7SjKE`(ZTTueV-C"A⊃+Tq(T⊃0TjJβ"C!*24U @≥∧X∧Ne'gεV i'P∂←⊂ ⊂DL DOC OF MOST RECENT USER INT FRAME
↓ .SEE UIJT0
λ
∃%M1)∧t$QαR∩$p∞B≡LrR⊗I¬"0~¬(X∀"¬9→e$
∧
D∀HUB∧LhHUD,Dλ%J∧⊃Q hU iT[!⊗HJj8T*¬λID`)2b.j85Q(
Jβ"C!(pqH↔B""%@)bbP⊃ab!!βE*g!∪ →P~ .SEE UNBIND ;SAVE TT
SIXEK28 0 ,¬'
↓'∪1≠¬⊗~∀~)'β-≠¬$t∩∩$Y'
↓'+' Dh∩w≥∃ ≤OPA¬
A%_A'∂LXA¬+PA/⊃≡↓πβ%L}~∃∂
λ]∧t$∩∩]'∃
A∂π⊃¬∧~∃¬+≥¬λh∩∩α]M
AβU≥¬∪≥⊂∩w'βY&Aλ↓
∨$A¬+≥¬∪9λ~*-BA:MPH$%:≤*∃α⊗E%nJ,j⊗6
-∩MαNL:9α>2αεJ≤hRεRεprMh$HI2N⊗*αεRεpInNε4*MαNL::Mα|1αεJ=→↓rabbex4U*:6Rm↓h$$KZV:εl)αR⊗m4*~¬"⊗%HHH%nBα;∀j¬x→e%~
I∧M~
Ir∧∀T
4LTλ∃~¬λ9e"
∀⊃PTLiJCKP⊃⊃∩`*q1( _S∪p*A.qλ
85Q1∧ ⊃4Q!QQ03
πB,α!↔t⊃∪∧
⊃r3JH4H∃* sH⊃)j∀V(
Ih⊃4*X3β"A⊃ +ThX(⊃4*X3β"AQQpq¬hnB"!∃Tq1$λpq⊂H!"P5λ→KVεA⊃"+ThX(⊂5λ→B.uλY4∪tH~V(⊗∧
P3∃(Q"QuhHsU∞A⊗β"C!(pqHGB""%Jq1(λxq⊂PAQP5⊂)eV.B!⊃+Tq(T⊂5⊂)a.u⊃)Z∪tP*+(⊗(
h3∃1!QQuq zQnB&↓.stI_r3H xH∪⊂*
∩1R(85∩3id(⊃jx∀Ql$ 4h⊃jx∪tQeV#"C!(uq∀Hv.B,↓Q@↓Gq6∀ F(⊃phEU2λλ u∀T∧λ5L⊂DλS⊂5ε∀∪13*d∃04 zh⊃phEURλ J∪QHλ~3PTDλ∪∃⊂d
R3QDλ4⊃SHv(∃⊂()∃, λ~3PQD 3S6ε∧⊃tQ*:lλ⊃j(4tl∧λqP2)D⊂tu(8(⊂P(:⊗1Hλ)ss∩$
∪t⊂*:λ∀∪
Zlλ∀ J4lh
∃4mD
∪∃4g∧∀S ~λ)kg PeP)"⊂%aP)⊃')k⊂∀"")kλ)"$a∀P)"$S!d⊂!Si!(⊂∪eg!dβEεE"V(&~]αX∧D]U"fh⊂⊃'i⊂"V(&'b⊃FEεE⊃ab↔*R≥∧DDK)bbP⊃ab!!βE!%j∀(≥∧DBW)bbH! ej∀ abFB"k_!∞∧DDW∀bbP"U fεE⊃& j_N∧DDW∀bbP#∪ j)dV"FE&Qfk≥∧L∧DW)QbP&bSa"aεBεE*`T'iU∧BDYVXO←⊂*kT$j"Vλ∨≡X⊂∂←⊂"`T("g"λ↔ aaQiiP(∪iFE#Pb↔#$∞∧DDW∀bbP#Pb!!εB&('#∞∧DD]KXP&bPg)P'∪j⊂ P∪'g#P∀' fbH∀#$j∀P g PNBUF)
α .SEE RINTERN
AUNBR8∧∩`∩$p∞Nε4*MαI∧26Iα
*:
&t 4*∩e"¬h%H%m
∧z→αRLj⊗Mα$*2εR*z∩,J⊂¬≤DzYD"¬(YT⎇Q(∩*H3#"A⊃ ∧W)QbP""S(BEεB)$g#∞α αAPFNG1:
TABLU1: 0 ∀~)β+≥¬_pλ$%]~εJ⊗α4∧2∧iz"∧
Yh$L@Qβ"I_Q(⊂I_qP
fK-FE&S&l⊂≥αDYQ&Rdε" IL¬')%Uβ!β∨8~∃∂%∃'&`@PI@%M∀:Jεε$*JA ∧J0∃≥J*T
∧→y`hUβ""'bg"∪c⊂$c⊃P!$cS*fFE∩c'⊂!∩cc"fK-FE#T iiX∞∧X∧]HαMINλAβ≥λ ∂%βQ% D↓∪⊂~NαJ%,≥I→t`@ PqH→3∞B)*Tu⊂α 3DRAJSFER @∨≤αα~ε&e*J∀4T~N@,8W LU*:Bαp↔:E∀h8d-∩ yb¬≥X84,,AQ%hH↔8T`(α⊂'cλ$c'⊂αIGNUM
∀~)∪ ⊃⊂LJ6NQPI0∃≥H~E-~∧εαdλβ"R(iH∩5
5λ⊂v*8q∞∞AQPP0jK1H
∧L∧]`~ERO ON BIRST @→∨= A)⊃I_∞@,yλλ a`∀RACE.
λBOOLI:∪'∃)5∧A⊂Y)(∩m
>>d*ε 2 →e≥∀U0jI3s@⊂⊃'i⊂!∪dπDE
λλ
¬)=!β' π JK⊃⊃∪@91H&∀∃∩⊃)@⊂*'hd"c"S⊂ ij⊃i$ieH''j∀)$g*⊃b⊂$cλ+$g#∩d∧E
∩v↓∪&A∪9∪∪
α4∃∪
≤ααVN⊗d*NM⊃¬αJ&:e1h%md~VJJ,rQαB∀J2Qαd*Z,GeSλh* E-≠¬!∪H↔:EM∧T¬R¬i≠∧u,T u∩¬_iDl@U3#!! R1HT⊂R1ij3+⊗aQT∪∃*6nB0(Hλ⊃⊗∃*εE(∪*i[≥αc b D,TT ;FLOAT-POINT INSP %+
)∪∨≤αα~>I∧
J&R@∧∧<,hZ$
∧βtC!+ ∧D]QdεD OF AFE BIGNUM¬
λ ∃∪→_A+π∃→β'&0A⬬I'&t∩m↔∪≥λ↓_∞→αα:E,4dλD-≤~(T"∧h)tj¬λ∧R)@*_⊂~
λ ↓ ; - -xA∨
→dA⬬I →αα:E,4aQ HHα.`ε∧∂(∂∪βH
→2↓_
>→l
∀∃(Zb¬≥JXd0HαB"!↔h
`⊂∂←⊂!'U$⊂∀"∩ij$g⊃h¬ISHED BY TYOSTεR4Uα2VMβ∞A⊗α".gIK∪Gd∃r⊃*(αP ∀HERE AR@
A≤ααεJ≡_h ∃∀TC KQ)∀4rλ¬4hYα"`∪S, P@%A%π(t$p∞BJLrQ=4
∧
∀Yj2∧≤zYe%~¬ D,5EEE∀Ly
BHh*:t`(0rfA⊗α".jZq1⊂⊃'i⊂+S P!d⊃a`ING @∪≤ααNRε%*L4(LRJNQ¬~RεQλh ∀Li`¬-≤YHU≥~βλ∃→tqfDεα.sIZS03 K(∩Q*)h
H3∪∀d
⊗3h
K4⊃( xH⊂rλ~@εE∧BDX + =0≤A
⊃β$A%&A
∨HA
∪→∃&A>tbd4λHH%m↓h↓uyα≤BεIαM→α~>⊂∧¬%%∀ t`)⊗#"A⊃ ∧]P⊂≡P≡ @π⊃β$↓∪&A
=$A¬∨Q⊂A
∪1&Aβ9λA))d~∃% ↔εt∩@∩∩g≤
R,Dλ%∀02`⊂⊂βHARAAP $αaα>→∧*b&Q∧2J>5¬∩∩∞α
⊂4*J$rN@3!⊗HK8∧p*Hαb⊂'∃d¬BER (BEFLπ%
A⊃π&l
16>⊂j:>Q∧JMα∩,~&∩⊗ ¬⊂hU(HE≥NB,↓⊃,p `U ¬D VAH +
↓≠@F↓≠A %∂∪)&↓)≡A∀J≡"Q∧z→α∩,~& ,→D¬∧|→j@hU(I∀*nB,↓⊃,sU)X4R0d 0P4hT⊃∃4I→β#P)⊃`b$g⊃FE$c∪⊂*abS"iiVαi")'Sh≥∧Xα]i'fPg(⊂⊗H i"P∀'f`gλ'*fbT f)P∪e←FE∀"$g!R≥∧X∧B]igjT!bP'Q⊂!d T ab"T)P#'T⊂)"`Qε@
CORBP* 0 ;BYTE-POIH
)HA
∨$↓%ββλαjN>Vα(4*¬yλTb¬9zU∀≤T ∃~∧)ItZ x`hP⊃↔4
≤9→∩∧⎇$
4MD)~B¬≥JXd2∧→`λλ9tQ#!)2sPiπB,α'dg)j∀*ab$Re`∞ FMR MAKNAMTO GET NEXT BYTE
;PNBP PNBUF JCLBF ATMBF REMFL VEDBL0 DVS1 DVS2 DVSL DD1 DD2 DD3 D@D NORMF QHAT @¬≥≠'XA
βπ_A
βπ⊂Aβ∂ (A3β≥ ¬(AQ'β-
↓ 'β-∀A%'βY
A
'¬-
A≥Iλba
0A→¬π1¬→α-*6!α-∩J>I∧*J
∩2αVV>4qαVV%~YαVαZE%≥d
U-∃:d¬-,→JCJ¬X¬4
:H⊂
jSa%c@∪*jikλ&)ciCEαE≥N]P"$⊃P(' SbP!*Q!"a IS USED FOR VARIH∂+~αε*⊃¬~V*∩∃IαBVα*∧m≤Z5`hSαh
MH*$"P∀)$f`T,P ⊂URPOSE IS AACUMULATING P@%%_
Qαt
6⊗M∧z→αε$z6MaQ"`*q1(
)3Q⊃*)A"Ng]P$jλ$iP S)`∂ USED FMR @-¬→% ∧∧tD
5-≥λYd"¬8¬∀I→β#iVβE↔!bQP+ f∀ jεE)bbP∀ji`"S εE≥Nβ; JCL, NAMESDRIH
∂&↓∨A
%→&@!'!
∪β→→dA
∨$↓λd`A≥)∃
≤↓∃'3&$X~∧]M
@@4∩R:LhQ`≠[4λU∃∀z ∧l-:8∀<*λ:E∀Lhp¬¬∀x8U≥≤→hr`hαKThX(⊃4J)3rC!πnn`λ→Qλ∀i@P ∂N8@A
∨HA'>l)αBVα*∧m≤X4¬$Dα4hλ*1QQ*$⊃uQ*)⊂4∀d
⊂⊃(λ$cg*SP*"fT)P∞
20% MAYBE LP@≥¬Up∃Uβ&∪@ ¬→λ ∧f`lP ¬ LPL¬¬+tztj@h (E
IFN BIGNUM,[
REIFL: 0 ;REIAINDER FLAG
VATBL0: 0 ;DIVISION STUFF
DVS1:↓0
DVS2: 0
DVSL: 0
DD10∀∩@~∃ λHp∩`~) fT$`~¬ ⊃_t∩`4∃≥∨%5t∩`4⊃#⊃βPpλ%@hRα:6≥1i↓↓h*~ε≤1`%@hR~ε∞#P%@4T
≡∩
#P%@4UJε≡∩∃!`⊂K↓Q%%≤~hS@K↓Q$%≤~hS@K↓Q%∃≤~hSPK↓Q$5≤~hS@K↓Q$e∀F⊗∧4c!⊗K\izB¬∀X_DLTt ∀b∧(~4*β⊗¬b∧4H_phUQ⊃∪L,hD∧`8H∩1ID⊂R1ij3#"I_Qh∩H9α!#∃L~⊗W⊗αa&'aRP
CL@@VdPZT∩w5+'(A!β%
A¬(A ¬' @dβ!α↑∩_h*2*≤bα3Tπ&Ee2Psλ ε¬
λ
¬+U∨⊂t∩$∩∩g↔∃ A !∪&A+U~A'%*~ α≤z2R&<J6@-4
4z¬Iλ∃"∧x4∧d
4
∀T ∃"pQ(U∃∀z' KQ!∀U∃:@¬-,yαhTX($$3αB"!⊃.p gSbP! S 'f@ TEMP FOR UUK HANDDER
UUOFN: 0 ;POINTER TO FUNCTIH∂9∧"VJ&t9αR"*αVV>@ε∩∧dyzhUZZE≥∪!⊗hUZZE%≥dεB&↓α@
UURSV 4$`⊂∀*ZT@∃∞.A⊃+Tq(T∃0
`S*∧]b∪bigβU⊂!gg⊃&$ajλ+dj$λ*j`⊂SVλ
*-*BNYβ!∪@ ¬*jSβBKG~ 0 8π∪A%_ ↓*∃~⊗@" Yt$+λ∀
Zλ⊂u
XQH∪i@⊂("&βE&*jThε5 :h\[+=⊂∩α∩m' ∩V41αRα
!α:⊗,"MαN
2& 4tλd`:H⊂
$⊃P*`∃O HANDLAR
LSWS==:.-SUS ;TOTAL LENGTH OF SU@!∃$[/%%)β¬→∀A')+→∩(LRJNQ¬*V
.8ε⊂hPβ"Ng]P∃∃
∃∃∃∃
⊂)`∀UFB @'¬)⊗⊃¬*B>→¬*N⊗I∧J0∃$X*%-¬DλTd∀h∩λZQ(
E%JJJE%@εEβ≥c#)H εF@0αα~~1∧2~eα42¬αhhb∧∀hε,D T⊃QJ4⊂π ⊂FFX NPFBL NP@
K⊃αεB42Mα⊗αλd5BλZ∧4∀DλU∧QPYλ ¬F@-
&A:52εAα42P∀~λZE (qS∀j↓ ¬εE∀h¬BTTL F@%∃
A'$zJε≡*α2&NαJ2b∧→hB∧ph⊂)@ ∧ ALLOC PARAMET@%&4⊂λ (αN`≥Nβ ∀T(TTTT(TTA
I
A≥"0≥∀_xR∧dα4u
4λ¬∃∃
∃∃∃∃
∃
λ∧vv@X∧¬$DX∧q$λ4Q(
Zq1⊂⊂αY @)!
A-βI∪⊂≡Vα4∧9β`∞@'∃%&A$yαε2dz≤
HT∧83∪∀d qC"G]]P*∩ ¬ @-¬%∪∨+LA~J,)αNR⎇∩ε≡∃¬~Bε∞-→0∩α hU (αi⊂(∃h∧ ONE @∨↓)⊃≤)α&8hQ`≠[4λ∩∧l~)4∀HT∧~¬λUD≤X∧∃∧
p5∩ →β⊂ @ PROPERLY PROTECT@λA
_∞ 58Z"Jλβ"C!≥]U@ @πβ+$J0≤@H(∪*Zuλ∀
(αibi∃α@
A∀*2εRM2∃αz(D-∀→hr∧|aQ#@7nb"(hβ)V#⊃,⊂FFL,FFD,@
ε1
¬ )d2~ 242e $hiαdQP ⊗⊃ εQ2
λ.SEE @∂ε∩$∩w∂βI
ε≡*α≤@pε&"PβP ∂$4⊂λ (αB1HjnB,↓⊃ .s ~uλ⊃J(αbP)U'i cQP ISTλ
(L2~ahK$$¬\2&bh¬3*4λ∧ g⊃⊂(' SbP g⊃⊂!$cS*fP+SβRDS)
∪
→_tα`$∩∩`.4b0≤@U3 ⊂∃βH∂% LA→β'P~∃ ∧α &~~ π M≤X¬⊗A⊃ ∧]b∪h¬BLE-PRECIS@∪∨8A¬→∨9+⊂⊗LhR≥BA_d4≠!~4-⊗B"!↔pss* ⊃0 L¬+≠¬∃%&~∃⊃0@⊂&42`∪Pα4q*K@∧DDNβDGUBL@
[↓Iπ&≤J0≤@H⊂siZ⊂ε"lλ∀"*h∪ ¬P⊂R4⊂
≥ J~4'!∪Hα".h$cg*SP λEAD@%&4⊂λ&~5I`⊂K↓⊃⊂K]8ε3('` (PNAME-P 3!∀Aβ)∨4RA",
∩-*1P@)⊂π∩∧Q εH 4↓%⊗B,
Qα i4d|u0%D∀q5∧XHUL¬↔&~(∪
αβP%@$HI`≥≤~*2αD~*$
Jλ∧∪i→β*"i∀T@
NF@`5βP∞E@⊗c#)BD@ ;L¬+≠¬∃$A>2α~2λj$`8Tc"A_QPY∞α S@2Iβ⊂∩HH%nNβ→T)pε⊂!∪'aeiH∀"`_PLICIT RE@)U%≤A-~⊗⊃⊃Q#@7nh∀i_pπ⊂!∩h∧ IN @
Zαα6⊗εu→α-α⊃3*
λ⊃TI@d¬ (β↓6@<βtQ∧ 23R)ZαfP)⊃a`AIMED.
λ∧∩]≤*∃α≡≥~P≤C⊃Q J@Tq1$λ1pl*⊃ ¬∧W∀bbP#PβE0C5
∩]M
A∂
aε@Hh ⊂Jh∧q(T⊂∧ ∃NK
∀~(p
mm¬αVJ∃∧2J,T
5$⎇(_t*∧9zT`*⊃0 )H∀ ∞ON-P@∨'%)∪-
0A%→¬)∪-
↓)≡AA
→5∧∩⊗ $zp
!QL¬P≠; MU@'PA!%M%-
↓%⊗2
"&@4T u∀⊃0 $Sα@∞A$BJ>V<Aα:B42eHQ!∀`*⊃QTg∧X∧DB]`ISTλ
(LrB4hε≥αX∧DDNβFIXNUH
4PJ0∃∧hiC@!,α"!↔qS∪i@*fFE⊃!∩∧g∀ εFDh∩`∩∩$p∞∩≡,∩2(β"Pk∧α∧g(⊃ εC 4$`∩$KZ≤@pε`⊂LEX
DX λ∪≥A
~IPI@$⊃↔4%- HU@HαPQdA3Pλ#⊃!_
0 ∩w ∪∂:,h4(⊃⊗HH↔9d`4∀⊂
i⊃P)`→M@¬∨ &4⊂
"dA∀`*⊃QRπ⊂)"h⊃`j⊂$∪αK@→∨≤VbX@@∩w"αYd]_Q!⊂K⊃⊃∪@9β'P(∃i"P)Pi)FE∩c'⊂↔dεPFFS(≥
_XA/βI_ αnuα~ 5¬"ε
2*αP≥∀yhr∧dYhu$EQQ L@T⊃QK⊗L¬∧XαD@]iVd¬BOL BLOCKS
λ∧vvVααε∩∩∀*NMα|1α↑z(B∧)zd*∧8¬4J(αg ∀↓!+%
↓'∂≠∃_
Qα4zIα⊗~!αNαλ∀8 εE≥Nβ; MUSPλA¬∩⊗N⊗α*d*¬(YD
⊂∧k"H'i""T$g#@ THROUGH EPF@
2d4⊂λ&⊗αλd5≠!⊗HHα.s ~uβ"A_4⊃QKπ@,α!⊃,¬c$V'*fFBα E@!→
_t∩@∩∩αw→→∨:,h4*∩⊂∧@L-λhd#P⊗↓⊂HKαq∪jXS⊃#!!l∩∧Qh##!N∧X∧DB]agfT&"dεBα@X$ EPFFZ8 0 ;DUPLEP⊂~)↓≥⊂L*B4h# K⊃⊃∪@8R1sJY!"B!⊗α""'g'P(∃i"P)Vda'f∀FE$' ∧b`#⊃$≥⊂)⊃h"`jλ$#%f∪βG+!0@`∩w!+∃↔&4⊂∩∩`$∩∩`.tyαBVα(R¬≤~*0hT_ibαrXZ∧4∃5Yd4∩D
t
∀d4-∧heR¬$_)D*¬z)t`(βP&"S πTH]
∪A
~E⊃P%@$HI`≥≥→X$l@λ⊂S @a`@&4⊂⊂∀!_T5487 L∃h:4:\hh5≤:*8T=≤≠!∪@83Q⊂∪βF CURRENT VC REG@∪∨8@Q
Y∞M∞t2P∀≥4π3λ~uλ∃*81λ∃HT@
L¬~Z≥↓`⊂Lhε∃HicWiQiR`#BDXNUMBE@$αα0≤2λ[¬%∀∀
d4∀⊂1hZc"B(hβ+!]αa# ⊗CS ∩∩m(
ε2,)α∞⊗daα5(XTdM8@λ¬λαhλ@!1∪π& αJεR-∩0∩¬X∧q(E εE∧Qh∧VCFLSP 4`∩]π∃
A∂π5β%⊗∩m ~⊗α *Ipπe@-T¬β→+∀[π→0[
%∨4[⊂∩ε≥!6NB~∃ -↓Q c\x9T\@λ⊂λ)∪βH &~α6~~α4∧l4hε⊂∪c#&⊂∪c# → MFFA↓_
4h∧h @ εF@0αα0∀QSλ @ εF@2↓_
4h⊂λλxur∪dλβa`↔HLεbA∂
(∞"v λλxur∪f4⊃pp(i`k⊂⊃a`∞AST∧A∂π@A≡∞4bAα≡≤2bAα<~NAααλ∀`)0pλ⊂⊃a`
@%-( α≡≥"& *λx5$k∀λt:αj`∪V IRMVF GCRMPAβI!≡∞αAP@!αE≥@;8εA∂π5↔⊂⊃αM→αεJ∀
0∀q1⊂∪$ebP⊂P( ∩OP@%)dA→&≥!`∩¬IλRα∃λ∧Sjλαi*,H' fbTQ
;8εvAβI
A'βI&P⊃αLqα$X:$,
9→d:∧βtQλZH∪qD
⊂πidU$gg IHAβI%β %¬~Bε∞*`4)@4ε`≥H g" THE "PROPERTY VAH +L@ αε∀)α4≠ e,@4h⊃λYβ'j$Sα@∞A$B∃αHYd=⊂⊂ FBα;; 6αα0≤2λ¬∩λT⊂4TH≠4k@⊂∃ibb @¬2A∂XA%Q' @1∧:J,H~"bααP4J(4∧V⊂⊂dεD OTHE@%L~∀`-β0∞d
⊂πP%Qbh⊂*∀ ae@ LπAβI%β &~qα:>$)`∩¬IλR∧Li~DLD t(4TP+∀⊂3Q↓QL¬P≠lA%β⊃)β¬→∀Aβ%
↓_
>Q∧J0∩∧x9T\@λ⊂ dSαCE TH@ %∧
J* iu"∧α3@⊂⊂αPS.
λ¬≡∞lZ1h→_t9αefεBαλ
)YY`~¬λ∧SiI4h∩*4⊂3@⊂⊂d∧@∪'PA+'⊂A)=¬αJ>R,~Qαiybl
IyTL~λ∧Q(_λεf`PβRO
8εvvA→+⊂~∞αI∀`9β)P#∀'bP!⊃dg#@ GC'ED,∧Aβ
⊂Aβ)∃~A>p∧¬$DQQ#@7nh⊂)I4p
IS OF T@⊃
↓
∨%~α↓↓"~αYb¬∀J@λ¬@⊂ ∞@+4R@A<B⊗J∃β!P@'nh
DQ*g⊂$TP*$"H εUNCTION↓)≡A¬∀A!%∨Qπ)⊂~∀`-β0∞a~Q∃⊂∩iP ∀HE SAR OF TH@
A∀*ε∩R∩2*λ9t`(q0 '⊃bεE≥Nβ; NUM @∪&↓αA2M~Aαh¬3( ¬R (GPβ%¬_
R⊗,!α:2M~Aα→jTjHβ"Ng]DD↑⊂iaddH!`λAR VALUE> FOR READ-MACRO FUL¬π)∪=_λ (αN`≥Nβ P@%=→∪&A%&A+∧"ε@$X@λλ,P ∪SGCP@%<Aβ≥λααNN≡≥∩⊗ "βC"J
Ss∩*7@∧g$S∧¬∀~(p
mm¬2εJ&⎇*MαJr∩>T
∧
∀→XU$4ThλitH⊃h~PP1hT⊂ss Hαa`∀OR.¬
;8εvA≠U' ⊃αα
$-≤X∧UHT∀Q3λ~α VE ORDER WITHIN GROU@!LXλ (αC"G]]P#PβH∪≤ααBεJj⊗@$X∧TdλSt@λX0r⊂∀h abH∀#&'SαUM IF@A→ A≥∨≤αj`∀
)u⊂hRh8T*∧x8S∧≠↓Q L@1QTg↓323HhTb"!↔pε$iU∧A∧fQ εX 4%≠∪≥
→0∩α∩m
∪ "u*44λLj~
1PJ6&:420$∧KZ~2>u*44(H" LXhd#Pα32)@ εFD 0↔ =+¬→
4⊂
∞a J6~~≠P&&&t2~$HI`≤≤βs4 H4∧εE⊃,∩∧fQ εZ: MINFFX ↓ ;DUPLEX ∃¬≤H∪≠
→t&lJ0∀QPB!⊃,¬a$QdεUM
λ∧∪≠
→2t&lJ0∀QPDBDX@'e≠¬∨_4⊂
"dA∀l4i∞D
Q0λ"Ph∧ HNKH >8¬3
@λ∪2)@ εFH 8π⊃+≥-&~∀∪5
~¬PJ6&:42∧$⊃↔5≤
*1P@)1S@⊂α-MFFS)NFF, WARL∧A7≠→ZA$
α2∃¬:J>~8∧∧dhzDE@ εEεBα;;+↓→β≥∂Q⊂A>2α~J⊗,b&NR~↓r
⊗4zJ*EH∀5$X ∂AQKP bQP#ah
!
L¬~~α7 K⊃⊃∪@9α ST
∪≥→
0t∩@∩∩∩w→∪1:αYPhPα3QHi∞B,↓⊃".qIIqU3!QQ⊂@∩αdεFFD8 0 ;DOUBLE
@π0H∪9
¬ε@PI@$$KZ∞.6∧b⊗`4T"a⊂&t2~iHK$$%\"VB∩-@4*
8 &*~4⊃h%@HH%n
L::V4hP&*~5Ih%@HH%nNβ→T∀|AQ$DrA→d44π$¬∀-λX∃"∧ i4d|u2∩bβ↓↔4E,i:0hP→hd4!⊗HH↔:4
∃1Q$L4d¬blthj2lTheB¬<~)b¬\hhbj¬H_$d*λ¬tIyβ#P&⊃e#j$↔FEεE∩c'⊂*Tbf"iTU$j)K-FE#Pi`']αX∧D]U f*bH'c⊂∀∀j j*TP#akR'TFEαDD]XKα1 =≡ DASPLAQ MESSAGE DURIH
∞A≥ε~∀∩$∩vb\β⊃↓uy∧~2>
∀*I↓:<B=Iα<JR!α<→αNR
"&NRL~L4*<~P≤Dv↔ K⊃↔5≤
hXB¬4→JT-~ xb¬< uTdLhT¬4
)_∀∀dZ4∧%-)→d:∧x1PT<:y∧{∪!⊗hTx:tD{7!∪H+Q⊂K\_ib¬-8YD-≥5)∃%_Q!PT<8_5≤
g!∀)∪prd P0te6"".iX4Rq(D⊂0td
p5Q(D∩⊃4HQ"QpiH4uNA_S∪pi4L'IP0te6/B"'~3S0*)q1λ_th∀h~Q1λ λ4Q#!(pt∂'λβa`aT`k∃hβE#ac∪(≡]#P`aa`U∃c&(βE#ac⊗(≡U#P`a`∪AV+FHP ;TEST GCF;ZFFS ZFFX ZFFL ZFFY ZFFA SFSSIP∀AM
1'∪hA'
→M∪4A≥~fN≠$¬≥≤~9∃@$⊂πc)Tdh
OFXSIZ OFLSIZ OSYSAZ Lπ'β'%0 α≡5~N&@$λt5E9≠"∧qS∀i≠H⊃tk~p∧m⊂⊃i`idVα
∀~(p
mm¬αεJεl*R-*4¬∀HZd@Uλ∃ @P
EMLπ% %∧
22x8∃$Ly`AQL¬P≠lA≠+≥!αBJ-~⊗JZ*αJε2
"&@4T u∀⊃0 $Sα@∞A∨_A≠∨'PA∨AQ⊃∪&AM)+
8~∀4SZVN⊗ ∧∧+(⊃pd
⊂πP$∪d∧D EXACD↓∞ε2≥*2εR,!α&:αHT=∀→D∧<≤β23J1"B6Hhβ)P~ 0 ∩∩m→∪' h ⊂MαQQKπ@,α!⊃,¬c$V'*fFBα P∃
→_tα`$∩∩`.4b0≤@U3#!λα!∩∧V εFDh∩`∩∩$p∞∩>,∩2∧Q(5B≠(d4≠!⊗HH↔84`9αh&"V∧@
DX$ P∃
→0 h¬H$%@8JU∧dY↓P@(Qiα+λβ#!
αX∧DDNβBIGNUM~∀%0
4hε.A⊗α""'ilfa∪dεE$∪⊂∧ ZFFH: REPEAT H@≥↔1_∞≥-λ¬Bβ↔9¬,t1Q MThh∪@K↓⊃⊂K]8~%_h)_dbαβK6HhTk3HhKλ∃h~SH⊗kλβ#⊗@ TABLE WRONG @→9∂ ∩"βQP@@ ¬↔)QbP ∪SPCSIZE 0↔≤Jb* xb∧00r∧
uq1*λ0S⊃$
t⊂0hUβ⊂⊂*Tbb⊂*∪β CAL@π ⊗2
"∃αB-∩≤,h¬⊂(x(⊂ "PβH β∪5λ@8hP&N~≥~&i@!→dL58∧qe*q1ti≠@∧D]S$i`∀
λ SFXSIZ: L¬∪
E~≥*N,:N&HHI`≤4≠ e,hβ"B*8S∀r+≥ NIFLSG)'∂'%0λ$%\22>jYPhTH ↓~q⊂Ti≠L¬∧XαDD]b∪h¬BLE
C@0α &N∞β
4MSαB,↓⊃".pi@d¬PLEX
∃ `H∪' a'∪4t$`∩α∩m +!→∃0~*∀9⊂&N∀rN&iPJ0∀∀j8rU≤Xz4MPα".h$cg*SFA∧iTlidm∞∧g)lSicU)QcidmαD]`∪YMBOL
λ¬⊃9 JN"~≤Jaiαα(U∧05λ Rs∪hul+λε↓,r∃)@%iFEαii`iRm_
NSARSG*SEGSIZ∩∩m'β%&4⊂
&~p↓0∩m8j5≤M%Yd42D
t
∀d5~JX9∃@$∃⊂0IH(⊂i∪dεG LEH
∂)!:~∧~(s'β5∃&A>2αNBε≤*Mα
,20≥∀T
5$
*@λ @c⊂#aKα COPIED↓
%∨~ααN~N≤J`∩∧Z@λλ→λπ⊂ U⊂)`∀ART OF CC.
λ OFSSIZ: 0 ↓ ;LISD
λ OFXSIZ: 0 ↓ ;FIP⊃≥U~~∧∪=
→'∪hp∩`∩$∩w
→=→+~~) ∧H∪= ¬'∪hp∩`∩$∩w ∨U¬→
~)∞a⊂Lz≥E9≠#@K↓⊃⊂K\9yU∧dY↓P@(⊗ α)X⊗∀r+≥X∧BDXDUPLEH
BG$ Lπ¬≥'%0 h%H$%@8)∀<UYQPPLz;∃≤M'!∪H⊃↔5≥LX)t`h) b Ly e≤M'$¬∀-λX∃"∧ i4d|u0%Dα.i
3RtaQ@∧giPidm≥αX∧DDNβSARS
IFN .-OFSSIZ-NBF, Tπβ%≤↓0∞-∃m~&iααH∀∀dT
u∀|hp∧d,hzDEhβ"C!πtr6HT⊃StDλ00r∧
t⊂0hT⊂Q3 ZβP#d∩a`λ TLεA∂%¬∧A
\A'∂5⊂~R~α~εN$bd4 u~⊗∃αα8t
≤≠(PKZ¬ ∩`(αW⊂+Rh∧@⊃∨U(A ∨%_
:λ⊂¬ 9⊂πf"H#`i!⊂cbP!Sd∧LECTION↓
∪%'PR~∧∪≥
''∪hp∪≠βa
¬&∩$∩w2M~P$!_t5E9≠#@LX≠∧4∃↓⊃⊂K\i≠∧e,QQ L<iJ4MSαB3(≠⊃QS↓⊃ ∧]c∪'c*fCE"!$ GDBSIZ0∀∪5β1
⊂∩∩αw⊃∨ ⊗
d(4*∞β ↓_pr∀i≠L¬∧fPl##!BD@]aSd¬PLEX
∃ `H∪∂ a'∪4t%≠β "42`$∧KZ∩VBd*`4((r Lx)e≤M'!∀l
λhdH⊃↔4)1sU)Q"B1j;4r6G↓306λhV""!↔tpfP'fεE∩'∩∧cR')dm∞⊂)"h⊃`j⊂$∪%`OG+1, MAXFFH ;@@+9↔&~∀%∂'β'%4tβ≠¬1~~λH$%Nα8∃∃_Q)∀4r¬aT<589∃@%3QQED∃p4I@⊂-cFKi`m⊂∃ a&"H+i'g⊃P ENGPH@:4⊂_w
πM∂⊃εA→1'∂→,A¬→'≥→⊗A≥JN≡2X∧¬≤
8yDZ¬4∧Thy⊂h⊂JJqs∩d 30 cS%P )∀cb%@ @¬)¬β= αX→∀`(R5⊂IJλ⊃pg↔λ⊃pg↔(⊂λ#∀i`m⊂∀ εP⊃≤J`∩¬λiE≤MαH∀
6Tr6AQ@εE≥Nβ; @%=_∞@%4 t2¬IλR∧≤λ→∀`*h∪∩)@%` NG LAKE PAGES @∪≤ααR"∃∧:εJ
:∃α∞|b2ε∞αIu∩Q'3@7h⊂q(y13U∧
⊂0SλTλ∧#aTj∀W FILLED IN AT IL¬∪(AQ∪⊂⊗∃ph &~α:4<D4εB&↓ ".iI4qβ!↓1P)Qf%U∧L∧@D]Q$hλNUM
α FLSGLK8 0 ;FLOLUM
DB$ D@SGLK8 0 ;DOUBLE
@π0H∪
1'∂→,p∩`∩$∩wπ∨5!→⊂4⊂
αa J∩bN<b-h¬H$%@8JU∧dY↓PD∀tA∀∧u8yD[P⊗↓⊂HKαpR(yβ*fFB∧idiQd%P~ 0 ↓ ;SYMBOL ∃⊃8H∪⊃≥M∂⊃⊗@RαJεB,
Qα i4d|u0%Dα.i
3RtaQ@∧i`Tcf%@: 0 8π'β%L~∃∪
8@\[
M'∂→⊗αj24eD¬ 84S@⊂⊗β(
['≥→⊗A$
α2∃¬:J>:8∧∧dhzDE@ εE∧TY)cf∩] 0 8π ∩ ~2∧mX∧u∧λSs∪ @hπ @)!≠'
A¬¬∨-
∧@Q'Ljα>⊃∧∩2>∞]→$4λhR
RN<b-h⊗↓∪@9⊂3RhXλ∪∩*:λ∪qDλR5λλaeTFE$fTcf%@: 0 ;LIJKED LAST OF UNALLOAATED IMPURA @'∃∂≠≥Q&@A∪9∪(Aπ∃)&A+@R~∃!I'∂→⊗βP%@%\b&:.,!α2&≥!α>→¬*:ε2dzεεR,!αBVα(R¬≤XyT,@U∀c!ε, λ
:T∀S 7B,α'i`k"Q⊂(!)Qf%P+R ¬N HISEGGETS PURIFIED
P@∞HA1⊃'∂→,t∩`∩m→∪≥↔∃λA2M~Qα≡2α
2>≤ZMα~⎇⊃α2!∧Bε∞hP4(∀T∩R
ε|⊃h$
∧9⊂%5drα&R≤9*N⊗=~&i>∃"αN≠'b\t)~DαbH(d*⊂TwgF+4q(y∪q`∨βE(#BBVZ'!∩h)c@*SEGSIX/BTBSIZ>+NBITB,, .SEE IL10S5
MAIL¬¬∪) →(t∪
¬)¬LZb∩w∃→⊃α"∩J⊗α:2∧4z$∧∧eD t2∧X→∀`$⊂R5∧λS∪pi4⊂4Q(⊃"Qpg↔∞B,↓↔tP3HIs(∃λYαh⊂#∪i⊂#aCE#a\N]∧X∧NβRANDOIER↓)≠ ↓
∨$A≥ε~∀~(~∀]'∃
A'¬*JN&T(%nNMR∃αxd¬¬-(T∧5∀XT¬≥$z(∀<*λ~$,
4¬R¬-8XB∧l→→deJλ+∩¬≥H~E-~AQ"u≤XT∧d%
~∪⊂K4λ%-"λ→E≤z
(∀t$yYEJ¬X∧q(D⊂V(λH0k,&∧⊃P4iIp1λ →U∪h 4q1aQ@4⊃J:r6NA→T⊃Tj8jTq(zr6B!↔s∩4jA"B4λk∀r6G!3T⊃K
qjThXtr6A⊃.qR+ U3#!!4⊃S
96NB)J⊃S∀huTq1j96B"'8S∪sJY#"Qλ$α4⊃λ*p∧m≥αX∧DDN`dg∪U⊂''P∩e$j$Pf⊂(*T"P"'Ua&"iK⊂)gg∪,PFE⊂l∩∧h⊂l)dm∞∧X∧DB]`dg j⊂''H$g$j∩`f⊂(∃i"P!Sd¬PLICES, MAMA!
DX$ PDXSIZ2 0 ;AIN'T LO INIT@∪β0A!+∀)α∩Vα DL≤Z5B∧$_HEJλQ($: ~λ$u≤α6NA⊗α""'`dg∪U⊂''P∩e$j$Pf⊂(*T"P!$Qg*fiK⊂! a⊗PFE∧L∧DDDN`dg∪U⊂'"k⊃i⊂''H(*`∩E SYMBOLS!
H@≤H%!⊃≥≤Jaiα∀*Bεε"α":.dz≥-Eb↓@%nE*2.MαBf.U∧:>RRλα
∃α\J∩∩εt9¬$4PI@$$HI`≤→`u"∧hZd-∩ ir¬¬X∧Q$
p4Td Q25 λαi⊂FB$c'⊂⊗h#)Tdm⊗g⊃#⊗⊂+Pi'⊂-T⊗VidVα TABLE @/I∨∃∞A1∃∂)!:~∀∪A&e'∪ht∪≥'de'∞UM∂'∪h∩∩w≥J6
>bαα2>≤ZL4(1n
¬~!α
¬~1ααLrb5αDJb5αl
b:Bhα"
B⎇∩≥αλ*∧,@Qλ∪Jλ⊂ε&⊂∪αPDLH PDLFL1 @!⊃→
_d↓1¬
ε↓1¬
@∧¬D∀iD¬D∀i∀¬D∀h⊂λ
⊃∪λλS∀λλT∀λ
t⊃∪∧T⊃∪∧QS∀∧QR∀∧Tt⊃ D⊂l@⊂⊃&!Y⊃,!Y∀aY⊂-∀aY⊂'PY⊂'c∪!Y⊂'Q,!Y∪iaYεB∧A≥]Nβ ∀T(TTTT(TTA⊃¬∪%"AAβ%β≠∃)%&↓⊃βπ↔∃λA¬2↓β→ ∨@TTT(TTTT(T~∀~)↓!'⊂h∩∩α∩$p∞
&t
Jeα¬∩>≥α≥αε∞∃∧B&≡hRB
∀K$$%\2&2HXB∧Ldλ%J∧→ID`8c"Tλtα/∂λYQ∪∩*:
p⊂(zr6K&↔IPλ QdieOXBEεB!(!f∞∧a!(∀icDDBD]a$SαARY PROG↓'!βπ∀A→∨.4⊂~¬∪→_A!β≥∪⊂~≥eX4*"Lrb5HK$%N"∩J⊗α:2∧|d D
≥D
tm∀D t2∧i R∧Dβs⊃!QTεDDNβEND↓_∞→αL20∩¬λ_tL@Qc"I_Q(∀λ_p∧g#K-FE$∩l
4$`∩∩w¬ ∩J-~Mαxd∧d
8@λ
@dπRD↓_∞→αdzP~¬8Xtl,jAPDl≠ eDk!⊗HKαr∩(y⊃0u∧
4p0IH(⊂gT ∧ OF NPM↓β¬∨-∀A→∂.ααN⊗≡l*0∃ Q)∧*⊂πi#N∧bg"∩$@ ;FIRST AVAILABLE WGRD OF HISEG↓
∨$A1_∞ε∩Lr≥α
LrεJ@∀
¬∀|z(∀m_Q)∧*⊃3Qπ↓21L%Kl∪ ⊂∩c→⊗-R$f'aJ↑≡"g⊃$ -HIH >~jNB∩DI.Bε=~&i5α∪b5∧_yU≤[eP+Q W"!↔q3Q∧ qH∩(hαP ⊂AGING
λ∧⊂∀'33@4∃∩⊃*8(⊂
+Sβ VALUES AR@
A-~⊗⊃α4zIᬬ
V&∞X¬T@Q1 ~U⊗(
λα NUH¬HAπ",~- 0β"KJ81(∀λI⊂π&eCE↔ ∪EE S@!∃∞
&t %nεt!α>RD*JL4TrB$β∪∞A⊗α".iIuh⊃)@ ∧ OF NUMBER @!⊃_Aβ%∃α~*uα∩2∧εB&↓ ∧]d∩c`λ EL¬⊃α|1α:Vl∩⊗IααλDb∧~(TλhαC"AQR1SD
⊂1r)@ π →64⊂
B∩d21E@!⊗HKαqSj$⊃S∃*9⊂∧g#H("&⊂∀ cbiH⊗P ∪EE E@%%_
&PhRB$β⊃Sε'@,α!↔qStD
4⊃⊂*I3Q`⊂∀h⊂⊗@ SEE ERINIT
P~∩$p∞⊗: ∧∧`8H∩1I@⊂( cRdεG
0⊗@YYαRα*α0∀4∧" FAW THINGS MUCT BE IL∧A)⊃%&A∂%⊃$
∀4∀]'∀A''∂
≠β KZ6ε@ →U,@(⊂ dVα@&A→_∞Iαα:D`:P1q$
t⊂0hZc"B+λQP ]αX∧D]S$ibεB∧h##⊗≥∧X∧B]c$l∪*fFEαl##&∞α 0 8π
→∨9+~4T"↓ ≠λd4β!⊗HKαq∪jXS⊃#!λv α+λβ#!]αX∧D]PdπE@!10~∃⊃0@∪1→
4`(K$%@8JU∧dXεβ!λQiα+λβ#!: 0 ;@¬∪∂≥U~~(MB~5↔!∪H↔:5L@0Ss↓QR∪@∩αl##$∞α REPEAT HL¬↔2|9-E1∧jεb~4@%nλ¬3I:c"B+λβ# @: 0 ;SARS
λ¬∪
≤α↓0∩mλhe~lhhbb¬x~$`$⊗v⊃He(⊂
P&"P+T'g#@ LENGTHX
4Ph"&~p∧¬∧y→d:E1Q#@7nh∃ λαP'"V*⊂#'Ui⊂ ∀HIH
∂&↓≠#'(ααα* →b¬$ ~2∧⎇(HU⊂H+
∧$c!→T
EλI@HK9X∃≥∧Z λ
λα PMSITILπ⊂~M¬"0~∧y~d(h+λdeβ!→T
DiJHK4
∧$bYIu≥≤_xR∧Lh¬⊃**U0λ*∀P jεB,# _P8∧∪≠βa
1 ~)1'! 0pλ&6
BNB∩`h!mmXαR"∃∧r⊗bQ∧26@-$
DDLhz2∧mX∧u∧λQ(∩)@⊂*$$TP ∂RDER~∃i!∩G!∀l
λ∧⊃ A .p(~α*`fλ("&⊂∀'idj∩dπ@≥ε↓
∨$A1_∞N→hphUαQS
π@∧f`V!&(∧B]` NITIALIX¬⊗⊃∧
Qα⊗α)∀`)5λ⊃J)s(⊗
λα ET AL.
P∃
DATE A GNE-SDOT OVERPOP IN SOME PLACES.
.SEE ERRPOP
ZSC2: SPDLORG ;SC2 WITH ZEBO LEFT HALF
~∀lp
mα$B∃αh[¬"∧izU∩¬I ∀dth∪*Zuλ⊂HT⊂∧g THAS MRDER
OC28∧∩`∩mβ¬&A1∪⊂⊗&%→α~>∩αB$β∀c!)qS⊂f'B,β!)qR⊂f'B,β!)tplG∧XεEβ≥jai∩'%P)Qg"$P∩a`f&∩P NTAR ENRC.GUNRRUN UNRTIM ULREAR LIPSAPA∪A''λb↓∪!'<!Iα&¬~∩ E∧JBN∩3⊃α&B≥α¬α~
4"∧~
5∩∧~
42∧Y ∃∧∧βλ∪ →β*("∪⊂ NTP@@_A¬β¬β'∀A∪≥$jε%αLrRBε⊂∧∧L@U⊂s 4⊂∧g*∃* P$S*('kλ$g"$S&P$g∃'(λM↓%⊗⊗LrQαJ,*2>A∧
BJNαjB¬∀XZ55" →e$IDα-∧~λ∃∩αX ∃ :Sh * 30∃D∧4∩2)Ic"C!
u0U
Iα4P)Hα#f@ T¬β%∪¬¬→&↓∪⊂→αdzP~∧9z$(hαC"G]P# !qt HCT#d @
KYYf↓IP∨I¬*V>I→dZπ=l↔πε≥lphPβ"U*:R∪Rg↓,α"'btr4→y⊂⊂⊂ or CALL iNstre@
iSO\hASfAβ##'M∧ βOC,≠'π⊃∧¬π.v5qP@*q3Q ↔@∧X∧B]bt`4her 0 h∂dA
β⊃1∧¬⊗w∨L.V∨&≥ycBπ<XLD≠<yd∞≠h⊂~\py∪yH4:w5CE$a`S&$]∧L∧D]bZz42iλ_⊂7`2 CALL instp¬`↔∂&K?9i∧CC3JβWO↔⊂;Eβ#.s,4(hQ`≠[4 ∩∧u14j4∃∩∩*4∀p
*Q ε NEED NOT BE @π⊂≡h∧r(Hαi"bλ)`ai⊃bεEεBα;;;↓'!βπ∀A~>⊂∧∧Dβλ⊂iλ3SQ)Jh⊂3HD⊂∧g#⊃i$gi∀P g"λ*ibf⊃iiP$S*)P S ∧ GC OVERFLOWS
MAY@@
A→%_
Rε⊂πSk∪¬0&¬RSpJ→3j`~J*ibf⊃iiUg⊃ ε
λ¬∪≥$
Ih¬H$%@9→d$
αλ∩)@*#P$SαTEBRUPT ARRAY (@
∪
<A#+U
R4PJ∀dx92∧dα3Uλ~@".hYβ*)$QiP'cλ!'i&H≡ g*λ⊃R⊗ T!P#'T⊂ NT BN>
λ ↓ 8εA%∪≥⊃(A⊃¬→-ε↓β%
AA%∨)
)βλA 2A∂ε4⊂⊂∀λhQ`≠[4λTt⎇Xyα∧4z ∧dβλ⊂iλ3SQ)Jh⊂3HD⊂3QHZR3tJ4⊂3Q∧
4q3λZth∩)j∀h⊂)hλ⊃pd uQ4Hi∪utaQS06(((∪∃)jQ04GW,L
f⊗λRSh(dgUMU*ibS iiUS!#εEβE*g)⊂β(
∞t$`∩∩v4d↑Zf↓
∨$A⊃⊃β3∃λA=0==∞A∪9)%%U!(~∃%
≤A-~⊗"⊗≥→1αVu∩ε $↔!∪K8Ye%∃∀λd`:H⊃⊃)H411∧λq∩( →β*"i∀*h ∀
λ¬∪
≤ααVN⊗d*NMD
T`*S04G∧X∧]QdεTRY BORD@→βeλA≠¬$A&u"⊗JJ-αP (*Ye∃∃Y`∞A⊗α".hYβ*),H!'i D@→βeλA∃*0∃$→XR∧H~$l≤β∪pi1"U3J*⊂3 ≥αX∧D]QdεTRY BOR↓ ⊗2
J⊗⊃αα(T@λ⊂
$SbP f⊂i&af∪βC@⊗~)+∃%¬$tα`$∩w&t"⊗aαLrR=↓∃∩⊗ε1¬"& ,T λ →β*"i∀*h" QP,(4(_)D`8p¬P&∃dεREAR 0↔9)%∪LA∨A→_∞J5βbεJ≥∧20≥∩ →e"∧i`¬I3P
ε|
∀$∩∩`.
∩≡MαLqαV:∀*εIαt*⊗⊃αtyα<4
¬∀⎇HX5$LyaP@H⊃∃e≤,T d|LhHU∃∃X
@hPβ"Ng]P$g∃ i)*T*⊂ "∪∧@
LIPCAT90~TD`∩∩w1⊂~≡$Aα>→∧~JV⊃¬αVNα,!α
E∧J2R⊗∃∩VBPhR&BNαxCkβ.K&Q ∧]kSβRD OL@
@P9!∪%#RA&u"⊗JJ-αRMααH∀\,aQ$M¬8¬qε'-(
⊗M∧D]kSβRD TUH∞@P9∪
!∪HRAβ≥Q%%+A)&A$
.⊗8hR&BN$1Eu@W%S(H↔:4
∀X@α`(α#⊂FB$h!b⊃→~P≥~-4 ;SAVED .DF2
IPSPC= :hZf∩∩m'β-⊂A!ε~)∪!'λβiui5⊂H%nN
2⊗⊃α~≥313λ~α ∂R↓λ⊂∀)~¬≥∪UP∞EV ∧D]T`k"bλ aajSjf j∪βR @$4⊂
&Bα8ckk&↓⊂K]8~d,"λ_4:αfbf⊂h ∂R↓∩∧~(~∃≠DJB$β∂ ≡M∧@]fPl⊂!dShf* Sα@∨+LA∪≥$*JJV¬"L4(HH%m↓D~ε"∞αYD
⊃1⊂⊃)'f@ THE DEFE@$ααP≤@tQ∀aQ@∧DDNβ @∪≤ααR"∃∧J0∃$X∧TJZ∃λ∃HXu∪tE↔@εE∧BDX 1 MISCEH 2r⊗ =X∧c!∧@ ; 2 @!⊃_A∂-∃%¬→∨\~∀$HI`_K∀ T,@3tV$λαi)'T↔`f&⊃c`f⊂∪βP
LIH
)!⊃_p∃@YI∃¬≤~e$mDα4⊃ El"+J81(∀λI⊃uC!$g ∀PDL: -LIN@)A _@1dJ2RB$`% 58XR∧Lh¬∃HXc"Nh[∃∀P$
Sss$λβ'i∪βH
A%→)! 0A∨-I
→∨.ααε 4D
$-≥YJDL@Qh⊃+
∀P ⊂∩dεTERRUP@(4⊂λ&
dz≤Z I∀e%λIB[∩)I∃¬≤~a∩`*q1(
λα OV
IT∧ IOCIL¬&t∩@∩w+≤*Iα→x2∧4TSj$⊂1⊃
(αi`∪
λ¬∪(H$∩∩]≤*∃α→x4-∪αβ"I_SH⊃ε⊗ ⊗c!$c' SAIL,Xε~∧wMβ∪_A=_
2e∧"⊗~&tJR&>u_4*ε≤∩εN∃βP∂'→_∧DB]kd"T ¬ @'¬∪⊂⊃αlz0∀MIz"¬≤~hU~¬X∧q*$⊂0td
4∪sD 3P
εBαIN@)5β∩`5βP∞Fε
ε¬λε____⊂⊂ ;@≠β%_A&u"⊗JJ-αP$)→e%∧~ ∂'WLλεFεελλ_∧@ ;PARITY @%%=$⊂∀)→e$≤β∩`≡O]_⊂⊂0200,,000 @`∩%\~2>∞X∧∧L@U⊃4J*4⊂
εBαIN@)Q)∩`5βP∞Fελλ_
⊗⊂00000 $∩vyM∞εB+r%α→jD-∃*Z¬ @ ¬$g∃( ∂V==:0 @```X0d``@β↓@$↔:∧$b z`hT→jDL@⊂εP≥tp AAαεββαβε&λλ_αDXILL @≠5_∞J@∀
$,0β"R)@* ∞@14zz`)β↓AAAα¬Bcβ⊗εββ⊃↔4`)pπ⊂"V$i`∀AL¬(A≠∃≠⊂≡JHh ∃@ ∧]bSα@λA∪→_ αNJ0 (αC"J(αbdg∃≥ BLLππ-βλ4*J,*0∀⎇∧εB(& ∂CK 1~∃¬!%'5!`⊂L)It9hλλFBαREEST¬(t∪ →∨π⊗α↓D4!Q%hKαq3HD⊂∧c'λ ∧10
λ∧⊂∀)_d`$⊃ _
b→_⊗⊗β
∃∪9)β→_h∪¬→∨
⊗@b~(~∀`.5*∩<Tλ$Mλ⊃⊃(i3R5 →β`∞@&↓
∨$AYβ%∪∨U&A&%→αB∀λ$M∀c"Gd∧EFT HALF BITS
SA⊂@@⊗BLjε%@Tπ ≥
__⊂⊂,, ∀KA∪!β$βiuiEβ↓A1AQ"-∧~z$`7-(
→_⊂,
λ∧w%⊂αα∀MJ1P@$αh$fT+_
:βQIAAαεhRX∧∩)→α ∂=tp Q@hRt$↔8T`(α⊂$c∪α D1⊂+D20
λ∧_w6αYd=αλZ%∃∧_@λλZTT∀jD⊂QU Z∀h∀j⊗β!$jλ)hihSβZ LD@¬3)&↓→↓>5~QαHH∀@pH∪λJ⊃34∧ ⊃
PI~α⊂&"⊂h*) L@ ¬!Q$A2$1J%∧ D$
8~"∧dH*4
∩ HED∀J@λ Hα,!dVα @→ a'⊂∃E∧b∩b∩L1α2∩Db0≤~ HD,@qRH Hβ*&h∀P DHSH2 LDHSHHA→ ⊃M⊂dA→⊃0@⊗~αT∧d⊗⊂∀j∧⊂ε",∪βFS LDXPNT LDXLPC LDXLPL L@ 1⊃LbA2%B"MI∧b∩bB484(Q'3@7h∪∩∧ qH∪*Yβ#h⊂∂←⊂#aH$iP$Sα P@%=∞⊗Nα4∧`8H⊂
iRdεG MARK BIP &~(p
mlHH&&9¬~εJM∧zIαNβ→T)q∀c!≥]P≠↓%⊂A∨_A≠+≥≥ @z@p∧∧@⊂∧ijλ$iP$Sα P@%=∞⊗Nα4∧`8H⊂
iRdεG LH ∂&A=⊂∀'0∞gD@ VAH +
↓∞⊗2e→α4z λ
:⊃0tλIλ∩⊂(eb`∩Y
0⊗@Xπ2∧4R3I~α⊂!d⊃a`@&↓≠ ⊗:=↓αε: ∧∧
∃⊃3*
∀h∃ @P)"iU'i"P∃$ NGS @∪4⊂ mmβ0λ @ ¬CESSARY. T@⊃∪LA'"⎇*2" λ∃¬∧Y`λ @dεLY IHA$B∃α∞
~∃αxd¬≤@pεbFBα;; 6β∂%∨'LA¬+∞αα2&.*α¬αXYT`:T∧P+∩dπ@→βQ∪⊂≡eaP@)53Qjπ@∧XεBαλ
∀vβY`~¬h~$L)HU~∧βQ1(Hαb⊂#∪βR ERRP@∨ 4⊂
-**∧#!⊗HKαp `Uα@
A∀*RVJpεε∩∩∀*NL4T*JJBα:C@!,α"'i`k"H*⊂'k⊃i⊂ ∃NTπ!%≡4⊂ mmβ0λ
Hαf`⊂ORARIES FOR @
β'1_∞ε⊂hP4*
5"6BMβ' hU8∧ ≠⊂αIT: 0 0↔$*6Bz(∃∀LX∧hλitH∀j~αbbm⊃F@
SQSQOZ: 0
LDBP∪)Lpλ%@KZP≤@tQ⊂∪βF @%∃→∨πβQ∪⊂≡dλ%M⊃0 FB&"'c∀h∧: 0(TT) 8π⊂∩x_B∧|hj4-λ
∀HYα ∂CATION↓
βπ$zI↓u¬2ε %XT∧l2λ*∧m∀tλ$,4z(R∧dβp1¬⊃ ¬&"⊂`ga: 0 ;ALπ¬∃≤αα& 4H[α∧∀z λλ~⊂πfj⊂a&"P⊂i) lCE&"*⊃d¬P 4$∩w%β9 ∨5¬"⊗ - z$
∃α#"IHα≠!$U≥X∧NβP@→β
A)≡↓βππ,jV"ε$)αNεD∩&@"λ¬r →α"P!SβH
-I)∪≥∞αα~J>h∧¬≥
Y{$(hαB"'P⊂
FIRSDh α
M"Mαxd∧`(αhλD↓(∞ =(@λ Zαib @¬∃αβ(U∀xQ)D$
λ¬∀G∧X∀*∃∀@]kRd BE AN↓∪⊂~∩M∩⊗∞Q¬α6&:αHU∩∧iz"∧88U≥≤α3Qd
⊂∧"P⊂h∧@∨≠Qβ¬→
4∃→ ¬A)$`(K↓"2⊃↔5 93∪λλ ¬ AN INDIR@π ∧¬∧|α3UλZH⊃Sj$⊂0phZtr3Ht∃∩⊃$ +shλ*c#"T∧¬αLDF2DP: 0 ;.FNAMH[ &42⊗J⊗u!6@4PH%m↓Dr6 2Y(U∀z¬QSr∧h~4d
∧z2∧dHidk∩λI∀4Q0 )H!)'fH!j`∩REH
(A→β'2|
⊃=5⊃PDdH~4
∪αB,↓↔p1⊃
(αiiP∪βF @'¬$A
∨HA~ε≤b0≤Dz2∧
IyU$)HR∧
*(∃HhαS⊃λ)`i
αX∧]`Q ∧RESS @∨↓'β$A→_∞Iα4
N $x_B=~ ∃t`4⊂U1Hh4H⊂**P6#!∧¬αIFE PAGIH
∞Yl~∃→ a
2QPI@%@8)E"¬ y∀`*⊃0@⊂⊃'i⊂-⊂h($g⊃P!`f∪)P#'T⊂,!j∀P N↓
BLhR2αb≤J`∪Pα,α'X≡d!U⊂ λACKERY L@-HA∩yhRbαβ(λ@=DO@≥
↓β⊂~⊃¬αVJ&4J⊗⊃AQ HKαh∪Gf∂3⊃)@ πTHQ∪≤A]_∞J∩~Iα>→∧
J,∀λd`:H⊂!U ¬D CAH 2_h"2∩E~5E@!⊗K\9ye$→j2β
HU≥~λ¬∩λ→β⊂&"⊗)` Z, AND↓%⊗RJ0∃~λ¬P)J1(⊂(j⊃0 εBα ∩vαα2%λ9∃@$⊂Q0i@d¬E@&Zb4Tb∩b∩L1`⊂K¬λBHJh∧q(T⊂ε"(∀![εEαDX@% A/&daα∞yjDLdλDL4hZ$,@Pq(λ ¬TWEEHA∀Aαε: ∧∧dB xb∧dKλ$e Q+PK\YhB∧LhT¬∧y→d8h!Q$d∧α∪∪h] 0 8π⊃&<B⊗NQ∧b0≤~λ~5≤,X)D," →e$z¬0βλhαS⊃λYqRNA⊗α.rJY4λ⊂(H∀Q4j4⊃StDλ3Q XH⊃P*9∪p1∧ 3T∃*D⊃R3λQ L$∧D⊃⊃⊃)XT
B&↓.q4hXλ⊃Sj$⊃3qD ⊂3Q I3Q` →β⊂# Tf'`bλ#'i⊂⊃_XεE∪#*&h∀↑↑]↔a# ∀MPS ;NUMBER GF FASLOAD DEMPORARIE@&4⊂∩¬∪→_ αB:&*≥eX4)@9ZTe$~ D*¬λ:B¬≤XyT,@U∀hλ~tq3()⊗(∃ →αbP(⊂i fbU"i)FB≥b"iPi$h*∩dπ@≤A=A'≥≠≥(↓
∨%≠¬(t
∀m→↓1!9(A!∨%→)&AQ_
α~M∩NAαLjBVJ*αN⊗≡l*0∃" →b¬$α⊃(λd dg⊂⊂ ∀HE RH↓≠A→⊃1!'h!mααyu∀α →b∧_9α¬≤XyT,@ @GNE,∧@A$B&Mα4bε≥αM_4)@4
U≤,D
4l@⊃3⊗$λSt@⊂
)j j∃iP"jSd NKS). AHA5!)2AM→∨(A%&A5I_
α→`λλ'j$ THE PURE
9 AND IM@URA @'∃∂∪≥PX ↓ααI∧*∧i~%≥αλyu∀"λI∧
α ~2¬-8XB∧4z$∧$
H⊂∧L@H⊃0(9λ⊂q(y13U↓QL¬P$TP DXLπ
&\A)⊃∪LA∪&A
∨⊂⊗B-"⊗⊃α≥*∞!α$BεAα$B∃αH~5"¬yz$"∧xd∧$
H⊂∧M~λ_5%,→IEJ¬IλPhSαh∪λ~uλ∃iZQλ∪hd∃∩⊃$
q1s(Yβ*↔εB∧¬α;HAS@ING VALUES
IFE SEG@→∨≤ZpLYm→↓"≤AEu@W+
aQ Jα∧∧ααα HDE≤αλ ∞O]→~1,¬24TJ~*λ∧q(y⊃q`⊗NW⊗-f⊃$)d1==2509*~∀$@@@@@A !'⊂dztpj`f9:~*L2∃αN,:2>≥hε∪αrK9D$E9α∪kk&⊗βJaQ HLHI¬≤C'SS@&,λ@_KαX
4Tb∩a⊗5)uuIK↓0%Nαy∧
αλ∧⊃*(q3Uλ_q(⊃JY⊂ε⊂ S,P ⊂AGE IS ALLOTπλAQ_
α≡- 4)@8¬∩ ~h∪5*:α⊂!"H& ∂CATION↓0
-)t⊂hTHK¬¬≥¬P∂'_∧]g⊃l*⊂)Qcbbg∃⊂ g @π⊃β∪8XY!I
A'≥≠≥(↓!∨&u"⊗HQ)D%Dxj3kk*8T=≤≠%Td$λ∧rε∃,(∞iXQPq*D⊂πc⊂⊃$i)jλ+gi"λ'c⊂*Ugb$g∩iFE&⊃,('*∞α 0 ;POANTER @)<A1π(↓!β∂L~∃→ a→!εT$`∩wπ=+∃(A=A/∨I &A¬∃≠β∪≥%_
: yb∧d~:B¬∧_xR¬-8X@hTHK∧e∧G!∪K8∧uλ~U∩3Ht⊂ε'aPj ON OF LAST PAGE USED
LDXHS1:∩`$p∞~&∃~Qα"
~!αZbV∀Q)D%Dλ∧lG∧X∧]Tbagg⊃⊂ iR⊂+ f∃b@
LDXPFG8 0 ;-1 GHEHA¬*J&~L*⊂ (αW"'_3Q _SH∀λ_p3QaQ@↓Gu4sDλ5T∃)jλ∃5jZsH⊃ε⊗∀⊃∀Dλ,⊂*(λ⊃& P3 λF,∀Q)D 5⊗
Itλ *K∀qS∧∧5⊗∀hjλ 5 5⊂(∧Z⊗⊂u D 5⊗λ~ph∀HIpRN∧λ3⊃phd⊂1R)JQλ⊃ij3(∀Iiuth
(P0rd
PS∪h9c"C!)5 λ ~4sNA⊗α.r)I5∩0)D∃4q*$∀sP)X((
85λ⊂K∀∪∩4jλqc"JZsJB()∪prdεB".jZq4@
;4u⊃)T∪P3(Q"Q5J
3UεA~∀U5 ↓".q yIuλλZP3λλj3Pu →pπ⊂ U'fFE∩c'⊂"X⊗-FB*kjiS≥∧X∧B]jci∩h∧E SNAME (I.E. PPN)
D10PTR: 0 ;AOBJN POINTER FOR DEC BUFFERS..
D10ARD: -200,,. ;I+O WMRD FOR ARRAQ DUMP AND FASL
0
∃λDa≥β~βP%@$KZR"ε~α↑.J ↓f↑εdaα
∃α→¬∞∩≥↓α↑"-∩∃↓
~→v*>∩α:H∀T!EBJ,qh&
dzε-↓⊂H%n~Lb∃α:j∃αRxh*d%\*:" xb∧Li`∧#↓Q hT~DR¬≥→YD`7@,α!↔q∪udλSu3HH4V(λitH⊃λJ th
;30SiD∃⊂0IH!"C! 1S@
823⊃"NqλXR3Q$
qs1$λ4⊂
)⊂P**,H)"f U b⊂!∩h)FE h∧XTOP8
`5S!AA@KYαR>α⊃α.⊗Jp4)⊗%BN~1ii`∪∪εεKZ*9∧L5EYD`8p¬Q KEQ.
λ )1M
(zzhb``@I`~∃9 ∀5"$ 4-JaQ"-⊗∪5λ↔,ε]~_∧]Q∪bj @" KEY.
%@)a∞@$GSS@&Lλα'Q!gg∃)'f⊃λ%blWβE∩`∀XASC-≥8∧bnn$s ∩α*αεN∞LIαBε∃!α>→¬""*λ9∧
∀_:D-∩aQ%hKαq3HD⊂1SD
p23↓QR5 ∧∧5⊗∀hi∂/.F∧λ
`⊃∀d FT-L@∨π,@AπdA ∂M≤@≡Q∧*b&N ∧∧`9β⊂$j∀FEεE∀ #a%∞≥∧i"∞']gT⊂)"8TεA
∨HA/"M"∃≡MαYα"ε_h"ε2<~→h%I`≤4H_r¬$βh∀jItλ∃ λαP#aH+`λILE @∪≤ααε"Ix0hT_i∀e∀G!∩kλ↔5S
βTπ@ @'P$g∩h∧ FILA, >0 = <↓∞∩I∧z→αεdb0≤~λ9tl@13U↓Q@εE#S*fP~ ASCII XG0000\ ;IH
∪)%β⊂⊃α<*0∃≥→QP@!α@
8εvvAIβ⊂~∩|iαNR,2→α~⎇⊃αJεt"6 * jTl∀X∧@_x3Q4H~α ∂R
λ∧vvVααJ:>=→1αJ∀
≤Zβλ⊂)Hα⊂ ∩BLOCK↓≠ ⊗N ∧∧(αP$gλ* λAT ORDER.~∀4⊂
&~p∧¬-≤YHU≥~K1P@)060HT⊂ε)!∪'ae@==:718∩∩`-β9E↓↓≠(4*6
J∀(⊂ 'Q)b`∀tztfJ8∩∩`.βλ∧¬vλλ¬6(∩4d 4TQ(J0r0IHαP&gQ⊂→⊂∀⊂i` MACS@35αBR~):∩%\*0∀λ∪qD 1S@⊂∃ibf"TiFE$Q ¬ @+M⊂∩⊗α:2eXQ)T
L(T∧e∀)It9o(∞@:4ε∩%X∧ααα∧∧ααα∧∧αβ:∧ε0hTX≠∀(αP ∩OFSE@(βiuiLHI`≥≤βh⊂)JpπP$TP,⊂∃V⊂⊂ "αα&JJ,"V∞_)D*∧β3q∧ε@εE.BDXEND @∨↓∪
AU'→M&~(hRJ:>=→`⊂K↓∃e≤,T ∀`)4SQ↓↔p∧g$U$`f$Vα@λA¬(A&tJQαRLj∀4*($≤αh
∧L∧W ∪EE S@'Iβ⊂~∩|h%n∞qα
∃¬∩⊗NR⎇∩⊗⊃α∃I↓"Nα:D
∃0 P∀ g"'SP⊂∞.8R~*∀∩2>∞Xπ"∧∀Ix4Z∧β∀PIIprb%@)bbP∀ g"'SDX .β 0∩¬yz$%~ xbα∃(→d$|β(SHZtc"AQ@εEβ≥i'*∪α2 BPPNR GAMNT↓∂'¬!8Aβ Mβ$A =)'!ε↓→→∪ DA∪≥π@A%)'@bA%)M fA→='AI+∞A
1≠ →Fλ∧∧4dzg∀α∧8 %≥~λ
5L@1H∀ xQH∀
94h∀
95∀h
q0 )H()W)H)j(f∃m⊂''T εLS SAWSP PU@%⊃$A¬*J~9λ∧¬¬-(ic∩¬λZ%≤tT
5M≤HZb¬≥~8dc
λ∧v*8SLH
;4psIT∀rPiHU1C!!αE)'∃'→≥∧Kα(T) 8ππ+∃∩⊗ 5D
∧t∃Xd¬<@tQ⊂⊃'i⊂!Sd¬PARE @∨≤αα& 5HZ$`@"C"G↔nh∃H~R00IH4h⊃IZH⊂4J(4(⊂)I⊃pp*ItC"H
∀∪TG∧X∧]O)`m"H'c⊂ T) lP∩ ¬ADER>,,-<S@∪5∀A∨A¬%%β2↓ β)αx~∃∂β5≥(t∩@∩w≥,j
εI∧z→α↑⎇∩∩Mα∀*F@,~(T"b yb∧
λ8∀dbλIr∧<XJ5hαQth*⊃NB&↓.q4hXλ⊂4d
⊃34 zP4V$λT⊃3HD∃r∩)H(⊂S
Dp3Qdλ∪usDλ4TP+~c"P(H∀p4G↓,α.h_⊃∀Q*:h∪qD
t⊃0i_3λ⊂**P6(λ83∪λ
Y⊃3H X2r3Dλ4TP+⊃"U∪jJt⊂nA⊗α.o∧4⊃qHλ~TP6$λ⊂34ge∂∃ z⊂3λ
:⊂0q$ Q11λXλ⊃Sj$⊂4TH≠/C"II∩4'!,α.gI⊂4QhZuλ∪λXp3λ →Q⊃6∧ qH⊂**P6/E6#"R)Jt
B&↓.p∀hZ1∪k*λ⊂ε⊂(∪dg*"T⊂#'iλ i) VVdg#CE
RTSP1:↓0
RTSP3: 0
LOSEF: 77 ;LAP OBJECP STORAGE - EFFICIENCY FACTOR. FOR (STATUS LOSEF) = N,
;THERE WILL BE <1←N>-1 STORED HERE. SIZE OF GC PROTECTION ARRAY
RWG: 0 ;IF = 0, THEN CREATE ERROR ON DIVIDE BY ZERO,
;OR FLOATING OVFLO ON CONVERSION OF BIGNUM
FLOV9A: 0 ;RANDOM TEMPS FOR FLOATING POINT
FLOV9B: 0 ; OVERFLOW INTERRUPT HANDLER
CPJSW: 0 ;IF NOT ZERO, THEL *RSET WAS ON AND @AKTRACE WILD FIJD MUCH
;ILBORMATAON FROM THE [FUN,,CPOPJU TYPE STUFF ON THA @!⊃_~∃!M3≠@PI@%ntz16j-∩=α∩-∩&*≥∧*b⊗∞-"&>→∧z→αB≥J584Uα>~→PI@%nαh∃∀LzZ2¬∀zZDLtX4∧LUiyE4Lhtα%Bz4∧5∀yT∧$¬DλDz∧*:"=~ λU∀(Q!∀U∃:@¬¬≥→R⊂hU
9U≠P_)Dl≤4ε#K8I∧M~
9∧⎇,H@∧∀
λYd⎇,y∧4⎇$ E¬≤X¬⊂AQ@0S Xp¬P→CE()fU)]∧XβE()fT)]∧XβE$j∩αihjgV ¬ ,,∧∩w
=$Aα@X
J,
-↓E⊂beA⊃eαM*Mk
t4*¬→2MhK$%:≤*∃αBα;∀kλQ!PE≥J→E-S!⊗K\iz"¬≤ZJ∀L@Qh∪I→λ∪tD
λ
(313((αi⊂+R$ad Lπ⊂~∃∧zR-$ ∀`*∃p2*A ¬εE∪'h#&∀]X∧NβH
∨≤αjjεJz↓uyαα
U∀Lhε)λt∀r∪jY⊃∪@∪U⊂#&*Td⊂ "∪)FEεBαSAWSP:∩Zβλ%nN≥∩⊗@:β04I@h¬ND
UITH5'⊃β%%_
:Xπ"ααT⊂λ
84∧iP∃bP&jTP)"`Q⊂εE∧B]P'jT⊂!gi⊃P MAGE IN BROM A "PURQIO ∧A
∪1
~∧d@HA!≥JNAhJiE%]αVJ&5I6Nf≥"⊗ *Zλ∀<-4∧αk
λ∧p+~h∩1*1"R1I@⊂$j)K-FE(∃i""k∞∧X∧]T ∧UMP FILE @E@-%∞∃αt
6∀Q*¬-∀i`'∧X∧]T ∧UMP BILE BN1
λPU@%→_ I@!⊗K]λJTmαλi∀d(⊃SF!αE(*T)`∞Mh∩`∩wA +≠ ↓
∪→
↓'⊂~εl(4(Q*5M≤HZc@!4r6λ$j⊂.∀li`≤
λ¬'3'→_ E@!~4MD)~B¬@∀⊂
i∀dgnεBαSYSFL∧d`(LbP∃∀iqP@*v4ti@&Y∧iRl!$jλ,∧S@3M8⊂∀+Q⊂K\α1SD 5∀c!∧¬∃'∧HA
β- ∩QPJ"ε2 H%n~⎇⊃α4→9∀`(βP'jU⊂*$"H+`∂RLDλ
(hR6ε@_(R∧e9(4d∃XgSk↓⊃∪@83Su(yλ⊃Sj$
Dλp∧ i∀FA)e⊂βH ¬+_pλ%@HI`≤4~*5"¬yz$"∧α∪sλD⊃P
fPα@$A=Aπ⊃¬%&A¬U
~⊗α(T @ ¬∧a∪'ae@ LS@∃π1
V_hP$%@HI`≤Lj:U∀4h∃ λ5λ∩)Hα!)P∃βILL FINALLY @'∃
AαAi%≡~(_w%'a)∧bAI∞@" →t(4L ⊂∩dπBAR2λ
(hRN@,*JD`L→i∃$L→D¬∀_JD∀HUB∧|(~%∀
α(
→β⊂&'Uβ CORE)~∀4⊂ mmβ0∧L@R5∩(→λ⊂ "Pb⊂ ∪YLTAX↓)β¬→∀A∪≤A→_∞J5∧z→αεp∧∧
∃(≠⊂hPβ"B%V+↓⊃,r3D Q0dSβ(λA<J21αα tL@Uλ∃ @P
ACRO CHAR LISP
RSXTBDpλ&BαZ4B¬¬H44MαλλFBα JSP TT,1DIMF
λ RAADTABLE
λ 0λ
¬%
(tβ¬1_∞∞4 E∀≥EPA↔ur∩(d⊂$iH!&*∪Q⊂ N↓
%∨~ααJ∞Qh ⊂MJ*U$Bβ↓↔j⊂ j⊂h*`∪ TTYREAD ∩X0Q')βQ+&Aβ ↓%4JεB∃Hh &:La12R∃*R %ZBNRε%*MαR-∩BJ%Ja1"NαH∃%-4rJα∧↓PP@ C"AQL¬P≠; INITIAL O@LIST IN FMRM OF ARRAY¬
-<GBTSIR+D|↑dX1∪⊂≡
⊃H4*LzαεI P&*NααRQ1"&&LhP%↓↓∧zαεJ∀
d4λJ↓↓α≡∃"N&@%0%6Lλβ! 3pP*&L¬∧a∪'ae@∂'a*)Rm∃P←β2¬
@¬→∨π,@d``<d∩g'Y
α @¬→∂π,A≥!β≥&P≥Ih ∀Li`∧`*⊂1tdf-kλλaeH_@
] ;END IF "4⊂
&→⊂¬EHh++%+kUa∪L$~)b¬<YIB∧∀X¬∃λZH⊂Q$
p1Q$ uQ4D
⊂⊃(λiq∪∪j@dg#@ MESC!
.BYTA $4⊃5%4tz`~∀⊂zzf∩m
∨$A!β∪%2↓!%∪≥Q_∞@-D
D`4∃stI1"T∀I→β*,⊂↔∧@
INIP@∪β0A!+∃"α1αl*6.JJα2εF⎇*P$
Y↓v 5α∪ ⊗λ_ZdfT*i"Vλ→_
@!U%αX@⊂{¬!&=!↓1⎇~εJε$~"`(β"W↓Q@εE'∪!*)cO↑XεE∪αHBTSG== 4⊃∪
≤αα2>
M"N≥0Lr2
R≤9uv:∀JRN≤hQ2,J8R`H→i∧∃%8sSl@PR5
8c"C!≥]]@∩dε @)!
A&∃↓α
⊗dzU "λ9tlL~4∧TDλ5∩th∪(~Rh⊃jX4P3JH11⊂∀ cbP⊂'jg"⊂i$biCE
IRP CPAS _Ym5⊗I\bαQ2≥!2Nf~bNεI]2¬ %λh2dM4
j;3*vλ+⊗⊗⊗)dY
h# _PBS+PFL+HXP ∃∪→&W&5A.&~bZα9.EB∩dλ*Bd∃
5D`+⊃+⊃K
⊗⊃K
λε#&∀⊗,#&∀⊗(⊗,∀∧¬∃'@Y1' 1'π%; ∪ ∩Mbb`≠
F⊂ε%+¬F+ε%+%Dα⊂0,$,0,$,0 _HαaA1⊃c↓1αthR`∃Uα ≡L∧¬∃∪I!&AπAαP⊃∩]~B∞NβQPEU+βSmUαV
i@⊂i`⊂C!SG
TARMIL∧⊂∀
∀*B,~@λ-(λ/SGS%@!≤Y6~∀%
&R_h"jJSivj@+%3λhαR1HT⊗VVDf-k⊗aQ@∧XεBα 0
]
αPRIH
)0ααr
&%~p (αR1HT∂⊗VK⊃XX∨ _[V⊂∀)$g*⊗⊂.⊂.βE$c"H≤∧ZZZ εd`\α1MMD
¬∀Lh¬⊗∧α⊂⊂⊂↔∧¬∃∪→
A55hLfnYl~∃!∀J0∃%∧@hUββ"KQ ¬.DB]bg"λ'c⊂)⊃h"`jβE*"i∪dgεEαBQTE
IFN ZRZ-L¬!β∂LY6~∀%(∞εJp∧¬eU+%E@75tSi@ π LEL@∂)⊂αα~>I¬αVJR∀a↓"NDzV $Dλ$*¬Xπ∪Jλ1tk∃4εFEαf ∂C X¬5.~(@∩β¬1_∞∞4 e∧z5s∪Q!∀L4d e∧z4chε⊂!∪'ae@FAεE↔DXEND GF IFN ZXZ-NPAGS
@!I∪⊂~R@αp$+APUHα".hYβ"⊂$Q⊂→εE↔D@]bSα@λA∨_A∪
≤↓!β∂∪9∞~∀_w
!U%nA→!+%DA¬!Hc"A
A+$cα↓
!+∀1Qα&β↓α&A8∧∧Mβt ∃βλβ"C!! ¬↔)QbP ⊂URIF@2$∩∩w¬*J&~β∀∧,@U⊃4J4⊂∧"i⊃F@
FPURF7h∪≠∨-M∩AXH```∩$p∞@$ ~2∧∀~D∧9qQQ**∀h⊂h→⊂ε⊂*∪β CALLF, JAALL TO JCAL@→4∀∪≠∨Y∩AλαbRBVα(4`hαB4
Zrλ∀¬Jβ"QJ
4QL'↓2⊂ )⊗⊂*⊗∀∃∀@D]Pb)⊂"∪ic⊂*∩ ¬ @!U%→∪'P~∃
¬*IFEPJ*V6∧)αQ2∧zAF(hR~BV⊃
¬hεDbJiα
⊃J¬1E!$4λMαVN"RαA22%~6N HInBJJαR=α≤jεN hP%α*∃~Qα~¬*J→PHIf↑&ph(&&⎇∩5α→bBεIJ
H$%ndzN∃↓jα6ε.*α&Aα
αεε2d1>*∞b2_4T2BVJ3!h&"∃∩aαQd↓"A$HIn↑&paαN=∧~VQαM!α>V α>→α¬*J∞∩|∩J04PJ"JJRαQ1" H4(εE∩J5α b↓"AHh(&*∃~Qα~¬*IFDhP4*&4qαVN,b⊗NMeX4(4TJAAhHH$%nα
U∀Li∃t$
Z$L5∀
4|LT
∧<X1PTLid∧#¬D∧U∃:@αE∩⊃⊃∪@8h∩⊂*4⊃S⊂(uλ∪Sie3U3 D∪10)jh∀∃*)1PFB$c'⊂⊃→_∃dU)V-FB∧f)dλ"∩⊗h⊂cb'cBDYa`S&"b⊂αY JSP R,IP0
LS@⊂AQ(XK!¬∂→∨∞$∩w+≤*Mα d→2Q2%!2⊃∩0h &∞J≡∃α%!1D∀PIα2⊗∃⊃αnNMBα&Q¬aFNQ¬αε≡∃∧r>Qα¬*J¬εeh4(εlzP∀∀λ"bEJ@
!⊃,qR(z4Q( z5λ∀
ZU⊂S∧λV5⊃$
⊃r3JH4C"I_SH∩*Ji⊗c!!4Su∧λK%↓Q@∧`b⊃$P!⊗
!∀FEαi'j⊂⊂α,-1
TLC B,77000
ADD B,[450200,,PERTBL]
SUBI D,-1(TT 3CALCULATE NUMBEB↓_∞→ααλ∀<-1Q LLZYDJ¬JACβ∧⊃PPMJ)r¬%EFCββ∧∧↓⊃.p bU⊂*h⊂⊂i#P#∪i⊂↔!P&%Qλ ∧fgk∀dP_@,,¬¬⊃'1∩∀∪M↔∪!≤↓4(JαR2x⊂λ
J
∧ε↓ ¬∧Pλ)`IPA C,R50#" ;@∪≤ααBVJ$∩11↓ j& -λZ$*@λλG*
4Q#!↓(λλ YuQ2$λk#! 4 `≥αTεCBLK TT0∩∩`.D
ε-α∧
≡∀4PIα*Nαα→2εβλ$%@9~β
∧α⊂3HI⊃0h Itp bTFE∧`Q TT,1001
] ;END OF IFN ITS
IFL D2@Y6~∀%%∨(AQ(X@5 h &ε$"%αR ¬BE%E⊃P@M)zB¬%EESλh!~Dd~λ¬∃¬Fmlεεβ"B(_⊃λ∃
E⊗m~L→__⊗(*`∩T@¬→:~(∪'+¬$A@1hε∩D∩⊃⊃∪@8p3⊂jY⊂5⊃$ U30HZH∪qD
⊂1q*1"B2
*R(%E∃∃∀CE HRLI "αa0∀R⊂sλa ¬∧fShεSI 2, @!∧K%λWAαK⊂αH4(~94M∧dλ0hPα(∃ Ip(eE∀⊂ ∩PβPY)
λ∧∩@AM↔∪!ααα→2I8εα[⊂β"B$∧λ∪3j@ ¬I F,1~∃% nt∪M!βπ_h ⊂L_HDJβ∃F⊂hPα01λI(λ ,1
∃:$∩w≥⊂A∨A%
≤Aλβ⊃@ (αB5 ISH⊂EFlhλ__∧D]Q'i⊂!∩a'h⊗λ ∧E@!='∪(A 3 ∩∃∧J0∩¬λ¬4JHSβ"A∀∃∪⊗DλK
efελλεBαIT$ IDPB↓
$!Q#∪αA→∀%∧$λbe%AQ M≤βrSDλα⊂IP5
α JRST (R)~∀4⊂
&~p∧∧M∀k⊗aQR4'∧fgk⊃P*⊗-M~_⊂⊂,,8λnnX```VβbN~¬S AAAβ`∂KWp4tjYαbP#⊂df*i⊃P+`iH ∧UE TO CHARING
∩]
2-¬!0$%]*N⊗M∧z22e¬!2RPhP%↓iIu≤*∧⊂εελ¬RbSαAC@$$s⊂~=∧~0≥∀Tλ∃$→H∀∀dQQ LDH λ
E⊗l$&⊗¬J∃↔#!↓3∀r∧
∀⊂(y⊃q`∃L→
HRRI T,<374∧W'
∧|U!β≥'∪ )βZN=α≤zBeααλ∀<* →e$zλ9tl*λh∀\*λ∧⊂(x!"B(&*⊂*≤→P↔XW'
αxU!β∂M∪4V@ 9P≠hλ
f∩ebP(⊂cbP'∃d¬BER 376
λ MOVE T,TT ∀∪¬_
$9Y∩¬"βmf@FA∧dSβRI T,376+SFA
(
π¬1⊗A(X$∩w6⎇2∃αB:∃αX~α∧∀z λε6β[⊂$SαTG LLπ'&t9αBε<)αBz9∃$LyaP@!(S @ibFEαdgk"RP*⊗→MXε0 0+<SFA*10 @|⊂∀!∃d8S∩`⊂∃⊗∧D]Q&*`∪H ANTRY FOR PAGE 376
λ .LLπ'
~(∪∃%'P@QR4⊃0∀⊃↔4,@Qλ∪hd⊂∧c'λ$j)FBαX
$KZ⊗ 4D t2∧α1SD 5∀jhFLβ"KQ .q)@ ∧ OF IFN↓+'→∃'&~∀4⊂λ1n~4bNMα4bN@$)D¬@+Tλ⊗Kλ⊃3JJQ0hλi∀pλ LP#&)T YP#∪)b$bH!&)iU i**T⊂ ∞OSHARE SHAREP SHARP1 SHRLOD BLSLSP FLSPA4↓
→'∧ Uα~e~Rε1∧22NZλε∩∧∀J8∀$RλiE≤@4r`⊂⊃&)` M⊂( ∃R@π⊃εAM3'
∪0A'3'
⊃≤A↓⊃+∪!_↓!+%π-&A!-∩6B→¬αVJ>β αBVα)uβ∩λ∧∃**Ush
λα*fhλ(*`∩CHN @!U%')∩↓!+%∪M A!I!)$~(~∀4U~V
R$`&NR
∩Q6Vααε <HUB∧hHU∩∧∀λde-9 ∀`(h∀u*:⊃3Q↓QA"NiIu∩∩)@ π ON T@IS PAGE IS FLUSHED WHEL/IF LISP'S P@+I
A!β≥&AβI
Aπ→∃β%λ↓
%∨~4⊂vAπ=%αA U%∪≥∞αα¬αNαZ5∧hAP@HαR1ID∀⊂1i→β#V-CE
NFLSC:8 ∀~)
→'$∩1hQ)∀3
Dλ$d|90λπGα≠[@74ε`≥↑zjN⊗≡dz≥y- q0≠≠eaPDLd∧@⊗⊗β
α.BYPE 1
IRP SPCS,,[ZER+@→¬PY'(YM3&Y'¬$W-ε11-εY%&dWπe~W1D 2bbRbNeI]α~a∞αλe~]λiB]Eλ∧β!$c ∪+IFP+IFL+BN+XXBHBT,BPS →≥a~Q
E↓2b~β
αd∀J¬ED∀J¬Eαeλ↓PE≥¬K¬≥αJ85∃@0R5
5α∩-HK_V→εT∧0,1,0 _d0bP⊃Eb!1AD@ε¬ ¬D ∧E Q VVKπ-(λεBαIRPS SPC,,[S@!
':~∃i10z[i10G≤¬'!εCM∞~∃)∃%≠∪≤4⊃%∧*εAαURa>N=→⊗B≥eX4*&4)α
&%→5I1βλ$$%\:⊗ 4X∧P*HαP @ FLU@' Aβ≥)I2A&2αBVJ(h!:⊗e~∃ ⊗↓⊂HKαh⊃)Jq(∀λ_q(∀i u3⊃∧ Su⊂⊂α@
A
1+'", 4*@QQ%$4S2)@∧¬∀] 3!
~)
2≡≤Y↓aq8εs 6β[[oKibcf∪βG>+D|↑f@2q5qeXde≥H)Cp@ W"!↔q3Q∧ qH∩(f@εE.BDXEND @∨↓∪
≤AAβ∂&t84(Q!P@)1S@⊂⊃→_⊗-CE"g*∃α@ε@Rα*JN ∧∧dM8λt`1 ∧]j∪βPS-H`A≥Q%2A4*≥⊂πiεBα JRST C@)I→∞~∀$`@∩∩$p∞@$βh⊂HT⊃R3 Hαb⊂$Sα WITH VERSION↓_
V6∀*Iα→`λ↓Q@∧DDB]P⊂⊂⊂αITS 4.6 - 3& .4⊃0∀↔8T`(α⊂'cλ$c' D20
~∃%
≤A∪Q&Wλdβ↓2l4Ph"4J:∧!_∃≤≤α6HGFrP↔X⊂)z`3pe`≥I∃H6~∃p~∃
→M!αf@PJεN∞MQα`#!9DM≥∧λ∞↑Y(⊂__pπes d¬P∪W≤¬ε.λε⊂ !nd j@=DA'kMaK@;&+⊂l4U`4*~e~∩&∃β!∀
≤9≠"¬@∞Fs @ibP@! Cannh∂hAα3';⊃∧∧fNfTλ
m≡~λ⊂_≥y2P 0a`∂Kf↓H ?$λ
(∪∩*:β"P≠Z4qt thi`&↓P >$λ
l≡h→≥-↑→9⊂→αr`∨Zαλl4
`h ⊂@ ¬#&∀ij i∃*h⊂~
λ JSP TT,SHARP1 0↔¬∃
∨%
↓')β%Q∪⊂~≥∧jVNQ∧Bε@4Tλ∩¬∀X→B∧≤z(R∧LX_t(h!∀α`*P3∃(T⊃S∀hI1""'P"$bK⊂"$bK⊂"$bCE SETZM SAP∂'H%n↑*α"εZ*αε %(X∀%J X∃¬∧X@∧`:αi)bS+"`∪ IH4PJ*JN ∧¬≥
:ε0hPβ"C! Strλ~Q/ ≡R))b (T! 8π ↓='∪(A%_
R=¬~"εJ-↓αRt ∀dDα0R*D∀r⊂*(23QaQTr⊂*(4
B*9p4∪D
p5tj↓ ¬∧P∩))b (T ∩~(∪'%R5αN
:N@4TJ~9αM"M"lhP% 48→Db¬λ¬4Hd
≥4
2V∀hP&*Vmα1αR ¬BE"α""'dεEGATIVE IF FIRST SYSTEM PAGE IS WRITEA@LE
] ∩w∃_
" xb∧Li`λ ~TZI 0 ;LLπβλA=→→2AA+%
AAβ∂_h"d⊃↔4,@Qλ∪hd⊂∧c'λ$j)FB∧A#&∀d)`⊂: α2⊂$ JRSP FLSNOT
λIFNIP &Yl~∀%t~ε2D
5M≤i→@HKαr3D tQ⊃*$∃∪hλi∃0 dλ( cbTT⊂#bH&jajλ!"P!Qi* dSαλ
∀∩↓∃%'(↓
→'≥=(∩∩v↓)⊃β(↓+
Aπ¬≤A∂PA∨+¬M⊂∩Z-→α
ε≤Y∧4λJr∞2>≤)αR6∧→04λJrεε2bαBVJ≤B,$%\z0∀e∀λde-9∧∧L2 I∃≥α ~2¬¬X∧Q!Q@(Jh3∃1!QB2U)Z∪⊃(
J⊃S
9Suβ!!4q5 yαP!`Uih∧DNc& cH*$ jλ+bP&Uij⊂)⊃`b⊂'Ui)bf∃ ¬S FROM TH@
A
%→
∀%≠∨-
↓(Y6hP`b``0Y
→'Q¬→:∩m!∨∪≥Q$A∪9)≡A ¬¬→
A=A/⊃%∞!α∧
≡⊗M¬"5α~e*N 4PJN⊗RTIαRQ`H%n8XUα¬λ_t*∧h¬3((4H∩)D∃∃β!(S∀tλ⊗∞B2)H⊂H∀EJα".hx5λ∩)hβ'P'Sα THIS PAGE
α JUIPE R,FLSPA5 8π'.M↓α&→∧r>@"λiE-≤λ_$d(β"B(`dbP∃*∩'#∪)iWh⊂cidmα]c"k⊃i⊂#&∃i`⊂*∩ ¬ @!¬∂&A]
Aβ%∀A∨8hP%α∞J0∩¬J@ @ εLSE,π!β∂M∪44PI↓α*∃~Qα~e~B¬ThP%*∞b1α~e~B¬XHI`≤,J8R∧∀JZ4B¬IλR¬∧_xR∧TSs$ u0@⊂∀ cbP∪`hεEαP⊂∞LOSE !P``~∃→→'!αβ)`⊂L8→∀<*λJBc;vrs 6βP∂PAGSIZ 8π⊂∩≡⎇↓αV:$J1ααL:"εN"αBε≡*α0∃,X(U⊂H!∀∧|αP ⊂∃*∩#&∀h ZεB∧W)jTbj⊂#∪)b`∪K 3MAKE @'U%∃αtyα&:$*JJV¬"MαR∃IαR≥∧BεBB,p4(~
U≤DαH∀¬J⊃∃3* α".j
4Q(λJ34λ I4tλ _H⊂ gH""adT ¬D
SCIPE ⊃
1 R$KZ0∀LD $9α∨FEαP
RST SES@π↔8HI`≤@St⊃%D∀Q5
ZSH∃∧λ3Q⊂∀)'abQbεE∧Te`h"H**⊗∀⊃,(∀DB]ad"PβK IF VALREPλA≥"J&:8h ⊂J *%≥λ⊃S
:β f∧B]lbiK⊂
@+M(A-β1%⊗Q∧JQαRD*0⊂@ B3)Zβ"P*!(λ@ 4⊂∪'λA(@24bNε∩Ph &6⎇2⊗ *λ¬⊗
εP⊃ $~∀%u2ε %XT∧4e8∧⊂&1 .t
)3U⊂∀h¬S@EL¬'&|qα6⊗α:4<QQ LU*:B¬≥X∧pi@dε↓ ;AH∂
$J0∃,→hr∧hHU∩∧∀
5-≥λYd HαC"Hi∀p S≥∧ieRh#⊂+⊂d∧FIX 0↔∪LA-β→I ⊃αα:E∀Lhpλ
(03∪∀⊂(⊃I≠⊂π ∃M?
α JRSD↓
→'4 D$↔9d`5α⊂ ∃SE @≥∨I≠β_AYβ⊂∩J- 4(→
%∃Rλ@ε∃∃∃∀BDX@!%∞.Vα∧¬$DT
d@∃1#!↓+PTHX2h&Eλ⊃∀BDXDO T@⊃
X
J,
,4(LRJNQ¬~VN∞|p$%N≤z2Rεu*∃α↑D*0∩∧α5⊂∀ ¬TURL¬&@1∧∩V@"λ∧Q*J4S@⊂∃∧@
FLS@-∧bt%u2ε %XTβ
EJ@
!Q@∧e)∀h∧ @'U'π>pH%ny`λ
Spq(Xλε⊂)⊃h∧U@%8A(~∀4⊂
4J8∀$SαB,%E#"Hi∀s4i7@∧W)S`ie@,,.+1
λ∧∩`X0`⊂∀!Q$4e8∧⊂&@≥ibU-
SIP⊃¬%(A9π=%¬→↔p~∀&lzP∀2(↓⊃ ∧]c∪*id THE PAGE
IOVEI %JSEHF 9FROM OU@%M⊂∩Z-_4(~8U%Rλ¬∃↓⊃ .tλ_q(∪JYαa"iλ$g⊂*∃∧@
PURCHK:↓SETZ¬
SIP⊃¬%(A9π=%)3!p∩∩g∂∃(A)3A
A
∨HAπ∨%∀A¬→∨
⊗~∀∩@b``@XY¬'e''∞←Aβ∂'∪h∩w)⊃¬(A
∪I' A'e'!~↓!β∂
↓∪&A∨8~∀%#↓IAAα¬Be%A⊃∪@7Lλ∀HX13iI⊗+λπDλ∃j)5⊂0IH+λ∂$ελ∪Si@⊗bd$Th"g*βE
SYSFIL8 SETZ ↓ ;FOR OP@≥∪9∞A+αα~&2*αR=α≤BεJ∀hP&N&D∩&AαdzB,kAP@J∧∧αα¬8ε4h→⊂πεEαP⊂⊂⊂λ)lib⊃k
SYSFN1
α SYSFNH~∀&≤*Riαα;∃≥≤iQP@@ ¬)lTa`λNh∩U+∪$XY)≠A4(hRt%@8Yd"∧βqH _SH∩*Jc"C!↓α@
;RLπ ⊗RLr∃αRzαB%YZα∧
λi∀d
λ¬r*Iλ∩3HI4Q0jD∀pfPαOD TABLE PO@∪≥Q$A∪9β⊂∩V$*⊂ (αC"I~α∩P(⊃*f`&∞α POPJ P,
λ¬∪
≤αα&@%5K0hUλJTm∧G!∃≤\~ b¬¬X∧QλZβ ;DID TH@
A∂U2A/β9(A!-∩∃α∩,jB&:9x4(∀
∧m∧αH∀¬A".sIZ⊃+λ
(5∃4I@⊂)$cR*⊂ kPl@
,¬πβ→0A!+∀zB8∧KZ0≥∧Y`λ
I⊃(⊃I→α"P#∪i⊂ ⊂DUIP'IL¬ε~∀$@]→∨M
@bhβ↓@$%]""*λzUJ∧β∪tjEλ∪r∧
q3∪¬D∃q(λ~Q(∀
)pP0IK(∩3AQ@∧DDB]P @∀hi`"S ∧ ANYSAY
λ SETX T, 3@!⊃+∪ AI#+∪I&Aβ8A∪≥∪Qβ⊃2Jαb-)t¬≥∧~HR¬<z(@hPα+Ph→⊂ε⊂(⊃*fh∧B]b'P∃$"P Ph∧UAL PDUMP ∀∩]→∨'∀@bh`@~∀%tJ0≥λ⊃∪*λk∀∃**u∩"'→βj`∀PUP CTART IL¬')%Uβ ∩ε|p4(∃i∀`:α⊂ ∀MPC$PURIS@ $p∞&:$JJ,8¬⊂∀lfa'S⊂* a∪ ¬ @!=∪⊂~R-⊃α&:$J≤
Iz hPα33j@ ¬ @)PY!+∃αRH⊃↔5∧|α3UλZH⊂
'H#$f"SαAMES
∪≠=(
*λ¬⊗∀*i(*∀∧@]iU i* @π⊃π-'#~~)!+%π-&tβ%=(A(XD~∀&"⊃αQbBRQ∧HI`≤h@λλd"aeThfP#∪βR DDT ∀∩9∪↔(AQ≠!εX!)(R∩$p∞ε2≤yα>VαJ¬-αλ¬∩λT∃stHD∃∪h
I⊃(⊃I→α"FEα`ga%∪α TTPURCKS
.IH∂(AQ≠!εYP∩∩`.⎇*RBVα@λ
I⊃(⊂iλαaeiUd@
,¬∪∨(↓)≠!ε1!+%'Q∩∩`.αI∧,@H⊂1h→3H∃ λαP ∪TART ADR~∀$X
∞εdaαBVα*% 9βDD]T"g fQP*'P⊂βH∂%%∃∞@"λi∀dh→T(hαB(¬I⊃tq$ε-↓Q@∧W!S'ibP∃&h!VαDXFIL¬∪'⊂ααVAααy∃$Bλ¬∩λT⊃R3λQ ¬∧h∪βP@∀A@X∩(hRBVJ⎇α0∪P~8U%Pβ"B*94∧!$U⊂.'h⊃dεP_~(∩@@@A!+∀~"8Q!∩αα∧∧¬¬-(HU !αA∧Pλ⊂⊂⊂(∃i'h_CE @!U%∨ @⊂h ⊂M8ZE@$∀⊂
i∀e&FEαFA(*T'h⊂@: SAXBIPλAbr2&Nαrp (αT∃*)tλ@≥αi`l!∩h∧ @9=+!!-"p (αC"J
4TUi@] SETZ~∀%'∪ "∀JQαr∀*0∀my{@hPα33j@ ¬I TMPC
PU@%→_ DQ!∃≤-K$¬¬-(ic⊂@ C"Jλα*fh∞α SETXλ
∧∪M∪1¬∪PA0∩B%*6BphP&&>4*%↓⊗U~⊗"_hP&&>4*%αRmα∧4(M~⊗Ri¬ 4(Q*¬-∀9 c@!+Q2)@T∧$TMPC
PURS@)$pλ&*∃~QαI~5∧pπFE∀*i$iT≥ -PXXd~)!+%!Q$t%hεBbe8ε4hHαkεEβE(
8π≥λαα0≤2 _d`$⊂∧j)CE(
;EH
λA=A&4qα&R~Z⊃I@hP4*B8!α:~e~∃hQ!P@ ↓Gpr3 λβZ⊂%Rd λGHA↔&dB≥Mα\J2"≡@∧∧\LIλs
∧αr3 λβXP%Rd∧@⊃∞β⊃α*j:D
∃Dλt-⊂∧#dλ πE@)!∞bA∂∃)⊃∞dαα≡⊗RD9EαJ-""<αλ⊃iJq∃6$λβb)f∃`P!d∩d#d GH '→hhA∂→M→4`A≥→' 5∧A≡J9E@&(⊃s
9α"P⊃↓∂⊂∩NeQIα≡e~25I∧:2NK&2∧pε)f∪YP ∪GAH
β~ααN≡ε$*P∩¬8x∃¬∧βH∀hx10*λ&")$R)P&"∀$)P⊃↓→∩N≥∩T4!Q hU8¬0JJ⊂ε⊂%Rd λGH AND↓∂)⊃≥⊂∩(hR&~9∧!EA) ∃≤,yXT`*⊗c!$c"P∀`df⊗⊗β
αKILHG4h∪⊂≡VαJ5%∩λεp*8p6HAα@
;Not fLushi@9H
β#L∧vBπ<Xvn∞β]¬T_x;D}λ→P∀[2⊂↔)R)⊂3 )le~∃q:~¬↔%→⊃∞dβP&6>4*%α¬dZ&2λv0HK8¬∩ ~h∀r Z3⊃λ ¬ @'Qβ%(A¬ $A∪_A≥∨(↓↔∪→→%→≥αE_4(→
%∀jλ∃B`)PTp!Q@∧fgUα@
@`1'∂β≥¬~∩∩w%≠!∨%Qβ∃(A%→~=∧J2R=∧
εMαLqα∞ε≤)α>→∧~> 5I→e,(Q!∀l]hTβ
J8t$XaP@LYzd*βuJ4<
λ `hPα16 ~α⊂_FαDD]iUih"g⊃⊂#'iλ P ↔HIH
~)↔∪→⊃≤ftβ≠=(
,Tεαe≤x→dhβ"B)YuQ3$ε,+∀hx1⊃5AQ@∧fgUα@~@\Y'∂βA!≤4PJ*JN ∧¬∀
Iλt@@ ¬.DB]bg"λ$c"P∀`dfεB∧@
KILHGHh∪≠∨-∃∩AαY≥)"<@$%N\J21αDJ≡!α≤*≡&⊗u 4(→
%∀jλ⊃B`)PTp$↓".thZα⊂!j⊂i*⊂ Q ∧RESS
IFE SAIL,[
SCIPN S@+M
→&~(∩A¬%M(Aπ∪1⊃≥HhP&N.Mα∃αN<
:ε4HI`≤≤→` jD⊃S∃*9λ∩∩(yλ⊂q(y13U∧ 1H∃hQ ¬∧P∀edh'λ)c`b⊃i ; @@∨≤α:Qα.tzP~¬yλU∀1P 'SP*'P∀ j)$QhεE IT ∀∩A∃%'PA↔&dB≥@4PJ6.Zα9∩∧
F⊃P@L9z$*∧∃A⊂HKαqS
Zpλ∩ _p∧⊂)Qc`
ENT ∀∩↓∃¬π_4⊃↔&dB≥EHhRt$¬\*0∀λ∪qD 1Q(
823β!$c' SAIL,Xε~∀∪M↔∪!
↓'#'
1&~∀∪M↔∪!≤ααN≡εt
44!∀∧U∃8@λ 93∩⊃f⊃ B3)Zβ"dP⊂T∧FAKD@ (∩$p∞~>zaα"zp∧li∀¬ 84∧iP⊂βAN SAIL LLπ'
@xh ⊂M99∃∧r¬i$(α"*∧B]P%'P ∧DT↓≠ ⊗N ∧∧(αP''Sα-ZERLεA)≡↓'β-
∧~∀%¬~⊗@$HJB∧
A⊃∪@4⊂πj$⊃i+diQP
AY @
β∪0A)=¬~ε@4TλTe$~(R∧dz8T8h!~4-¬$λ∩`HαB0iZQ(@⊂⊂T∧D]Q&*`∪H H@∪∂ A'∂5⊂~PhP%αλ→E Hα".i uh⊂h→β⊂ ↔E P@∨'M∪¬→2↓→∨'
|@Q"λ∧∧D
⊃Q LU*:B∧\α3∩λv@εEεBαK@∪→!∞bd∪M↔∪!_X
*
E∩0$!∀∧U∃8@λ 93∩⊃f!αE∧fShεEI A(1
SE@)U(∞Aαλ¬@hPα(∩λ→α*εE∩df$#L≥
] 0↔9λA>2α&~9¬~ε&0hP&⊗BM!↓E0HH%m
≤z2R&u*∃ ααy∀dbλh∀db →e$zλxU$Dy↓P@L**5"∧xZDDp∧εE∩c'⊂)Pdf⊗-BD@]bH)j i∃*hεE⊃TεS@)¬%(t~(∪'$z5α∃uα"ε:αIthhαB3)@hεEMh 2Ytjε&2LrP%Nα8∃ (αP%'PαNUMBER~∀%∃%'λαα≡⊗RD: $¬\RV -∧λ∃∀⎇YhB¬≥H~% @ ¬∧e∀)j⊂"KαSTART ↓;PHAN@)=~A'$
JQα"∩J⊗α:0hUβ""'bg" LπA∪→_ αNJ0$(xU$Dy∞AQR1Q$
p23¬Kc"B)Yβk"dH V @+1 ∩wM ⊃ααZα¬$βh⊃hZα⊂$$Qd⊂ ∪EG BACK
α MLπ ~∃∧ -E2≤:ε∩⊗αaP@!33uHT⊂*`→)c`g⊂d¬~∀%≠⊂≡Z*α¬-Me~≡ε⊗β
@hPα33j@ ¬I A+0λH`4⊂λ&6⎇2∃α¬XεRe≤x~¬∧pβ"B*9p∧h"H)c`g⊂d¬~∀$A'.Mα0∩¬8x∀$5C"A∀λ∩TJ:α⊂#bU$#XFBα GETSEG A, ∩w≥ ⊃αDJ≡!αα8T<@13U↓Q@∧P%∀)j⊂#S)`UA
GETH@∞bt4⊂
`(α".hYβ"⊂'Q⊂ FE SAIL
IFN SAIL,[
R@'P~∀&≤Z&B∃αr*
"α)@hPα(∩J*uλ⊃hZα λGD~∀&lzP∀(⊂
,SGANAM
∀∪¬))'≤A(@0hP%αN\JB¬ααJBe≤x_D-@εE∧H⊂
SP @
%∃βε@2≤B."≡@h ⊂LYzd,Jλ¬⊗αIODMP ∩w=_ α~J2VJ*aα2x92¬$α⊃(
9∀H⊃I→α"V⊂∃$"g TRP∩A¬∂β∪≤α`4(~8U%Rλ@↓⊃ ∧]@ AH
λA=_ α~J2&:8∧∧l8T¬$DT ∧M≤Xpλ @h¬RSELVE@&4⊂λ&>∧*0∩¬IZ∧5α*∧DNβH∂!8A+ @9'⊃$A→∪⊂∩∃∧"⊗@4_8R∧LdλE,@4λ∪)@9 @⊃βA!≤A%A'∨5
A∨)!$A∃=∧A∂Q&A)⊃I∨ ⊗≡@∧¬$D~1PPJ∧ %≥αλj$,,_5DD9λt@K4λ4l$Tλ$-%xXTb∧zZ"∧4~*5"∧~JE≤,tλ∀tαλ¬∩λT⊃3UλZC"B)YuSTd
α""'h∧ GETS LEN@∂)⊂αα>→↓u~"Iα4J2∀Q!∀$D
Bbt(*$,@β"B)
TH∀EERPTHYα∧D]Shij⊃ea!&⊃P)gfQP!gh∩biP'Q⊂∪%!∀ fεEαd))-λ**⊗↔∩!)"fαDX BEFORE T@E AH∂%
↓+#≡A
⊃β≥∂∃&Aβ(4⊂λ&∞⎇∩∃αQ`H$%N-BR⊗: α2>N,9α
@∀
DDM4λ∀l@u3U↓Q@∧P%∀)j⊂#S)b-_CEibU-⊂#⊗βE IN TEPC,R∩∩m%ββλαα& 2 ∃≤,qQ J¬99∃∧
@
8p3P)Q B(∧ TTu∧ ⊃∀pj*#"B*I⊃h∃
E⊂∀qizQb"'~tR5λT∀⊂ 'U ab∩$ibcCE#bj∩ π2: REMAP TT, ;LET'S SPLIT
JRST GLSLZ3
GETHG1:~∀%≠↔-
↓(Y'∂¬≥β~~(@@@@@@∪'∃)≥~d↓(X~∀$A⊃β→P~∀∪%∃→β'∀A)≠!X∩∩w→→+'⊂↓)≠ ↓β⊃β≥9⊂@U¬
)$(Aπ%¬)∪≥∞↓)⊃
A!∪'∞4∃:α∩m⊂~⊃∧z→αε4qαNεL`4)↓α↓↓↓↓J*NA∧12*∞e~⊗P$KZ≡>
∀b∃α∩⎇:1αεuIα*∞`h*J⊗αI∧<C!→%∃≥D¬`HH↔:$-∃0 'λ b")λ!b'a⊂ i"bλ$g⊂$⊃i"FEβE#f)S*h]∧Tdh!$U⊂.!`S''j⊃bj⊂$∩c`λ SEGEENT!P_~)∂⊂∩Ne*¬hεlzP∀2(⊂eHpε)f∃l@
IFN @'¬∪⊂@2Xh(&J,b⊗εN*αR6B~`4(ε$b`∩¬J@¬V!"B(`dbP∃*∩"i⊃!&RDB]agf∪$idgS⊂"*bH*#P&∪a`OUT?
JRST CDSLX0 ;LO, GENUGIN@
A→=''β∂∀~∀β!)≠∧A%!0$%]""&M∧JMαεdaαBJ-"Reα∀
:α≡h∧αj¬xTu∀(Q!∀L$~i∩¬%EFpHKαh∃
+23Qd U4u∧λ(∪∩*J⊃⊃(λ$j⊂*∪β SOLT@
~∀%'⊃@A@0HI`~¬IλR∧D→~%J¬(_4*∧9yd$MI→t`*h
⊂)Ip⊂ %⊃ B2J*uλ⊃hZ⊂∧#dβE
CHK@⊃∂ p∪≠∨Y
AλYM∂β!∧p4)↓α&∞εl)α"β∀∀hz∀∪C!↓(∩TJ:λ⊃s
9⊗Mβ!∧λλα)Yβk"P⊃⊗)c`Q ¬V
CAME @ →!M∂ 0h ⊂J *%≥αλyE≤@⊗Mβ!∧fgk⊃P"⊗)Q`b`_T
∪π¬≠
AλαbBN≡-BP$!∀∧U∃8@λλyα)f-
∧@
MMP
A⊂Y'∂β9β∩$KZ≤DX92∧D~8T:¬h→DL$~I∀`9β⊂ ↔OR@ &~(∪πβ≠∀A⊃J
4<@P3#!∧α(∩J*uλ⊃iJpε-~βE JRSPλA∂∃)⊃∞b4⊂λ$Q(te≤K&C@!4q5⊂*⊗∧BDY`↔RLπ⊂~≥∧B&N⊗8¬B¬≤βh⊗HZSh∩*D∪u5∧λ3Q⊂∀h i*λ c`dSαλ
∧∪
_∞J∃⊂∧¬"`Q!∩∧U*:B∧≤β∀sε εE∧Sek"P∃*⊗)cPb"cεB∧fgk⊃P*⊗#βE JRST (FRAEAC)
α
GH '→h`t
∃t∩∩`.,r⊃α≡2α&~9¬~ε&0hP&"JdIα
⊃#!AYAα↓⊂K]y→Db¬(X∀"∧∀
4MD)~B¬≥J)∀`(c"QiJs⊗P'↓23⊃λ∧∃⊂a⊃,p "Pb⊂!j∀$g#@⊂e"⊂*⊗h"P$Uε@
ADD@∩APXD@D$∩wπ∨9)⊗J ∧¬$zλ~4≤L⊃Q L]X¬⊂i
H⊂
εB∧a`dQP*⊗⊃λQD]Th#h⊂⊂c*"iλ"hλCLAMATILπ∀[!=∪⊂~PhP%α*∃~Qα≡e~2j∧hP&⊗BM $$¬\20≤@c"C! 1S@
823⊃"C"Hy∀s⊗F↔@∧gjU)j)⊃d)f&LFA∧bV$jεE⊃d∧SLM1:∪βMβ∪ )¬a}∞>∀)αVVzα2>NαAPE`Q!PT≤J9EC∪αB3jZ∀p
)λ!b)f∪YεE∧Ql jεB!b)f∪Y≥∧`Tadm⊂↔≥`g∃jgP&∪ijεE↔∧AεE⊃d)f-]gjU)j)⊃d)f&LFE∧e∀)j⊂#Qj λG2
GLSLM3* ASCIZ \?REMAP lost -- no jkb @MYWif↓CmCS1CEYJ0AeKiIsSMN4⊃0~∃t∩∩`.,r⊃α≡2α&~9¬~ε&0hP4(Q*4<h→SP@ Tp$Q,α"!↔u∩⊃*8(⊂4HT∃∩⊃$
p5Q(D⊂π fQiP#'T⊂#bj∃$g#FB)`R∧TdhλBIT \MAAH '¬`4*N<
∩-e!PE≤∀Q∪H⊃↔2¬$λT∧DLyλ
81s1)Jλ⊂P(9h⊂1JH4H∀jZt⊃3J93sC!*p)α*94⊂R*D↔∀v*;β"Thx4⊂∪G!,α"!∃Tq1$
u0 h⊃e"εE∀c`bl∃≥∧idV!$j⊂↔)`λB\ ;@'=≠
A→='$A5∪∂↓(ααVε: αR=α≤Bε:≡*αR"&_h( (!Q#K[4λ4|$Tλd⎇∩λh∃≤Dx_B¬$t
$,D ∀b∧∀ d-h∩∩(yλ⊂q(yαbg*∧A≥]Nβ THIS CODE @≠-~Qα
*α&)α$B∃αIzr¬≤XyT,UD⊃PS[74¬"∧λ~2∧dYhu$B xb¬$λTαe≤λ$∧4LHW2∧d¬
"J∧λ~2∧tXx∃$MhT∧|2λI∧M~aQ hTHJ$LE7!PTLhT¬≤→EEXh!→T⎇∃9∀¬%"F⊃P@L9z$*¬JA@HK8iE-≤∧ td" ∀<B
8T<LYj@hP∀ %∃≥D D%≤8*PhPα2∀J+H⊃∃¬ERPTHYα".h:αi)"SαT HIGHEST ADDRESS IL DOSEG
HRRZ D,.JBREL
HRRR,.JBREL
ADDTT,T
CORE TT0∩∩`.-BBε: α2>N,9αN≥∧~ε9αDz2↓α≤zBeα|1α"&≤*≤4(Jα*JN α2αN≥∩T$¬Z↓"J⊗l*6
⊗⊂¬B∧≤→`u"∧It∧J\βh∩)J∪h∩ ~q1h%⊃"B4hZ⊗H⊃EA ¬∧dSα TMPC( $∩$p∞J⊗!α&9αrN"I∧2& $QQ J∧8→∀λh!∀α∧U*:B∧dJ85∃(Q!∃∀X~α∧"βα"'dεOW MAKE A @⊃∪M∞A
I∨⊂∃ααI∧*¬(X∀"l→`λλ→βb"FB∧P%)∀h⊂&"∀ai*FB∧ibj∃hπP F, ;TLπ!&ZD`A!∀zRε∞αJ2¬-4λe∀|T u-∃8YE$4kβ!↓(∩TJ:λ∪⊃
8tU"!↔h⊂ gH+bP&Uij⊂&PebP$∩ibc@ Tπ%∪)¬↓→
@!A∪&↓1⊗JzH4(~8U%TT
4<h→PHK8¬q$ Sh∪ @dεGER K@≥∨\A)"*α"&≡E~⊗≥αt
6∃∧hP$$⊃↔4L2λ¬∩ ~h∩4d Ss@⊗Vα@%≡0A⊃&<A6N⊗8∧∧<-J4∧4eX∧rλXβ"B!⊃ ∧]@⊃*i$g⊃P⊂λ@'U'!≥⊂RAβ≥⊂Aβ→_↓)⊃
AM)+
↓(∞∃≡4(4(⊃⊃⊂KZλIt`(αP ∀O IT GMES BYEBYE! ⊃βI∞BR~(∪!∂!(A @0hRt$↔8T`(α⊂'cλ$c"P∀`dfεB$c'∀`df⊗⊗β
SEPZ TT,
AH∂%
HA)(X$∩w
→U'⊂A∨1λA↓∪≥⊂A'≥≠≥(4⊂∩A∃I' A→⊃'π%*4∃→ %!&bd∪
≠%
DααQ0$KZ6ε.*α¬αhZrαEz)∃$)HRJ∧α∩4hXh⊃∩λ~λ⊂R(q"B( *Tq⊂∪ )ai∃FA∧fShεE T,@10NAI↓ ;USE D10FAM AS HISEGL¬β≠
↓)≡A≠¬↔
A⊃%'∞AU≥∪#+∀~∀&e~!αQbiX$%\
MαIyd:∧~4¬,*z(R∧∀Y→d:¬(→d$|UebpHαB4hZ⊂π&Iλ*∩∧DNβP %2↓)≡Aπ∃(A≥β5
A
∨HA⊃&<AαN⊗<j⊗ 5AQ J∧αQPiA ¬∧d∪)"P*) ;GET WMRD CMP≥(↓'∪≥∞↓1)9 ⊗⊂hP&6>4jMαPHH%nεt!α6V≥!α∞⊗ ∧∧
∧α∩+*81h∃ λ5λ⊂I_c"B)
TR(
%⊂⊂qizQk _CEibU-⊂#⊗βE IN TEPC,R∩∩m%ββλαα& 2 ∃≤,qQ J¬ z∧R¬¬A⊂K](ZE-∀d
D`4⊂sqλT⊂∧g HISEG
P~∩$p∞⊗: α0≤2 _d`$∀p2)A ¬&"∀ai*]αej`∀STR @7¬'πβ4↓9∩⊗¬*J&~β→∀dh∩∩*81h∪ @ij⊂⊗H,gjP⊂i"P)U) g"⊃b⊂FE↔,BE)PR@bl∩hεE)PR∧e)∀h⊂&"∀$)P⊃
λ
¬:$∩w≥⊂A∨A%
≤AλD`U⊃∪M∂≠9(~∧~(_w54↓→∨¬∪Q'∞A = ]!∞↓
R
dZMα∩|∩&BN8h($*:T∃%IA∀d|)~E≤:λHU≥ Q!PD≤yj5$h¬∀aQ@εE≥Nβ; NO MORE CGNSTAN@)LA!¬5∪ ∩R,!αε~αHU∩¬I ∃~∧α3@⊂∃$"P&∪βSEGQ/%∪Qβ¬→∀A¬∪%M(A!β≥
R4Ph (αR1F∃α-FEλ⊂⊂⊂-⊗≤¬0~\4⊂@@@↓→∨¬∪Q'∞z@i$%@9it`%6Q4I@P≡V@> BITSGS ARE @→∨\~∀@@A!β∂∃+ ~∀@@A$zA:B8πSj@@εE⊂λ⊂⊂$c⊃bP ∀OP.PG
XZ-CEGSAZ,Xε∩`.α8T*∧α1H
I⊃0 "H$iP S'j$"T⊂)bcSbg*∪ ¬F@(αα0≤@H⊂
$∩iP QbFE∧Tbcjhλ-)εEαih!j∪βP JER,S@3LY6E5∃%≡D@!→∨.A%≠!+∀)&t∀PJNB∞∀zQα
M 4(_*D)∩pnA_S∪pi4⊂U∀hxtjThXtr6EV!"B*81u4∧¬A"B*:⊂q∪j∧⊂R5¬Ju⊗h$j⊂!∪'aenCE IFE TOP.PG-8XA ∨ ∪!'∞tzb
∀$Y⊗2≤)2l4PH&Nε∀qαn∩|∩&BN8∧¬≥¬Xhb∧$α1∪Dzλ∃sj)w#"A⊃10(∃e#bP∪-"`∩SG @≥¬%)'∞A ↓∪)'≤~∀$L*bBVt:∃α
$∩2.LhP$&2|∩&@%8sSkQ!∃hJ∧∧αβ\YhB∧|d¬d,E8QPBα∧∧¬hKαq3HD⊃qB)_Qq(
ItTλuαm-⊗TbcidVαλ
¬:$s≥λαα0≤2 _cλhαR1F%⊗c"I_SH∀λ_p∧g#K⊂( cQhhεE∩c"P(⊂c`g#K⊂)bcUh⊂↔εB,¬∩w∃_
" xb∧Ld∧C!↓ ¬$c⊃P OBIP '∞α`&NB≥"0≥α (U∩e8ε4eKhVQ*)hH
Iuh∩)Z∃0 "Jn@
PG% EXPUNGE BRERSG
EXP@+9∂
A$zA:B8h ( c]8@λ
:α"$iT⊂#aa∪i%P#Pa!b)λ!aa!Pi⊂#aPα ZZZ CCBFLπ⊂≥αURaα≡≥~Qα
$⊃1α2EB∃≤t d`*∃0 dλ'_ *Td⊂'λα0P@+M⊂A¬!U%!∞@⊂HA:LaαεBα)e#
λZ¬∀uF ∧-¬)jC~∧X∧TI@i_P"T'i_mλ i'i`P&iQc!e@ @π⊂⊗N<2≤XQ!P@*u0U
Iλ⊂ bQd¬ENT TABLES
λ∧vvVαα~>Jl
Qαxd¬≤,yXT`*λ⊂
P&"P∀∂')bcT←⊂ ↔OR@ &X↓≠⊂~∃∧20≥∩λX∀9λ⊂ bQd¬ENT)
∀vβY`_KE`∞!→α)DXOd∧@∪'PA')%U∞@%X∧Q%Dλ∞`U'bdaH∧¬∀vβY`_KE`∞↓∀⊃P DQ)"bP∀h∧GRAGE (BIPλ@@ qeαNDzV"⊃∧∩∃αy`λλ→α)gTCE_ 6βX%@"βHDQ,∧c$V'*f@ SPORAGE¬
;8εv∩h8h∪
_%
→∨≥U~A'$zJε≡(h!mmXIQ9TL∩0&
L:2V5∧B⊗ε∩-⊃αNR⎇∩ε≡∀hQ`≠[1⊗Bc ~;⊂M≥→X$lB λT$X ¬≥$z(∀<(Q'3@7b-F14p"*84H∀jItP1hTλ∧!$U⊂→Wλ)`λOUL@ BE OF ALSG)
;;; 4.2 VA VALUE CELL STMRAGEE @↔∪9λA∨$↓β∃∨)!$@Q ∪ ⊃↓ ¬cJ∧βs@⊂⊂d)gTCE_ 6l∩fL@ J∩λ_Iu,∀HUU¬∀X9∃≤Ly`λλi∪sU)Zb".jI⊃0q$λ4Q#!πnnb&5β→DaV∧agfT&"l L¬+≠¬∃%&∩∩$∩vA≥=(A3P~∀`-β0∞a⊗iHB(Kα1∪jXS⊃+*
Q0r*93s@⊂⊂βH∂∧b⊗aαu*6
⊗α*0KZ →U∧dYXT`*⊃1β!≥]]DLU_DDUe*abQ∧¬∀vβY`_K%`∞%V+H"(_⊃∀Q*:h∪qDλ(⊃⊂*H(⊂
,T V⊂ U'b]εB≥]]DBP⊂⊂⊂∀d∧AST, QFIXNUM0A#
→=→+~X↓#¬∪∂9+∩X~(p
mlHH%αF≥J6
>baαFJr∩>UD¬
*(∃JBλ∧2
YRk∪GaαE≥MNβ ∪≥=)αA$BεAααI∧-≤Tλ∃$|β4h @aa`∃PY CONSECETIP
A5∪∨%d~∀`-β0∞a⊃3∪ph~⊂∧gg∀P g"λ* λES NUMERICALLY ENAH∂
↓)⊃
AAβ∂
AQ3!
\4⊂∩)YY`~¬I ∃~∧9yTl,j@¬≤DzYD"∧(T∧\-
@∧@sP dTh∧ENT WATH T@E D@
∪9∪!&|rM↓ →b¬$λQPC[50α∧∧Xie~∧i→D*Jλiu∩¬IλR∧)zd*¬8ε3()s∀k∧λ3Q⊂∃βITH↓→∨πβQ∪↔9¬αNf6%!0 (%j4,* J0hRh8T*¬λ∧v)Zα*εEβE)h!P'j⊂)U∧AεE∀j≥∧DBDY`∪EGIENT TABLE
∀@@Aβ
∀A!β∂%_
:βα0IIpr`⊂∪αSEGS ;FOR PAGIL¬≥α≥JNB⊗h¬B∧≤βq⊃$ 3H∩)@$j⊂)Qh∧S UPλ
(HH$%@4
DD4q(
H0S⊃*4⊂5⊂∀*g⊂*∩d¬E.
λ∧@@@↓∪
≤AAβ∂&t92l4PJ&→Eb&
2|~-αh∧q(zc"B)_LK⊗a⊃ ¬∧iU ∧@∪'@pλ&⊗β
¬,@Qq(
:⊃∩4j↓ .qI@i⊂↔)Qb@
$SD↓0
-%DEDhα".d-"`∩O ∧@@"dzP~∧α34
ZQ*(
81s1)@*)FEαdc' LOBITSG$ $SPλA¬%(XI14∩w¬∪PA¬→∨
↔&~∀$∩I' ∧¬≥λε∩,∪D@ ;SEG@≠9(A)β →⊗LhP$%∩≥!αNf~a∩bU:¬-⊂α".j;4p
"SP!gb⊃F@
$ST SAR,SA 0↔≤
JM↓D
JJεJαB>→jD-∃5⊃P@! ∧R)U⊂+!V∪)P@-∩∩`.αh∀e,Tλ4,@⊂ε)FBα ∩IM(A14→1$βP&BDX@%∃'%-∃λA
∨HA⊗@λ¬∀H∀∃P3
X(⊂q)I∀c"A⊃)∀u∧ 4h ,$X@~∩$p∞&6α
U∀(⊂ lSa'f⊂⊂αL@∨π-&~∧∩$I'(AM3⊂∃2≥H$%@8∧v)XSsλ λα`b"T)FE∧BR)`∀↓11αX⊃1~$KZN $_92¬≤XyT,@U∀h¬ 30λ*T ¬!)
λ∧∩%%~Qαbβ"b⊂π _M 0↔≤bε∞4
4,<β13JJh
∩)@$j$`S&,P'⊗&TFEαDR)jλ)lY,$X@~WA+$$KZBVJ*αNf6∀z1α
dz≤]1Q HJJ:B¬∧hε⊗⊃,⊂@!U$∩αwA+%
A→∪1:αYU_h!⊃∩%≥D
∧5~β∪∀e4⊃Pjj
4B.j
4Q(λjQ1(
:α ∂RAGE (LIST)
λ∧∩%%~QαB4a2
1]αVH⊃↔5¬-(T∧4dyjTm_Q!⊂J%8¬⊂⊗,(⊗∩⊗&U`*T∧@]iS ae@ PURE SEGMEL¬(@Q→_∞ <Y∀∩HhαB"$Juλ∩(jhε&)JR# ∪ ;@∪≠A+%
A→%⊗∃¬~R>J:∃↓ I∃≥λ#"A⊃)∀u∧ 1P,FX ;IH!I
A
∪a_
V6α1P@! ∧R)U⊂ FL,FL 8π∪≠↓U%∃α4b6 5YZ0hPα21I@⊂!$cS*fV⊂ )j⊂!∪⊗!'∧B]a$cS*f`∪
λ∧∩%%~Qαbβλ"b¬ Q⊂K]9H∀Zλ∧q(yαbg*∀P⊂λIMPURE!)
∀∪%
∃αdz∀MJ8rbαJ:B∧∀~AB%Dβ".h$j⊂!∪'aeiCE $SPλA¬A&P⊃∩Dh$%@8)∀`(4V(
SqtH→αP ∪PACE
$ST NP⊃~αa∩:@ Q⊂KZα∩3I~⊂∧`f∪,TP'∪βH[a∪')9(A6,j0≥∃α#"A⊃)∀u∧λβ(λ@ 1
0@-%α∩2iQ∪@8R6∪JYαP ⊂DLλ
(HI∩NQ¬B~bAb"0∃Dβ""'c'i FXP EXPANSIH∂8hP$%∩≥!α4J¬D4bαi∀λI⊂π&DNβFLONUH
A∧"0 (αB"$Juλ⊗λi∀ @,
8π
∨$αα~2A∧*bBεu~& <βC"A⊃)∀u∧
λε∩,∪D@ ;REGULAR PDL
∩∩⊃' ⊃αβ
αb⊂π _M 0↔
=$A A∃1!β≥M∪⊂≡aQ HJJ:B¬≥¬DEDhα".j:⊃0r(→α⊂ ⊂DLλ
(HI∩NQ¬BNADIeDhα".hitH∀j∧⊃0(⊂dεSIOL∧⊂∀!⊃∩%≥D
4:K ∪K ∧D]Tai j⊂βH @'∃∂⊂⊗⊗u"L4λJr".→IB¬≥Ek$-⊂β"B)_SH∀jEpπ ∪EGS ~\αaα↑ε∀qα`"βK4jE⊗h∞kT'`∞G↓'∂≠∃_
QααH∀)⊃(∪λYβ#j$λ∀)d'Ud∧D BE ]@99'∂&10
&@QQ Mhα.q)@ ∧ IF2λ
)α↓↓αtHI`≤,h@λ _SH∀λ_p∧g#CE
λ∧⊂∀!Q hPβ"Ng]P ∀HE FORMAT OF THE @∂β% β∂
A
_∞ $β⊃0jItH∀hXpεbg∃⊂* a∪ ¬ IS RATHER HAIRP∩X↓'∪≥π∀~∀`-β0∞d
⊂∧"P∀dh
ES AND↓!∨'∪Q∪⊂≡h∧h @c⊂ f∪⊂#$bS ∧S IL∧Aβ
⊂A/∨IλAβ%∀A∩⊗∧*0∀⊃3U∧ pπ⊂*∩ ¬~∀lp
mαα8T<@13U∧
p6Q%@⊂*$"Hk@∪βRDER 822-<SEGLLπ∞ZJx|A¬∪Q&A>2α⊗ε∞@α⊗ 5J+∩∧≤βsUλ→3C"G]]P*∩ ¬ HIGH BITS OF T@⊃
↓β %∃'&A∨_A)↓
↓
2x92∧|dλ$M¬4
D`4⊂Q(
Zq1 →β⊂&`T%` NG
0⊗@YYαRα
!αN⊗<j⊗ 5E`λ¬ Su⊃$
⊂⊂5∧
⊂⊃( Yαdj*⊃b⊂&'UT¬ORDER BITS OF T@⊃∪LAβ I'&A¬%∀4SY`≠ZλεQ*)h⊂3K~β`lW
P*$"TbP b∀⊂!$j∀P i"H$g⊂*∩$iP)U) g#QP)$cR*⊂
ADJUS@)∃λA!∨M∪!&|p4)@4ε`≥H!'i THE CLπ⊂~Z,r&⊗:≤)α>→¬""*λx4l
)0λ
)u0
$Sα@
@QDX
Y9Jqα:> ∧∧Dβλ∀hXpεbg∃)P$ Uα@
4SY`≠Zλ)∃"∧)It9tj`⊂∃$ ∂SE W@⊃∪
⊂A ≡↓_
>Q∧Bε@4Tλ∩∧∀~@λλ& ∂CK HAVE ZE@%<A∪≤AQ⊃∪&A→∪→λαp4)@4ε`≥H* ∂ TH@
A→∃
(A∨_A)"M→α
& ∧∧)⊂πaeH b")⊃iiP#∩bf" IS A↓
∪→⊂A∨@pdd[≤*≡ $βq`∨λ!$j)NFA≥@;8εA)⊃%&Aπ∨9)β∪≥LA)"*α0∃,X(U∩∧βqH
I⊃(∪H[∃λ∀hXpεbg∃⊂ N↓)⊃
AQβ¬→
↓_∞→ααI∧*¬8→T*¬K~∧*@@εE≥Nβ; (NLπ ⊃αb1αN,:6⊗:%→αεJ*α2&:\*⊃α→`λ
I⊂∧iP∃βAP∩vααR"z8R¬≤XyT,@U∀h
@d CH ARE L¬∨(~(p
mm∧b& 48XB¬$βh⊂)Iu∩⊃*$⊂πg"H$ k"H* λIS BIELD ZERLεP→%¬""* ∀<Bβ3tHHαi⊂!∩h∧ (BIPλ@@ ¬cJHβ"Ng]P$iH'`∞E IFF G@π⊂⊗ε∀YαN zTdλ∪0*)h
∀λZR⊂4
4⊂π'jλ+` TH A BIT BLO@π⊗@%¬""*λ9t`*⊃3U
1 ¬≥@;8εA>2αR"∃¬~⊗≡XYe"rλ¬∩λT⊂R5∧εLH⊂I~α⊂ ⊂OSITIOL¬&A$yαRλT∧d1P
LπA$B∃α _tBlz(D-⊂β"Ng]P!$U⊂ ∂F THE BIPλA¬1_∞∞4λ∀$∀Q4j4⊃R1)Hα⊂$iH'`∞E IFF G@π⊂⊗ε∀YαN zTdλ∪0*)h⊃TI@d¬ @)!
~)Xπ3@4⊂q∀D qH⊂)@⊂ ∂BJECT IL∧A)⊃∀A'∂5⊂~QX∧¬$Dα4hλ$j⊂$TP
EAL¬∪≥∂→+⊂⊃α|r2eαL1α
& ↓Q9@⊃Q#@7nh∩*4⊂πg"Kα THE BIT↓)≡A$B∃αJL:"Qα|1αRλT∧8∀H⊂I~α⊂$iH'`∞E IFF GAHβ%,A'"⎇*2"λ→E≤@c"Ng]P&`T%P#)∪d¬ @)!
AπβHA∨A¬_ αx)$,≥D ∀`$∃∩⊃$
q1s(Yβ*≥@ THAS @¬∪(A%&A6,
0∀Lhxe,@λ∪sIK εE≥Nβ; IF T@⊃
↓β $A ∪ ⊃αM→α>hUbα¬IλU≤*λ¬∩
(1(⊂I~α)P&Uij⊂!⊃P N↓)⊃π∀Aβ "~QαB⎇~&B→ye~@Q'3@7h⊂1h→3H⊃IZH⊂
$⊃P!gg∃α@≥∪∃_
∞∃∧z→α≡≤jεJ-αBE 5ea∩`$∃∩⊃$ u∩⊃*$⊂R5
4⊂∧g EACHTπ↔%λ4∀vvv↓β%
A¬%%β≥≥λAβLA)=¬*N∃α-↓α
J,)α
&%→α~J|iαR"*α2ε~ α⊗*⊃∧z→αRD)α↑>∀!1αB~.⊗⊂hQemm∧J1αε∀zV*⊃¬""*λ¬∩
(1(⊂I~∀h⊂)JQ01∀⊃⊃4h:R0Q(EH⊃∩λZq(⊂I~∀h∩)h∩0p*H(⊂d⊃j λER
;+≠ OR NOP DHE SEGMENT CH∂≥$
&:M¬2ε"V*α∞⊗2e→1αNLj
>2~aα>I¬~εJMph($λhR≡∞
m∩-uu εβββ∧↓⊂K]IλU≤*λ~$*∧→IB∧dXjB∧D→Hb∧4H_u_h(x4(q∀G'V7oF%/∀q(y∪q`⊗M←⊗XOβE#aa⊂`i≡NQaa!b∀/VP⊃
αGC@∧p∃Uλa1UI+⊃UH$HI`≤4z ∧)5λ∃~⊃3u*D∪3qλQ"VVK'-)∧εελλεB!aa#∪βH∞zz@~∃∪%A&A
β4Y0Y7YεW'∪4W'β$-⊃≥⊗At~∃55hz{55i>Rb~)∪
≤Ai54M∂
∞∩⊂aαjjSivjjUy5H4T:∞ εt
5uvURh4
L2N∃α@¬BZbλx4∧4ywSl<8(d|⎇K+%Ph*HU∀l→aPPh)_d:∧x8$Dt5Xt≤∀8~"b¬x~$b¬8x4l
)4¬,LID∧d⎇8T∧|r
Tt];QPPh!Q hPQ!PT<::CPH⊃⊃∪\<4
4,<XYe"¬H_$d(Q$ααα _d*¬λ_tLtuD∧∀dx92∧u8Xu_K8iu∩¬λ_tLtt
5M≥HYR`h!⊃⊂HK4
DD
λx5≥"
H∀∀dT ∃~¬8ZB¬-∧λ∃"¬*Yb¬$→XR∧∃∀ ∀tMEaPRα∧∧∧L4d
∧<→hreXQ!∀L3∃D∧∀dx92∧u8Xu_h!→∀3∩K1PPL*H"skX*D∀d8∧b!↔q∪ph~∩3sDλsu3JH4H⊃IzH⊂4j91sR)hh⊂R*D⊂S∪h→tc"A⊃)⊃pj:λ⊗Q*%↓Q@21Id∪∪pI~∀qk∧∧⊃ptjD⊂R5¬Eβ!!")⊃h:uλ∀jE↓Q@")λxtuλ
;4k¬Fβ"B!∀⊃ptjD∀p4EI⊃h8S4Re8ppTh~C"B!∀⊃ptjD∃Pk¬E⊃ppIZRjqh8UPc!!")⊃h:uλ⊗
hkε↓"B"$Hptu∧ 4lK Eβ!!")⊃h:uλ∀k→+∪¬HppS*)jqph*v3#!!")⊃h:uλ⊗λ+∪¬Fβ"B!∀⊃ptjD⊗⊗⊗EEβ!!")⊃h:uλ∀k⊗Kε↓"B"$Hptu∧
⊃V¬Eβ"A⊃)⊃pj:λ∀⊃J5↓QB")λxtuλ
λS¬Fβ"B!∀⊃ptjD⊗⊗∀¬Eβ!!")⊃h:uλ∩(jk∪λ%⊃ppIZRjqh8Pq∀E8ppPh~C"B!∀⊃ptjD∩1V¬I⊂KλxpS4I1"B"$Hptu∧ 1S E⊂K⊃h8S4RaQ@21Id⊂R1ij3+λ∧Hβaijλ!'⊗&!⊗#aP&i%UQaa!b∀εE∧f⊗,!)cO↑f,,⊂icFEαDR#aTj_P'⊗,!)cK,,!⊗∪⊗⊗_εB∧dc"Ha$U)cV⊂ πCST BIT,,,0
$GCST BPS,,,0
∩∩⊃∂π'λ↓→1~X0X`~∀$∩I∂πM(A
1@XXX`4∀∩∩I≥π'(Aa
1 X0X`~∀$∩I∂πM(A
→@XXX`4∀∩∩I≥π'(Aa
→ X0X`~∀$∩I∂πM(A X0X`~∀$∩I∂πM(A1 0XX`~(∩∩I∂
'(A'@XXX`4∀∩∩I≥π'(Aa' HX0`∩(HI∩∞∞≥!αN∞⊂¬Bbc↓Q Jt 9∀dbλz2uTX∧C!!21SDλppu¬9Tq1j5+Kλ
X4S@⊂↔↔⊗caTh∧,[=Tπ%∨≥≤AπεAM∂9(A)β →αA→∃≥≡R@∧αE≤α∪u)Hλ⊂Q$4ε')QciV-JnBE∧WDXEND AF2
Y∩w∃_
" xb∧Li`¬∧y→d8h!Q%∧xZUHαC"J:⊂q∪j∧∀u⊗-ibcSbg*∃ a&"WF@
~∀4⊂∩(hR&~9¬αε≡→hrb¬8∧⊂h uλ∀k~c"L&∧α)∩ ~q1c!_X∩∧R$f'aO↑W∧DNdπRIGIHA∨_A⊃&<AαN⊗<j⊗ 5AQ hU8⊂B¬¬8ydKαH↓⊃".u λαibP∪'a`j∩dπ@≥&↓
∨$AMβ∪_A!∪'∞↓(
ε2L"εR→y`hU8⊂B¬¬8xD-∪αH↓QTp!∧
∀qq+
∞H↓QTp ∩λ()ch∀'_
0
~∃M+¬))0∪¬∂%_
:&t9α>→¬αVJ∃∧b&NA¬~fNR,iα∞≡$(4(Q!∃∧pSu∧λ4TC!! ¬≥]Nβ THESE COL¬')β9)&AβI
A¬+%→(A∪9)≡A$B∃α∞|jB&2-⊃0⊂@ NfgP*$"VP"`∃ST BE D@
∪9λA⊃∃%∃α4zIαRD)α
⊗t*~&Q∧z→αRD)αBVα9∧b∧EAD-OL¬→2A→∪⊂∩∃λ∧αDID¬ :R5⊃*4∀Q4hZUQ1¬∀λ¬∃∃
∃∃∃εB≥]]@λ⊂⊃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃εB∧¬αSUBTTL ERROR UUO HANDLERS
.CEE E@RIH
(~)!%≥Pbt4PJBVNDQαA2≤
ZaTHI`≤-*)u∩¬λ)∀`& εE∧T*id∀⊗ iλBU)bbH i)'T→FE∧T*id%λ(⊂MSGFCK
λ SKIPN V%PR1
BRST EPRLT2
MOVEI B,(AR1)
λ CALLB $1↓,K↓Hb~∧∪)%'(A∃!%≥λL~∀4T*BJ:#⊃`⊂MIIr∧
&⊂ε&λλ_∧@
PUS@⊃∀↓ XI!I∪⊂→DhR⊗BJu!Mhε≥"JQ↓λεre]9≠∧)5λ↔∧∧7↔#!↓4∪t∧
λε iFA∧e∀)j⊂)∀h,⊂∃
λλ
(hR⊗JJ⎇⊃Eh→Yu (αfP*∃⊗*`∃TTSV
IOVEM R,UURS@,4⊃⊗J⎇⊃Fi@!→%≥αλ¬∃¬Hαi)'T≤@ ;PROCESS A↓→∪'↓%%∨H~∀%∧RJNQ∧*J>Iλ$%@4¬∧d4T@⊂⊂dεD LER3)
λ P@+M⊃∀A1≠'∂
⊗~∀∪5_∞@4Y∀∧"bβ(@∀∀∀@ ;D POILTS TLεA∃∩~Jεl(4(~
U≤DαH∀¬Hαi)'T→FE"T'i_`N∧fgk⊃dP @,L¬∪_~(∪∃%'P@dY↓m%%%Q_
`(β"C!πnj` ZqqR)H4h⊂iλαae@. GET VALUE @∨↓≠'∂
%→⊗M∧J1αε⊂ε∩∧h¬⊃*$⊂r⊃(e` NG BOR
λ;;+T¬β→∪⊃∪!2\α↓α&→∧ α2≡≤*I1α≤J≡ 4→D∧@H⊃4J)tH⊂(j⊃0@⊂∀ ¬SDORING↓∪ ⊃ααIrαEE∃`hSαh
@; SAVES A.
λλ
¬≠M∂
π⊗h∪⊃%%hAβ$bαbP∀m8xdL@⊃0 FBαSFA⊂∪∃' ↓Y≠≤:~
DHI`≤@02q$
u0 "H g⊂)Q P'"Uα@$A≥ ∩M∧J0∃4y8T"∧h∧SiQ TqH∀α,α!⊃,¬P&T!&'eK⊂!*jλ)j$f∪⊂"'P∃αALIDIP 2A
⊃⊗∞Xh ∃≤h⊂ ∧ 4qqHXX
PU@'!∀A Y5!~2|X$%@8∧ri~∀h∩(d⊂ε$iU⊂ ∂F FILES *NOT* VALID
CMSGFCK: @!=!∀Aαb6N≡4~,4λMαVN∧
αdλβ"B)Yβk"dH V∀ T_TFEαh*`∪HJ P,N@π⊂≡h∧c!∧fgk⊃dP!,QH'∂→∪⊂∩⊗α1P@!4⊃4i H⊂λ⊗⊗!`∂NS
∪≠=(
,∀λ∃∪
J~DdM8AP@LYzd,@(⊂4F∃α+&iQc$f"TFE∧h∃i`%⊂∀⊗-dgS⊂-a Q⊂+ f∃bP#'T⊂
@'≥
∪→LC; 4hP&B≡ααA2∧hP&*J≥!α6N<2≤XQ c\X∧TI@i_ LERF@%¬≠
AI_∞I@_⊂λλZTTU @⊂"`∩R2 @→'A%(`A
→'!∀*P (αC"J:αa**∪∧b`∩RFRAME @
∨%5β ∩LhP4)@4ε`≥H εORMAPλA∨_A⊗J∀2Jε6+P4)@4ε`≥CE_ 6βYαmFh∧∧`)tS0)D∃⊗4λT⊃0 )∪βR (ERIN@(αaα2⊗α*"b∧X¬⊂e@∀@
;8εv∩∩q' |X0y%%*J9α5∩0≤@(⊃4J)tH∩(d⊃0 $SαT>
8εvv∩$I⊗J∀2Jε6(h ∪[4εb!↔∃0
gO∧@ ;AD@ %M&A>2α6N≥∧J0∩¬)_tE" λ∀d@εE≥Nβ; <S(E↓x$↔8d`:H⊃4I→β*⊗⊂∪ ¬R3
λ∧vv@Xh ∪[4ε`⊂⊗β2P~A∃%%¬β⊂A)3!∀Aβ%%=$@@"Lb1αXYR¬∀XeB∧5⊂kE⊃ ¬≥@;8ε∩%e~Ai1cbε∩∩∀*NMααy∧-∀TλU∃∀z λ @aa`∃RR@λ|4⊂ mmXH%∩⊗α*$5∀→XPhSαh
@; 0,,<ADDRESS OF E@'≤|⊂∀ u~⊗∃α-∩J
ε h $
-∩J>IKP&BV≤AαA∩-*6 4PJ"J2h∧¬≥αβ
∀¬⊃ B4
Zpλ∀¬Ki⊃4J(TP3([".tH→β"'fS*fa"T⊗⊗"h∪h!εEαh*`∪H P,40 0↔π¬→≥∨(↓⊃β-
↓→⊂@Z`vAπ∃
A¬I!%∪≥P~∀&¬*N!ααb∧4
d*J
Jj∃uUS $$¬\b⊗ 4zIα∧|dλU∃∀h∧P)X((
@`j!dλ* $iH$g⊂!PibP'Q⊂!d S!bFEβE$c'λ$j)V⊗FE∧W∀jibjλ-W ∪PIC@→$0Y1εZE:~∀∩9'+'PA6]≤"→E1e⊃UBthP%:N-~⊗@" 1e≤$f!Be∪vPhUβ""'bg"∪βF IFL ITS
IFN @10+D20, PUSHJ P,REAIND 8π%
[∃_
ε
d)α&:$*JJV¬"L4*-∩6Ifλπ M≤9~∧r¬λ∧v)XA"B$
pr4λT⊃0TJ:c"B$∧∩TTjD*∃
E!"B)*Tu⊂
**∀FB∧A≥]Nβ ERRLπ$A¬∃)+%≤8@Aπ∨5
A"-∩∃αRzαBεJ4zJ5αqα⊗J∀zIα
∀*ε.>-!↓"J-"VJ8hQemm¬"=α⊗∃∩N⊗Q∧zIαR⎇↓α2⊗4*1%9ααZε2,)αR=¬∩⊗BV∀qα~J|iα⊗J∃~⊗AαLqα¬8hP4*⊗∃∩JR9PJN⊗RTiα:>
*&P4TJ~9αM"M2lhP%:N-~⊗QαXrNB&≤bI12D→5FthP%:N-~⊗QαXrN∩→
a2I]¬h4(¬u~VN⊗"αm 58Hc∩bJ&s¬hQ+PHK8Yd"∧xd∧L4d ∃%_Q)∀4rλF∪α\F"αb¬λZ4DR
¬E∀,→→e K8(Rl,h_$d
→e$-**U¬%1Q M¬X∧r∧
⊂#!↓4rr* λ⊂#
YTQ0)A B(
4r∩D
⊂rλXpp
DB]ad"PβK FOR ANY @ELAYED "RAAL TIME" INDS
↓POP P,A
E@%Hdt∪'-∪!
A∃%%)≤$∩w)≡↓)∨!→∃-⊗1bα6Iα∃∩⊗ε-∧zVQα|1αε9∧*JJN- 4(¬∧RJNQ∧*JI@HIf≡=∧∩JεεX∧¬-αλ→b∧-**4- Q)E≥¬*FβPM
Z4B∧i
αd≤~J%$p⊃↔5∀-JZ$b¬It¬$⎇∧ D-Q3λλjSs I4tλλZTStAQ@2Tj∧⊂+⊃*)3R,↓Q@∧h'T⊂#$(!`j)∃'∧D]Qe)P'⊃bb)P∃'P"$∀'kP#∀'fP H∃))bU⊗j) Tε@
CLSPRET8λ
∧∪M)4A∧Y→'¬∩⊗@ Q!∃≤\~λR∧∩Jee%∀~↓⊂K\→jdl\T¬%∃≤Z@*JP4β!↓(⊂p)I⊃H%E⊂J#!!33uHT⊂+∃HZTS∩*:β"B)Yβk"fH V+$Th¬OTIEH
(~(∪∃+≠A
AαY1'!%P~∀&E∩Jiα ¬D6@εE∧R))-⊂∃⊗_T*
F@
CAIE T,HACEL¬(∩∩m≠β≥LA¬+∞αα0≤@H⊃4J)∩4u↓Q@∧P%∀)j⊂&∀h)"jβE MOT¬∃αλ¬E (αi)&∩ijεEαh*`∪HJ P,NAH∂:α1P@LYzd,Jλ!E-*)DM≥AQ M¬X9∧R¬¬K∧@sP FB∧h"iR⊂(⊗!S)h ∩ET ∀∪→βεA↔A≠''∪ →2A
∃→∨
∪=+&AI%→∪'P@ZA↓1β'
↓∪⊂~N∧*ε@"λ(T4⎇(T¬¬∀x8T,$α3Qd≠ εEεBβ≥b`∩RLπ$fA∃%∨$gAβ%∨Hg
AI_∞IN0h( (*:T∃%IA∀-∀→jBb¬8Z$L@Uλ H4TC∧ ⊃0DaQ@εE≥Qi)'i]X∧NβPRINT OUT ARROR @≠M'β∂
↓
∨$A=%↓β≥¬%24PH$%@4 DM≥∧λU∃∀z*2αDβ⊃4J%λ∪⊃*&hε⊂"T$g", SE@%%_
Q$hR⊗JJ⎇⊃Mh⊃⊃⊂K\8→Dd1λ∃I_(λ∀
Zp∧%⊂∀⊗"`∩RLπ$f~(∩∩$KZB>→jD-∩λ¬∪d∧α"`∩RFRAME IN D
∪∃U≠!
A¬$bYπA_∞B!Q LLzhTJ∧∃JE∃-I↓⊂K]λ∧Q*@ ¬ND↓β ⊗RzjR-*
$J∧α3@⊂∃$"FEαe)`⊂∃⊗)`⊂E@π¬∪≥⊂∩∩`-∧j&∩∩d)α>→∧
0∩∧X∧TI@i⊂&bTi`cbCE 0 A1( εR-∩BJ$HI`≥≥λX4)3Q⊂∀`k"iH εE∧R)&$P⊂i_V→__⊂⊂0 0↔∨U)!+ ∧∧4LHZ2∧dα4u∧λSt@⊂∪icP$Sα ARD~∀&d"∩¬J@YYP⊃D``@1c ""α7"'h⊂$ TP!"bSα S@)¬∞.⊗ ∧¬-αλ+∩∧4TSj' εE∧R*f`⊂E TT,EROR3C 0↔I%¬λdααBVNE→α6N8∧¬ 95∩⊂∪αO LERR OPERATILπ⊂_Q!∀E∃+$∧
@J⊃¬⊃ ∧]fUij⊂#⊃h∧CH↓)⊃
AL[ "¬∩⊗NNLz0∩¬It¬¬∀→j@hPα4u
*λ⊂4F∃α-adV!$j \X
~@X∧∃e@ ∧]h∀ ¬CEDE @≠≤9α↑~Iα∧
∧ ∞d∧¬∀∪
β∪
AQ(Y2-∩J`:β( YB]`ERR DOESHO(ααBJ&u!αε9¬→6⊗@λ↓P@!(⊂λ*Td
P,@!∀J0∃ Q!∀823@⊂∃*⊂SERIN@)|Zff∩m'%∪9(A"
→αε9¬→6⊗@λ∧∧m≤qQ J∧αTTjD⊃0 'T→cεEαd∧DB↓αP∩mα
fελλ⊗_T")] 0↔∪_A∪(A%&A2-∩Iαz λ Hαi→Vλ* λEN
∪π¬∪
A%!2-)→e%@hεYYB]P @ L¬∨9mR⊗J=∧
~∧i_Tdλ∪1(→β)FEαP
UMPN A1%∨$M∩%XαR"∃∧jN≥αM→αε9¬→6⊗@λ↓PD4StF8nC"A~u∀U∧λ4L ⊗⊂_T") 0↔≥=)α`)¬""&M∧~2>
∀*JMααZT`9λ∪⊃*@ ¬L VARS
EROR3E:∪'Q%(AβHbP∩NαJ%$≥!Q LU*:B¬,h)∀`(αεEεB ¬ROR3F:
HRRZ A,1λD)~∀%!+'⊃(A @1%αJ&:_h ⊂L**5"∧X∧Sj&q#"AQ@↓Gq0 )∪βR5 EROR5F AROR5A ERLπ$mααα⊗JJ0h ('33@4∀⊂ 'PβESS ERINT-SE@%%→(Aπ=%%πQβ¬→
↓∪⊂~R-∩JVBαJ0hPβ"Q**StM'↓33uHY(⊂
**j`∀TSR¬
MH∂-4A$Y+U%',~(∪'π∪A≤A¬I)≤α∩mβ→2⎇9αVN-⊃α&:$*JJV¬!αRt
%,rAQ J∧**5"∧X)u∪,a⊃∪@4⊃1Q)@⊂ c⊂∩dεSIDE AN↓%%'∃(X~∀%'↔∪!8A-∃∩N⊗PHI`~∧α1H
I⊃(⊃**Tq5∧λTQ0)4⊂4h
85β"A∀⊂TTjD⊃0TI@i_DDNβH∂)⊃∃%/∪'∀XA∃+M(A ≡↓_
>Jl
1α⊗∃∩0≥⊂β"Q*)tM1G∧f"!λ**⊗-L≠X∩00,$40]
α CAIGE TT$NERINT ;TTHAS AA FIELD FROH
A-*<4(JαN.&∧qαZV$1"RQHh(%↓∧RJNQ∧*JJ>∪λ$%n≤z:Z⊗∃!αR≥∧b⊗IM∧J→α:⎇!α⊗:∩2⊗⊂hP&6>4*%αQd*JJXHIf*>∀jε1αDJQα~∀z5α∞|"∃α
,b6@: ~2¬∧zε$R`Q!∀821(
J∂ )→βb/VL≠←∪_MDXIO-H@∨'Mβ∂
~(∩Aπβ%_ αR aq,h_5zK&sb3q↔44→ET≥AQ Jα Yu (2(∃¬H5P3¬@ BE"T'i~`N∧h*iR⊂#$(*εE∧Sgk"dH*⊗∀*∃∀D]iPk"P PP ∞UMBER FMR BELOW
JSP TT$ERROR9 8π!+≤Aαε9∧*JJ>∩α~Jεl(4(∀ $4≤AQ LlzhTJ∧∃E∧
HQ!∃¬-9λλk∀∃↓Q@∧e)T⊂*⊗(⊃&'&eCE EX@π⊂Aλ0Q¬ "αH4(_8∀L:λ@πDαjcj↔TY≠@>&17
P@+M⊃∀A1βπ>u_4(~
U≤Bλ¬DλH↔8d`:H⊃pd
∀SuλXu∩3iD⊂πg&⊗F@
TRO D200 $∩w¬%_
Qα≤*J&⊗α4¬-≤X λ →β*"i∀*h"εB∧d!&∩P"⊗∀⊂TBE∧Sek"P∃*⊗*jU*)cεB∧fgk⊃P*⊗*Uh)`⊗
λ SKIPN INHIBIT
∩AM↔∪!
↓≥∨#+%(~(J↓↓:ZbV∀∧KZNBVα ∀"¬It¬≤Lyh∀b∧X*$`:H⊂d⊃dε INTARRUPTS LLππ., 4(~
U≤DαH∀¬J23U↓Q@∧h'T⊂# _P,D
SQB P;ERRIKB ERIOJ1 ERIOJ2 ERIK@∀f↓%∪∨(hA%%≠∀jA∃%∪∨∀`Aβ%∪=∀nAI∪⊂≥Z∩α⊗J&|QQα⊗∀J=J¬∧*J&>SIα⊗J$∩1α⊗∀2:2TλU∀M
∧R∧-*
%"*λZ$4∀TT∧-∀_Xb*∧Z)∃≥*TλU∃%)` $λ4SThd(⊃4IhαaRP⊃i"' IP"a'∀b∩P"T$f*RH"i')∪RP"i∃d∧C% ERNET% EBPMA% ERBNF% ERCSD! ERDNE% ERSNF% EBSLA% ERLVL% ARNCE% ERSJS% ERFCU% EBLLπ⊂JA∃%≥→∩∀A→¬Q↓_~∀4∀∩∧vlp
α→y%∃≥D
U,zλHT9q⊃4ED∃0p(x.C"G↔nb"%Hp3∪∧λSsb'→βi⊂↔∪h"g⊗λ'i⊂+R j"k⊃iεE≥N]DDP∩ee))U⊂'⊗#∪eFE≥N]P$gR))j⊂⊂`jibTP P*∀ g)c⊃i⊂*'H#'gP⊂c*"iλ(*b*∩e#P$S⊂!P*∩"FE≥N]P b⊃)"aiH'c⊂ H)dl!∩j⊂∀)U)*⊂#∪i&`j
P)j)∩g#P$S"$a`U$g#P∃$"FE∞]]P"T)'i⊂∪bii`QbW⊂⊂∃$$iP∪bii`QbP&`VP!"P⊃dk"gλ*'P S⊂"i$S*εE≥N]P*jSP∀*,T$a`f∪,P∩dSd∀Wλ'⊂$iH*$"P∪*fa"T⊂'c⊂∃$$g#TP'g∃$"FE∞]]P)⊃ch"&λ a'k⊃P*$"H)"`∀URN ADDRECS - THIS IS A CROC@⊗AM≡A)⊃¬(~∧vlp
α→y%∃≥Dλ4rλ∧u _ph∃ λαP b⊃)"`∪S OF A RE@'Q≠%β)%≠∀A∀zVR→hPhSαjnd qH∃ λαP ⊂DL. (THAS ISF'T D@∨≥∀A∪≤AQ⊃∃α! AαZ-∩N&>p¬B∧DzxU (αi↔)
3 6lA
∨$↓∪ ∩MbαR"∃∧j6NQ¬∩⊗∞⊗u!αεJ∀zIαε~α∩-HZ$lLhXB∧∃∀¬d∧≤ `∧M_Q'3@7h∪pJH23Q(D∃R0$
⊂⊃(λZTH⊃λZR0q$λ3Q
:⊂0rhXλ⊃4∧ qH⊃IJ C"G]]P#∪i⊂"λL⊗⊂"*λ$iP TijfbQ⊂*'P⊂βH∂
¬∪⊂→ααI∧*∧β∪si:4q)J⊃4@↔T"g fQFE≥]Nβ EBRLπ$Aπ= ∃α|1α&:αHU∀
:@∧λ3Q ~h⊃4hXλ⊃∪d 3Q⊃+∧⊂(∃λ_S⊃+AQL¬P≠≠ BORD20, THE MMST RECENT ARROR AS Lπ¬)β%_
,Dλe∀|T
DD(⊃4J:α)εE∞β;; JSYS AL@λA≥"ε∞8XB¬-∧ tb∧iJα`!α@
;≠8εAπ→=
⊗α*2¬$α⊃( (pε⊂!∃c#"iλF@
;≠8εA+≤*Iα→jD-∃*Z¬%~λ9∧`:αf" @¬∃αLr"&
M"⊗⊃aQ hTX∧TI→β`
:
λ∧b`J%!+'⊂ααA2∧HI`≥≤~hR∧8∧c!_X∩DT*id P,B
IFN D10$[
λ∧∪⊃¬I
AεYQ(∩αw%'↔ βQ
A∃∩0≥∩λ9t$ εE∧Tedh&λ!DDDNβIF TT CONTAINS S@∨≠∀A/∪Iλ⊂∀!∀∧823⊃$
∃∪λZU⊂S↓↔h⊃P)J1+λ *4q⊂⊂βALL IPλA$B∀4λJ↓αN9~∧
∧5HU∃$)ESλKαhλJYRsSj@dε ERROR"
λ∧∩@@↓≠⊂≡Z*α~@⊃0 *⊂αL C) ;@∨)!%/∪M
A+≤)α¬αα:D@Q⊂4HD⊂εbiT`cbP⊃)'f@ THE TABLE
λ¬0∀⊃↔4,@Qλ∪hd⊂∧c'λ ∧10
λ¬∪
≤αα&@%58C∪αβ⊗c!∧h"iR'⊂ ⊂,2 ↓;PUS@⊂@HA'!βI
A! 0A'2⎇"L4λLb∩ αλb`≠∪vεCβαβ
εα@ ;GEPλA≤4⊂λ&ε$"%α¬c⊂$%@8_D"β$λd`:H⊂λ*Td"b ACS
IOVEI C,(P)~∃∃%∪∨∀Dpλ&6⎇2∃α biI"
HH%nNE*~4HT¬∧⊂ε⊂*T⊂*+gH)`OTS
α MLπ ~⊗h∧∧%λ∧!TCE SU@¬∩Aε0b~(M~0≤Ttλ∩d4R3i& εE∧SdπVEM BLP,-1(C) 0↔≤
R*λ:U∃∀YjB∧S∀λ
p∧g*⊃i
MH∂-$AαYI∪⊂≡'⊃⊂K] Iuα∧α3@⊂⊂b")"TiP'cλ)"`∪TLπ%β)%_∞ 2λ∧SjZ⊂∧g"CE MOT¬⊗5∧ 1"
Hh ⊂LYzd,Jλ5C
DiJαHhαB4
Zp∧⊂#⊗(⊂C
λ¬∪
≤αα&@%5K0hPα+TjZq1⊂⊗β(
%¬
⊃≤XY¬:~(Jr≤ID∧-∀→vd@ ¬∧PαLGSE 1400
∩]
β⊃1∧*J&>S0$%@8xU"∧β3tjD∀Q0hYβ*⊂"T)'i FOR THIS JLπ∧4PI↓:2⎇~∃↓E εβ@ ¬∧fShεE A,[44@j``X1∃π2∀2t4!→TmQ2(λ⊗"%!S!#∃!⊗h∧S@/⊂Zb4PI0∀≤→IB∧4R3f@ @ ;R@βλαα&@" →b¬-9→d:∧∀
4L@uβ"A∀λπ&'TbP⊂⊃P``~∀$X
∞Iz4*¬IZ∧5αεE.BDXEND @∨↓∪
≤A%)&~∃%
≤Aλβ⊃A2lhP&"J∀z%↓EdR≤@⊂QC!∧d ∩LLπ∩@@⊂¬B`(β$ ∪LF ↓;GEPλA≠=' ⊃αα(T83Q⊂⊃i)'iλ!'i TH@∪&↓
∨%⊗4⊂λ&"α)E@)(λ V↑ JCLBF*BYP '<!5E@aQ L-*:E⊂@ ¬∧P∩ f*∧BDXGRLπ'&A∃%%∨$4⊂λ%αT2ε ⊃⊃∪@8U1QHZH∪SjD⊂R1dλ3Su(yβ"W!⊃,¬bg⊃⊂ ∂F IFN D20
IDPB↓_
&1dλ4(→Yu (αdP K⊂π# 8εFA∪LA)"*αNBJ ∧¬
3u⊃$λp∧ i⊂aj"iβE PUSH FXP,[4∀070 ,,JCLBFX
~∃∃%∪∨∀Hpλ&6⎇2N%α⊂¬BC#Fεcβαβ
λi∀
*!Q@∧h*Td⊂#&∀⊗)≠HβE"`∩ILπ∀f@PJ& $H λλT∧ ⊃
a R$KZ≡⊗Q∧ α∞α
∩ε∞R-⊃α>→¬""*λZ%∀⎇$ T-≥8_t(hαB0h→1q(λT∧40
λ∧∩A∃I' ⊃α-∩& <αNα!↔p3V$λpπg*∀'` CHARACT@$AQ%≠∪9β ∩⊗~α&@ Q!∀821q$λi%ε↓ .pi@dεVERT CHARAC@)∃$A)≡↓'∪ "∀JQ04PIαNV∀Iα
⊃#$%@4λ∀ddβur)@ π LOTπ$A
β'
AQ_
α↑⎇∩,4λL
0∀⊂∧P!K≠[FEαa`dbH!P'∩∩`.α9tl*λ9∧
∀_:D-∃4
$-
Y~$*¬~Yu$LhqP@!(⊂p)→β⊂!V o
BRST E@%%_∞)ThP&∞εLqα
Dpλ!Q@∧P%∀)j⊂"T$ge~CE"`∩ILπ∀ht%∪ !∧αα~@⊂B"'b"`⊂OSIT SIXBIT O@≤A→→ ~∀%)→:*α∩cvpεεβ"A∀⊂¬))U⊂"`∩ILπ∀f~(∪∃%'PAβ%∪=∀d$KZ2=αlzJ*λ∧Si@d¬ -↓≠ ⊗N ∧¬¬-9λλ→β'j$⊃i⊂ ↔OR@
λ@%∪=∀jd∪% !∧A∧Y∧$KZ∩- z4Mλ⊂λjSβP &t9α∞λ~$≥HZ hPα5∪ @ ¬ B0h
@;∧∧ε↓α@
JRS@(αα⊗J&|QP$↔8t`4⊃⊃4 @i` T↓%⊗εbα≤D~(∀:α"`∩
λ∧∪≠∨Y'∩A∧αa!QQβ1AAEE∧4e¬∃⊂hPα4∃*9λ⊃S
¬∀Md↓⊃,¬g"Qb⊂ g∪βP ↓HA/>∀!α
&∃~P (αB2J*uλ⊃*)3rM↓Q@εE"T$ge≤∞α POPI F@1@Xbα∩m
→+≤AαRα*α∃MHT¬∧|α3UλZH∪sDλT∧ ⊂
λ POP BP⊃14*-∩& <αMfA→3uQ)∀⊂+ d⊃ .s*Zuλ∃j)5⊃(
H4S2)@ g"$Sdε INTO CTRING
λ IDP@ A,B
∪!= A Yλ∩∩∩wI')∨I
AαA¬→⊃α⊂h &B⎇↓αAH⊃PE@ ∧D]QdεD OF @∪
8A∪)&-λd`~(∪≠∨-∀A(I+U)',~(∪∃%'PAh`$∩w)⊃¬(@≡Mβ!A1αtzQαV,z!¬↓∧jVNQ∧*~4X:B∧
λJ$U8hU⊂H!Q$L4d ∃%~β⊗c!(αi$gM!→∧iQj-εEαidl!∩h⊂∂STAPU@&<~∀&λH$%@8(∀"∧9λ∀ttYAPPKFε#ββ¬EDλH↔:5$
JZ2¬∀X¬∃*)Q1β!↓α@
ERIH∂)3P&N⊗αK hPα4r+λR5It⊃3KA".sjλαg⊂#∩d∧E
1000,,TMPC ;CHANNEL L¬+≠¬∃$⊂∀λJ↓↓↓↓α↓12n≤Jb
&"αr-*+EhKαq⊃*@$abP∪αAME
λ 1000,$3 3 &↓≠β≥LAβ%%=$A'$
RVM∧J1α~pε hPα-εελ¬H!"C!λ4R3f@ Y∧iQh-εEαidl!∩h∧ LSIH∂)8$∩w'%∩& 4t ∩l@h⊃∀H→TqQ*! ¬∧Pλ_X⊂_⊗*&h⊂D@ ;CHANNEL F@+5↓β$~(∩@@@@@@1dλ$%N∃JR*λ∧∪i→β*"iβE 40000 ,,B↓ ;@¬3)
↓∞ =Yj@hUβ""'bg" LπA∪→_ αε%_4(Q)∀4r ~E~\F&αeXQ'3@7h⊂ "Th#i U$gg ROU@)%_
(Q!PD4R3i',B4 @h⊂ ⊗⊃&(∧DNβRE@'Q_∞J∃∧22@4PJB>BRαA0$HI`≤@Su`
(α`f&⊗P)"j∀'⊂#)∪βH
A∨I∪∂&t
1α~,rεB→y`hUβ""'bg"∪βF IFL ITS+D20
λ ∃∪→_ α⊃ ↓2l4SY`≠ZλH∀∀dT t2¬8¬⊂)H⊂4Q∧ ⊃srjZ q3JH4KtHYβ fbH i)'T)FEεB∧iadV!$j⊂↔*g%g∪hπF ERROR!\Y~∃∃%)¬_h~∃∨
→'(@4\~¬I
≥Jht∪7π%1¬∪(↓9
∪→∀A≥∨(↓
∨+≥⊂C9:~)%∪!@Jt`(MZN&b∀JQαrtz16⊗DJNB⊗u!αBBp
rt∀T*JBJ")`∪P≠:4MD)~B¬eλ∧SjH0p
$Sdε @-%≠⊂∩ε$J6)εeh4*⊗∀2
5∃SP&nNMB
&Q¬b~&2*ααVNJαα,→hr∧lxI∀4LXD∃ehβ"Q*(11I'πB6ti≠⊂R5∧⊃R3λT⊂3∀HX1⊗(λ[⊂4u
45↔#!(4R4jT,NB+idl!∩h∧ @9%→→∂¬_A'E+≥π∀A∨AU+⊂≡M
bt4(Z%%∀dW#@HαB4h∀"6ti≠⊂R5∧∃∀P)JpεdiTdgg⊃i)'iλn.FEαi`R∧VβSIXBIP LDIFFEREH
(A→∪⊂∩⊗t
6∃αα:∧,≤α1R(Xλ7↔!QQ0 '∀c∩]≥βE SA% P↔π%1¬∪(↓9≥∨(↓αA'βY
A
∪1
C9:4⊂∪'α⊂∪7'∪a↓∪(Aq)⊃∪&↓%%∨HAπβ≤≥(A⊃βA!≤Cq:~¬I≥⊗
+Qh4λM~¬∀&]~&b
M!αr~⎇!α⊗:⎇*≡!α≤zJ¬εeh4(&≤ ⊂&nα9∃D∀~D¬d∀_@¬∀-J)∀-∀→Dα
≠⊗∧∃ehβ"Q*(∪P)'≥αE∧T`RDmTdl!$U⊂.""U$abP∪'j⊂ U df P&"Pn↔FE∧iPR∧miRl!$jλ.! bλ)"`∀RIEVAL ##1⊃!\]
ERNCD%:0∀~(∪'αJ%3'∪1 ∪ A99≡A',~!α∩-2&∞∃
bt4λM~¬⊂&]~&b
M!αr∩M~-αε~α~V2b
rtQ)∀4
λ∧p)→λε-FB i$f∃RX
: Xπ'∪1 ∪ A→%→→∂¬_A+<C9:~)%≥¬4Jt`(MZN&B∀JQαrtyαJ>|iα>9∧2& $T
5%∃X:E-∀T≠Ehh(Z%<Dαi.G!6tr+λR5λH⊃1R(8(⊃tI~α"Vf∪βC@↔⊂C9:~)%≥PJt`(MZN&b∀JQαrtzQα⊗tzV≡↓∧j>*&$zIαR∩2¬αα:∧≤T≠EhhαQ4J p).G↓6pr+λR5λJ⊂4U _3λ⊂)I⊂πa`U$gg Lπ⊂~2J
rtQ(U∀∀hdSCP≠:4MD)~B¬D)It9h∪SjD⊃PQ(T4ε.FB i!iQ⊂X
: Xπ'∪1 ∪ ⊃αd~ε)≡ αNVB-∩N⊗∩*α∩&J,~R>JJ
rtQ(U∀∧hTSCP≠:4MD)~B¬d8→b="λHTd
HT∧d|eXTm¬K∀∧$M(X5$⎇+∀∃eHβ"Q**pπ#∩Nα: [SIXBIT X '
⊂A≥∨(↓
∨+≥⊂C9:~)%'→∀Jt`(MZN&@λ)∃"¬J8T
∀9∧dM:@λλYαh ∀Y!\]
ERLVL%:0∀∪m'∪!¬%(A9'→λA:-~R,D
D`9βP""Qh⊂n.CE"`∩NAE% 4h∪7'∪a
&Q¬b2=6≥∩⊗εR*α~>I∧
21αα8T
∀9λ I4p
)Hn.FE⊃i)g)I]_
[SIP⊃¬%(A9≥=_ 6Nαx∃¬∧X@λ
81s1)@*⊂n.CE"`∩F@π ∃∃β' M]9≠∧)5λ↔λ`g∪jλ*h" U ¬ FIL@
C9t~∃∀b0≤BU' M]9≠∧)5λ↔
81s1)@*)P'U ¬RLAP!\]
λ@%≥1∩Jdt%0∞NεD∩&@"λπ∪Izα⊂&'Qcbb∩dε!\]
P~∩$p∞⊗: ∧∧`8 ODD↓∪⊂~R-∩JVB α6εNXh"&~pα⊃EAeX4*&4)αNεLa2l4PJRJI¬⊃2εAt~2,$KZ2εε4)α>→∧
21α-B∞⊗B α≤Dx92∧Lh¬∀aQ@∧fgUαAM R,IMASK ;REH≠ $XA¬→→∂.↓!∩D u $⊂3@⊂∀ OT @ANDLEB
λ APREH
∧AHX∩*hIf⊗: α&~∃¬~ε&0hR&~9¬~ε&1eX4(ε$b`∩¬%F@HH↔:E-∀d t4Hλ∞"Ta←$P∩dεTERRUPDS
∪≠=(
,T
"dLX~4Xh!→∀e$X∧rd
@".iH05Q$ qH⊂)Iλ⊂U*D⊃0pgI,π⊂ S ∧ CLLππ-∧J2RLhRt%@8Yd"∧α1SD
p23↓QTεD]QdεD IFN DD`⊂∀!→∧e∃αH∀EISt5)~αεE∧R*f`⊂N R,GCP@ 2⎇0$%@8∧⊃ D⊂πk⊂∩dε GC - LOSE, LLπ'
X↓→∨'
∧BB4PJ6 =hY∩¬∩J↓⊂K\βSueD⊂4hλyα)P)PliV⊂λα20 QUES@)%_∞ 54!P@L*YU∧q(∀¬J⊃∪∩ε↓ ¬∧fShεEI R,S@ 4⊂λ&*,jB<T
5αeλIDCQ!∀l@uQ2$
K⊃S
↓α@
JUH!∂∀A¬→ 1!∩I↓Q@∧fgUα@∩AHY¬ "α↓P@L*YU∧q(⊃K
λε("∪$_εEαd&)-λ)⊗''Th¬IT
λ∧∪'↔%!≤A⊂h %αd*JIαβ:4MD)~B¬@∀P3HIpεP(⊃&⊂'k⊃i#&'Uβ!P→:4⊂λ&*∃~Qα→jEE#!Q hUλIDCβ!→¬∃∃αH⊃¬Iph@⊗T∀)∀DB]cbjλ'i$cRdπ@≤A=A∂-∃%¬→∨\Aβ%∧~∀&≤
&≡∃∧!2↓λ∧@∀BDXIF OVER T@⊃8A→∂'∀~∀%∧RJNQ¬α∩2Iz0hPα0p)_h⊃⊗⊂∀)∀DB]` F EQUAL T@⊃8A/
A!β ~∃¬∩⊗ε2eIα>Z-∩~2><*⊂ (αB( *Tp
P@ 2⎇1D4'9∀2¬xT∧
∃)~d*∧α⊃4HT∃∩⊃)@⊂+d U⊂ iH$ h(⊃dεED↓∪&A$Bε@"λ⊂λ
)u0
$Sα@
A∪LA~>∀~& 4tλ⊂hSαp "PβALCULATIOL∧A>2αR"∃∧b⊗ 4zIα∧|d
DD(⊂λ"∪⊂ g"λ* λERE DOES @≥∨PAβπ%*ε $K⊃P@'q0$Th∧ A↓!∩D u %Hλ∃ λαi"c∪βRE, AH@_A]
A"
2∃αRzα∩=αM→αRtλ4D8¬3λ~α"P*∩ ¬~∀m_
V6∀*Iαxd¬,@tQ∀d
Q30)→β$g#H$g⊂*∩ ¬ @!⊃_Aβ≥⊂A%%*J9ααIr∧l→→ddLhU`hPα2∀J+H⊃⊗
)∀DDNβGED↓!∩D
∧`93P
"T∧¬∀∪!%% )∧12
Im↓"I$HI`≤<X@λ
λα ORIGIOL∧⊂∀!~5,∀∀λBbDe⊃⊂K\9yU¬-HT∧`*30Q*$⊂πc⊂∃βH∂% LA+'⊂~∀&DbJiα2b≠∩X∧
% ∧D]Qbj⊂#∃d∧@_AM∪5
A=A! 0~∀&"∩%α2a""α""'a`∂MPUP ⊂∧∧:αi)"SαT @'%0
(β"B)
S∪ _eλ∧ ∩$∩∩`.α:D`:Q(∪λYβ#j$λ$g⊂(⊃&⊂ ⊂OIH
)H~∀&E∩Jiα2b& 5JλD`Hα.u λαg⊂%∃ij⊂)⊃h∧U@%8A≥∨%5β⊂∩K⊃P@!2TTjD⊂∧g*⊗*→εEβE_HER@
A∪_A/
A!β ~∃∧ αJ⊗aαB∩bα0≥H⊂U*D∀p
$S&⊂$ Uα@
A≤z6∃α,j⊗J≡,r≥Jλ∧tλ_q(∃ @P*`∪E
PDLLπ →EPJ6 =hT∧2dβplEZλ∧ ∩) 0↔∂∃(A>4*J4Izr¬∧βr3JHαiεEαd¬OVEM F,(R)∩∩m' ∩z(R∧Ldλ∃¬¬)z¬∀L~HR¬∧IAP@!33uJ9(⊃⊗∀i"ch⊃&⊂
@ !$R4PJ"JJJα⊃1Eβ↓T$↔:∧$bβ3uHZQS∪j@FA∧d∀)(
R,IN@)A _~∀%⊃%%4↓$Yβ!M!ε@"α%⊂hPα0p)→α⊂ ∩1+∪≥ εHKαp5I@db⊂"⊃bh⊂$SαTE@%I+!(AIπ+∃~& <βH
εBα CAIH
AHY⊗VLrQ@$KYα&→¬α∩1α⎇2⊗J~dzP≤,D
tM⊂∧$gλ*dg*⊗εE∧H⊂
RST PDLH4 ; T@⊃8A∃+≥!αNR~-αVα∧¬$DT ∀`*⊃0 )∃h*⊗εBα JSR UISTAK ; AND↓'⊂≡XYt`(αP ↔ILL EVEH
)+¬→→2AQ%2Aπ!π.Hh ∃∧IJ$-∞B2
*T¬⊂#$g ∀PDL
JRS@(αα& 5K
C⊂@ ¬εE∀ ∧@→⊂β!`⊂LYzd*¬%HeE⊃↔4,@∀q(
JT∧P*∪β GIVE A PDL OVERFLOTε~(M~.&B*α≡∞~β
HKαh∃*84H∩)@*"`∩RUPT IMH %β ∩⊗eH4(∀ TmQ(⊃K
λε#aQ,(∧DNβREMEMBE@$αaαB∩bα0≥Q0 #∪'kP$TP ∞OT
∪!U'⊂A
a Y$∩$p
α∩M~ε
2,!α&:α9∀$(⊂
$⊃P("&βE PUSH@∀A→1 @1$JP≤~A∪@4⊂πk"T!&'kH$ g"∪ ¬R!∧B~(Jα*JN ∧¬E,→j@hPα2TJ:λ∩3JK⊂∧jεB∧¬∃!⊃→→>≠P&&>4)αAH6 hPα33j@ ¬ FXP,F@1d⊂∀!~4-%)Pλ
J⊗3qHaαA∧iU)*⊂*SαRECOT∧⊂∀!~5%∃Dλ¬∧⊂ε&iQT¬P(R)
∀∪)%'(A⊃∪
4Ph ∃∧IIU≤;!~∧`:β("&αDX@%∃∞~∀∪A≠ ~~e$%@8iDl@U3#!∧h'k⊃,(∧DNβFIXNUM~∀%!∨-≥α∩0$KZNB⊗_h"`(⊃↔4,@Qλ∪hd⊂∧c'λ ∧10*<PAGIL¬≥∃ p4(1nB$b6@3T
∧$dzf`hPβ"TjXU∃∪↓~3TQ(→βk"i⊂a&"P∀ ∧@_A=-⊗J4b6Mα~R&>ph($*λDd⎇dW hT_ib∧MJ5EHh!∃e≥
8ZB¬Zh∧t _pε)⊗,!VHWFA∧W∀hibjλ-S ∪DF1,,R4εa:~(∩U'M ⊃αXrN∩→⊂a2I]¬h4*@Q⊃∪L,h@∧`8H∩1ID∩5∀aQR1SDλ,
hFLλ
4r∩D
∀Q(→3Qα'i"VbSαABLE INDERRUPTS
STRT ULRECOTλ
∀∪M)%(@!R4PJN.&∧qαεJ∃"0⊂K8(∀≤ZλIr¬$z D-Q3λ _H∪SjD⊃0TJ85β"A∀∩TTjD∪∀t
(5β"A→Ttλ
E⊃spJ)b.pJ(02`⊂∃h⊂"$⊃P"i)∀bj⊗⊂⊂e"⊂)QbP$cβEfgUαAI A,NIL
HRRX∧A)(1≠
1εH∩w≥=+∂AA _A'Aβπ
A]β&A¬∃→ββ'∃λ∩(LBJJI∧!2>N≠⊂%nRD*J,+∃bα∧_d∧t⎇ED¬$DY`∧$z X∀T⎇!Q L≤→→D*∧EE¬≥α⊃↔5∀-8H∃∃ Q!∩∧≤→_r¬%EE∧5E¬⊃PPJ∧ %∃≥D
∧$dzf`hPα2∀J+H⊃β @aYεEαd))-λ**⊗'Q&!YεB∧a`dS P",(P ∩~(∩Aπβ%∞A)(0Q~2αH4(∀∧∧U∃:@λ
λ⊂ε'k
∧A∧e∀)j⊂∀∃∀D]d⊃i"P$TP"`∩RSET'S ARROR E@1%(∩(hRB$β∪uFg@4q*KS(∃
K3qQAQ@∧fgUα@
Aαb¬HQ!∃¬-9 "¬αβ⊃4J*⊂π ∃ ;UNDM S@!∃∞&εbα∀LhI∀`(βiV⊂∪'P"g∃dg"εT)'j"PβP &AI+≤4PJN@%*@λ X4s0)! B2J*uλ∪ ~t⊃sa⊃,¬a$QP)"iU i*εBβ≥ba)⊂αAD UUH∂∂_DA++∨≥_dA-*6≡18αVV><a`4!Q%≥0U∃ A23∪λXp3λ @h"`∩ATION↓β∃λA5∪∨%dA-∪∨1β)&|qα"εt"2εHhP4(Q(U∃∀(_C@LYzd*¬EJU-¬8¬C!↓33uHY(⊃βλZTTuHA ¬∧iQh-&@ JPCCAT ;TLπ⊂≥αd
R¬ααIr∧≤X@∧U∧1Q LlzhR∧αβ∃5)Yβ"R(iH∩5
5⊗c"A→TTu∧
53qiF@εE*Uecf_Nα MOVEH
Aλ1%%'Yλ∩(Lj>@4TλBe-YxtdX∧β!,¬bg⊃⊂ c'λ$j)FB*jgcS→→εE∩h∧$ SUBI D,THIRTY+% ;SEE IF LOSANG INCTRUCTIMJ GAS AN≠X
IT$ TRLN D-1
IT$ JRST $XLOST
IT$ ADDI D,THIRTY+5-1 ;EH '
↓≠∨-
↓!εA¬¬π⊗A)<A→∨'%≥εA∪9'(~∀%'↔∪!8A-≠I$∩∩wM↔∪ A%A+'∃$A⊃β9 →$4∀∩A∃I'(A+U∨∂_n4∀∪!+M⊂A
1@Y%%M-λ∩∩m3&X↓'(AU A+'∃$A∪≥Q%%+A(~∀∪A+'⊂A→1 Iλ4∀∪⊃%1∩AλX!λR
∀%⊃%%∩↓λY+∪5∪→=Y AAAβ%n&db⊗≡εbα6B⊗∀
R&>ph(&B-~")ααbV&: h(&B⎇↓α~bα¬D-∃*:d hαB4 zλ⊃V
¬⊃β"A→TTu∧εK⊂⊃**TuQ↓⊃.p "Th'i"H&`ad∩e"P#∪ ciFB∧A*jScf≠]αbl!dλ"⊂ERRSVD ;@≥≡↓+'$↓⊃β≥ 1$
∃%(H∩]
β→1¬*V>≡c@$%N≥∩εAα⎇*QαRzα∩%AQ#αA→u-%8¬∀Dp4pi≠U∂r)I⊃1p)D∩3TjJU0u →β`∞ - BAD↓%%∨I92$hP%↓:αh∀e,QQ hT_ib∧MJ5EXh*ZT|<Gπ M≤ZK hP~9∃D∀~D¬ddz8U`H↔:D,Dβλ⊃λJλ∃q$zQ(∪ zr3QaQ@(λε⊗¬F*kS⊂∩h$Rd#D]Rf EGAL OPERATILπ≤~∀$h``@β↓A12-∩JNZ H%n~-9αBhP4*@Q⊃∪@83Q XH∩1Id∩5∀aQ@↓Gu0
gS+"P'∃$ bgλ'*$"T⊂" iU"i⊂*Ugbbiλ*jgc⊃i⊂!"S`di⊂∃e'k"T⊂'k#∪ i⊂*S!&"iλ i~⊂b"`bλ cXP∩dεTNCM BADMB~∀4⊃'+¬Q)_∪≠%'π→1β∃∨U&A¬I_∞Iαα)u-$α3Q*1"C"JZ3sUHW@∧h*Td!⊂('!gg∀FE∧fShεEI B,QNUMBE@%@~∀&¬*N" ¬↓2b∞|rL4(L2ε
α\rV&
-⊃α
Vt~R&>p∧¬∀
JZ$t1λ∪IyK3U)X4R0d
P3∃(T4εFEαe))jλ*jgg∃&εEεB∧A'*∩$bg
αhπTA↓0∞&2d*≡ε1∧*2⊗6,rQα~αYT∧4H$ U∩↔SαTHCDR!P~~(∪∃%'PA≥)⊃
λj4TrR"⊗⊂π M≥H⊂λdεOTA P@%=!⊗I∧b&NQαi↓α~$A6 5Iλ4%∩≠QP@L**5"∧h¬∩λ8C"IH4p
"T≥⊂ ↔TA [ATLπ⊂⊗&ET@∪ε↓≠ ~⊗α(dd⎇t≠Ehh*Yd4dZ# LdX*"¬]9≠∧)5λ↔λ~R5∩ X5∩0d
3Q⊃*(S∪ud≠↔#"AQQ0@~∞∧f"i∀⊂-adV!$j⊂↔#`∂ OUT OF CATCH-BREAK DAMJ#!!\Y¬
ADEAD: JFAHλ∩∩m!+'⊃(A∨$A)%'(AQ⊃%∨+≥⊂A ¬λAβ%Iβ2A¬"H4(Lj>J⊗Jα¬2ε∃
2L%\~0≥H@∧e9t∧<-D ∧-∀T
dL
λ_4dβp)(p3∪↓Q@∧c PP-`i∀ hP"⊃c$g$U$gg LOST↓]
EG18∧∪+∂PA7≥∨PA'8Aβ&AA%∨∞AQβ∞C:4∀∪∃%M(A∂≡H~∀
∃%≥)≥π<p∪!+M⊂A Y∧∩∩g∪9)%≤↓β%β 5∨+(~(∪≠∨-∃∩AαY=↓β%%¬2~∀∪∃1π⊂A∧Y-∨¬¬%%β24∀∪+≥1≠π.Hh(&B-~")ααbαε∩|⊂4(~ uᬬH⊂hPα2TJ:λ∩3JJSMβ!(P1∪h≥c PP-a Q⊂+ f∃bP#'T⊂#a T) lPWFEεEβ≥b#(⊃i⊂""Q'"a RAVER P@≥∂∀A!
∂∀bA:
~⊗Iα≤∩ε∩Nαα≤
hHU∩∧8⊃d$,(⊂h∃Q⊃,Dλp+QλVc"C!(⊃P⊃*'B4∪j (⊂ε⊃ B4 Zλ∀λ⊃ B5jH(⊂
kT'g#@ FORMAT % DEFP@%= C 4hP&*J≥!αα⊗5αJ>@hP4*∩,20∀4NB* t∩(
¬#"A~⊃tλ
¬⊂#"A~βj @ YP∂%∨9∞A
∨I≠β(@4A↓
U_C*~(∪∃%'PA↓
U_⊂∀!Q%∀
hZ#@!5u⊂$qSu∧λ(⊂λ)∪βPEBLISDZA%Y%'
=_
J⊗αhU∃≤Uye∀0ssH∃β`h(⊃g"↔g⊂e`∞C!]
α JRST REPh~(~∃!≥≥
t4Uα2∞∃λπ J-zH∩∧t~8U⊂HαB2J*uλ&%∃
#!↓αA' Tbi≥∧Tdh!$U⊂. j∪βH∪ε↓'3≠¬=_A%E+∪%⊂C8~∃M↓β '@p∪'∪a↓∪(ApA¬βλααNBε≤)αRf∧)↓5α≥"εBVα4∃`HαC"AQL¬P≠≠ INCRED@∪¬1
Aπ¬=∞-α$yα∞≡u~RJV≥!αε9∧*JJ>⊂α6⊗N≤
≡∀∀SY`≠Zλ9te$→→dL@Qh∃ λαP' SbP'cλ* "P⊂h( ∩OPRIATE CAR,ππ $↓
+≥πQ∪⊂≡eaP@! ¬!`K ∧EBh∪!+π A¬ "α¬E@:r6⊂I~α⊂&$S&"c`W,¬~∀%!+'⊂↓
1 Ym'∪ "∀JQαrbα∩εR-bt4!~¬-≤αλ⊃K
⊗ti≠⊂R5∧⊂εP⊗H!l&.CE PUSH FXP,[SIXBIT \R!!∧BA9:4⊂
∞¬t"∃EHM"J:9¬!1]]0h ⊂L**5"∧8⊂HHαYεEαi'j∃⊗⊂
"4⊂λ&*∃~Qα∞λ¬d$,#"H`W""L≥ MOT¬⊗%∧!15ED2bA⊃Q LE)I∩∧λε_≠≠_⊂⊂
λ¬πα]⊃
ft∪I_∞@"λ@ε⊃ ¬∧fSβP
∩↓)(@1<λ4(~J$`(αP ∀0b~(Lj0≥Q2(
Jλε∪bβE IDPB @)PY~∀%)%≥≤ααQ1Qβ↓AA@hP&*J≥!α∞¬t"∃L4PJ6 =hY∩¬%EDu⊂H!→∀%∧$
E"dAQ J-zH∩αk5λeEαα#"A~u0@⊂⊃,(⊗)
β0 ⊗@ h ⊂L**5"∧8 (⊃ ¬εEβ≥`∞ILSETQ↓)'% αbN-"EαNαIu∀-(∀jItQ1$λtp
'T≠P ∩PLCA0 RP@→π⊂`A%!1∞¬E¬∩B2∞ ε∩α04TFλ( 0**Lλ (~TL⊂D ⊃⊃q*J(∪⊃λαi) L@ β→Iβ 2↓→∩ε$)eαHH∃$4C"AQ@εE'∩d∧SETQ:∪!U'⊂Aαb∧%@8∧siX(∪Q*(α⊂ ∀RIED TLεA'Q"A:La1αX≠∀(αX∂
PU@' A @2≥α0≥∧→!P@!0p2(T∃∃I@$fεEαe))jλ*)bj∀D@ ;NLεP⊃↓="P≤
4
$,IK∩∧
λ¬∀hZα(V⊂∪`h BE?
∀∪5_∞@4Y∀∧
@∀3R)Jq0
(CE %FAC NIHIL
TSETQ0∀∪
β∪
APY-(~(∪∃%'PA1'Q"∩%\r0~@λ∩(λIpπ∪jλ%`∞OW W@⊃βPA∪(A]β&B~(∪⊂⊗>4*%α¬e
RN⊗αJ⊂hPα)1H_h⊂"T$j iCE
XSETQh∪⊃%→4A(@2
BN⊗QλH%nλ→d"¬h→E,*λ8Tdb¬∂e∀∃∪h Itq4AQ@∧fgUα@∩A∧Y# "α8U%λβ"B$XP0h
4R5λ~c"C!)j'i⊃X¬0∀∪A+'!¬↓2∞NαIu∪8Q*5$⎇(XS@!2⊂ )⊗α A,-2(P)
λ∧∩K="¬αnα9∃D∀~@¬d⊂∧b' h∧ EVAHλA$yα∞yxB∧
*(∃J¬(Xd-∀Yh4*αβ(∀jItQ(+K εE∧SdπVEM A,-HQ @$hR≥≥Iz# 7@∧h'T%⊂ ⊂,SP ∂%∀h4(hRJBH8∪βP~zD
¬8(∀"∧~(rαjλ∧T H0p ⊂WF@
JRST RPLACA
RPL@πλ`@PJP≥⊂(⊗h b⊂ T π -↓%!2~⊃ε@QQ LU*:B¬∃ H∀8β"TJ ⊂p _Nα WTA [P@+I
Aβ%≤@ZA∃α2ε∞λ∧∃hhαB2J*uλ∀J ⊂0p!QTT∪λb_]∧UβP αAm!+%
↓β%∞@4A%!→¬∞⊃εhh ⊂L**5"¬* D≤AQ hRX~%∪∧↔!∃ :α P-UβRONG TYPE ARRAY ~A¬%%β3
β⊂∩D≠PhPα2TJ:α⊂∩`T)_!εBα β%H`t&="¬αntzQαε∃∩εeαα tL@U⊃4D≠ εE∩Pi)_!∞α MOVEH
AααaE"⊃Hh ⊂L**5"αX~%∪8Q!P@)⊃⊃q*J,¬∧c⊂aP ≠CAHO(αα≡⊗Q∧"∩Qαα;∀l∀yDαj∧h~4d|_@λ+Q ¬&"⊗ ¬RRh∪⊂∩⊗α*"¬]9≠∧)5λ↔λ b⊂+⊂d∧UE FOR "PURE" - FASH ∂β⊂C9:~(b`HA1 3∃⊃`⊂LHZ%∩¬8∧r+λR5HP1⊂∃αALUE BORU!+∀)↓5α4
N"≡!εrthR2$→J$,K↔ hPα1P(P-dg⊂βH∂%%∃∞@$β⊗( @ ¬S@)∃λA
βM→∨βλα
t4!Q$L4Tλ$L<βP
fJ ∧BFLAG ∃πa
→β∞αb`_hαS⊃λ~α"T]αha$cS*fFEαhb'jP&"FEαhagfT&"`_
λ∧∪# U!→@h ⊂@ ¬&"⊂h∧E@$βP4*"p∧PM≤αr4λ∀⊂+∪λH5⊃.%Vh∧ ∀$~∃⊃≤α &&>4)α¬2d"ε@$Tε+&5∃
#!,¬∩∩m⊂~⊃∧z→α_hR∧∀_ye,J(H$4d_p
Hl#& QFA$' P# iR'"P~ MH∂-$AαY#!+⊂~,hR&~∃∧B0∀\β∪qe(R1sJYαU"!⊃& c@*@π1
→¬∞P⊃αd*IMαβ:4MD)~B¬Dα3@⊂⊃ if⊂⊃$f"Vλ!*`∀↓_
>Q∧J6BHYT,@U⊃1∧ 3H∃ 4h∪ ~tλ7Q ¬εEαSEE DBCONS
α.SEE CX@π⊂≡~α1PRu8XR∧¬λ9t`*c"R(hαP"!⊃& c@*@π1
→¬∞P⊃αu*5F6α7"¬≤≠λ$Mλ⊂∞!SβH
&A%_ α∞|jB&2,!α∞xHRb∧*ZB∧tz@λ →αh&"Sbg""Q⊂ g TH@∪&↓→∪' ¬8⊂∀ c\α0ThZTH⊂H~q0@⊂ d∧VERR %LNERR
IBSERR: MH∂-$AαY∪8b`~∀%1π⊂↓αP∩ZL∩εN∀hP&BV≤B)αAdrε.~α1P@LYzd,Jλ!EL(~4(h!~¬-≤ $¬αeλ9tu_Q!∃¬-9¬αe:(C∧∪≠QP@Lh_2¬\(_B¬4→JT*∧iz"∧L(~4*
QQ hT(~4-∪!→T⎇∀Y∀∧
d→b∪H!_UD≤∧λ∩e4(~4(h!~¬-≤ $¬αdh9te_Q!∀l⎇hY∩∧∩J_$
≤QQ M¬Z9∧R¬¬K∧≤@sPc!!4∃4i∧∀⊗j
R3R+Q"B1H_h∩pH_λ∃P)J1(⊃IZH⊂P*8(7#!! ¬$c∪⊂*abS"iiV⊗FE∩f∃ ¬RR~ SEDZ A,
EPCH A,V%LEVEL
↓PUSH@∀A@Y≥π∨9&~∀∪5∨ ~⊗Jα↓2E,b⊗@4YAP@M
Z4DRλ¬ED≤yj0hPα4∃*9λ⊂Rf+!R%nFEαc aP⊗βBAD↓(
ε2,)α~>⊂αBJ&tb⊗@4YD∃hh!Q",DβQ4J'B4q*KH⊂#↓Q@∧bl⊂d⊂ F∃α%LENGPH
PUCHJ P,NCKFC
MOVEI B,Q%LENGTH
PUCHJ P,XCH∂≥_h(&B-~!αAeY⊗"h9∧]hQ!∀444∧D
deXT∧4⎇$
¬∀LiHTtu∩+Q"C"KQ ".hYβ"⊂'Q⊂ c'λ*ibf⊃iiFEβEβ≥g$d∩f⊂+"T$j iH(*`∩ITAS PORPDL POVFLP POTFPP POVCPDL MESIAJ UJRECOPA
1≥≠$α↓∩εJ-∩Iαε
∩⊗JI∧2b:6-⊃α:63→α∞εlj⊗Mαl*M@* XU≠∩ XU≠D T-≠↔λ X4l&$ 14lF∧⊃14f&(⊃3*6,H⊃)Zl,hλYαiXJH"fiXMα EMS18 EMS21 EMS22EH&dTA≠&HhA≠LdrA5&fbA∃≠&fhααN@%*H5∩¬(J$k
λ(E∀k$
$%∀V4¬∀%)P
∧
Q∀S&T∀Q∀IVH⊂ "∀&[P)⊃)&T⊂∀")&@9 RDRM11¬
λSUBTTL A PANDORA'S @OX OF ERRMR MESSAGES
NIHIL: SIXBIT \@≥∪!∪_A`A≥∪⊃%_@ZA⊃∨∀O(↓')"↓_
&1
`4(&4*J&R
→iαNMB
&Q¬bZ⊗JM"εMα*R⊗Jt ↓5α$z9∞Q¬~⊗RE¬!εp4PJBVJM"εMi¬~&b
M!αrB-∩&@$~4∧t0q4j8(⊃4jD(⊃ yIuλλIh∀P)h⊃s ⊂⊂$g"$S!iPnβEh'U("&≥αidl!∩j⊂&)⊃cP "∪⊂'k"T#&'kHnεE∧T'k#&∀≥∧idV!$j⊂↔#&'g∃dP ⊂DL OVERFLOW!\
POVFXP: SIXBIT \BIXNUI @!⊃_A∨-∃%
→∨\C8~∀%!∨-≥α∩1i¬~&b
M!αrNαλT
¬λIB∧⎇hZ$4dzt∃`hαB3(Zs02G∧idl⊂$j⊂.↔&]f`R'i⊂)⊃ij i∃⊂*g"⊃i* eQg(∞M!\
α UNRECOV: SIXBIT \↑M;UNRECOV@%β →
@Cp~∀β
1≥≠$h~∀αI¬%%$h∪'∪1 ∪(A99∨≤[
1∨⊂~VjαP∀JXR
`Q!∀L
(Z%∪PQ!∀5DiXU∪P~9∃D∀~D¬dtyeT4M jTj¬h→E,*≠APT$$A∀$∀iXU∪P~9∃D∀~D¬dtyeT$⎇X)D*¬h→E,*≠APT≥∧A∀≥DiXU∪P~9∃D∀~D¬dtyeT≤|Z D-B
h∀e,T≠@hTK∧@L% iT-∪!~4MD)~B¬diybl%Z D-B
h∀e,T≠@hP→iU3≠!~4MD)~B¬diybluYXU∀L4
deXT∃`hαR1ID⊂R1ij3*pkλS⊂1eA3S5FWB4r+λR5λJ3P0h_4⊃⊂()⊃(∪JY10 $Pβ VALUE!\
CAMMES* SIPBIT \FIXNUM@πβ≥(↓β⊂≡6αλ∃∀
λ¬∪dλS∪sJYBIT \HOW TH@
A⊃∃→_Aπ¬≤A)⊃%&A¬
|C8∩]M
A⊃!π ∩λhP&⊗6≠ Ih&≤Jb
&"αrR≡zα6ε:Jα& 5HZ%∃-λJ2αjλyr∧
x≠∩
`Q!∀,@4h$g↓4r6λ 5λ↔ Itu⊂∃ibi∩dεTERRUPD↓\ ∀∪∃≠&bjh∪'∪1 ∪ Ae*2$Xi∀t1λ⊃JYPp
$SβHA∪8A++≡↓∞ε2b
p4!_Tm≠⊗g M≤≠λ$Mαλπ∪)ZQ(∃ λ3H
$λ4Qtd≠β"B(YαiP@88∧∪'∪a↓∪(Aq
+≥πQ∪⊂≡d
Td⊃1R)hαb⊂ Q*"a⊂hj'f∪βAD!\
∪5&dbt%'∪!¬%(A9∪5!%∨!∃$A+π∀A∨A5βπ%≡ZA-¬_C(~(∪≠&Hdt∪'%1¬∪(↓9∪→∂0A∂∞A=$A%Q+%≤@4A≥∨(↓∪∃'∪⊃
AαAA%∨∞Cp~∀β5&djt%'∪1¬%(A9+9-β→Uβ¬→
↓ β)+4@ZAYβ_C84∀∪≠Ldlt∪M∪1¬∪PA9
∪1
A
∨PA
∨+9λC8~(∪≠&Hrt∪'%1¬∪(↓9≥≡A
β)π⊂↓
∨$AQ⊃∪&AQβ∞@Z↓)⊃%∨\C8~∀%∪&fDp∪'∪a¬∪(Aq∪≥-β1∪λAβI∞A)≡↓∂≥'e~C8~(∪≠&Lht∪'%1¬∪(↓9≥∨(↓'#¬$↓!∨∪≥Q$C84∀∪')I)π$t%'∪1¬%(A9=4C8~∀4∀w%¬ $A∃%%∨$↓≠'∂&4∀∩∧∪I %~Bh∪'∪1 ∪ A9∃1)%ααα≤D~*2∧Ld DM≥D¬R¬∀X_DdM:@∃`hαB4HJS,NA~r6⊂I~λ↔∩)I⊃1p)D∪pRHXuλ∀iy11rλZQ(∪j$∪u∩λZH(
(01λ+A B4HJS,nA~r6⊂I~λ↔∪Izλ⊃3Iz1rλd i)H$g⊂&∩ij⊂⊗H)"`b∪$ij⊂WεA∧i⊃)&Z≥αidl!∩j⊂."∪j⊂!gS*"l*λ"i)'T⊂nεEαi")&M]∧idV!$j⊂↔)"`bf`ai∪P!gg∃"l*⊂⊃i)'iλnεE∧T")&[∞∧idl⊂$j⊂.⊂& ij⊂&diTdg#Pλα)"!\
RDRM7: SIXBIT \BLAST? - READ!\
RDRM8: SIXBIT \NUMERIC OV@%
1∨ ≥↓jαJ⊗ε
p4!~$%∀W↔ M≤≠λ$M"IU,eI~∧d*λ∧t I0r3Ht∪00j)th∀HZ∃0SHXλ∪SiE3R3∧λ1U⊃*$λKHD¬+(∀HX1λ7↓QB4Q
),,.A~r6⊂I~λ↔∩)I⊃1p)D∀Q5
ZSH∃H→∃1(λjSs(
:∪∩0i→Qh∪(_tSh¬U(⊂Q(_λ7β!!"C"@↓Gq0THZPh⊃**Q0 'H i"i⊃i⊂"k⊂d⊂∞AEP
β_8b@M,"Q↓:αXE#
¬jT%#!Q hU8X%%$A≠∀-α Yu∀(∪2*8q3∪λ→β"gjTP"a)∪βR @%=+!&t*L4(hP4*⊗α*$-∀4εB* tλ∀¬H ∧D]S$ebP
¬RROR ECG ARGS)
α LER3 1,@ ⊃$~∀4T*JJ⊗α)s@!33uHY(⊂ ⊗
!∀FEαhπTA↓0∞&:4
2&⊃∧*JJ>⊂∧∧9⊂3SHYα⊂ ∪PEC@∪
%∞εRLz0∩
β#"A→TTu∧λ4TQ*(@εEεB ¬RERER0∀∪5≠ ~⊗Jα⊃2E$*JJ>⊂h ⊂M9y$
¬EJ3∃<h→@hPβ"C!λαk fαA0∀∪M+∧Aαb`≤@⊃0 #∀ fbV&"`∩FRAME] ;CLEAR OUT ALL OF ERRF@%¬≠
4PJBVNDQαA∩≤
RaTHH%nN
2∃α⊗4*JfRLr≥αεt!αεZaα∧∀PJBVNDQα
@λ¬E≤
dYSλHα.sj(α g T,P# Rd⊂
ACT EBRLπ$\~(∪!+≤B)αAd*P∀AQ$-P3F↔@∧h*Td
FXP →%M(k~b4⊂λ&*∃~QαJ≥"aTQ!P@@ ¬εE*b*
αi`OTTN A1
0G¬8∩∩αw
_∞ ,T ∧-∀T
tD3H⊂iYαh$f⊃b⊂!gQ ¬ CALT
JRST .UDT2 ↓ ; FIND A TAG FOR A CLπ⊂⊗B-"⊗⊃↓∀:0~⊂β"B*9p4∪Dλ4TTj@FA∧P∩))b ,¬+ (βλ4(~
U≤Bλ¬DλhαB4jJUλ&@T∧[SIXBIT\X
~W%_ ↓εeh%nVα8R∧m8xdL@⊃0 Vλ)` NCE UGT BELOTεA/∪1_∩(LBJJ@$λ"bk∃
αHHα".hx5λ∀HZα*`∩N ADDRESS
HRRZ AR11(
6N<2& $X∧c!∧j&'H i_@,200 @`⊂∀!~¬-≤α∩H
¬⊃0 )⊂b_DDB]`g"λ()$g∃⊂#jjλ!*g THE@%∃
∨$~(∪!∂ ↓ Yα~(X
V∩ ε∪@!51u∧h⊂
g⊃ ¬FINED COMPU@)∃λA∂≡↓)β∞Ct~∀&∧zB)αα¬@hPβ"KJX∃FA~q0
-∪P('!∃c
SETZM P@≥¬UVb~(∪'%R5αBt∩V→-⊂h &6⎇2⊗%α~aEAaQ LlzhTJ¬%Ee,%FAP@LYzd*∧~ %Km
_
X_⊗⊗∀'!*c↔FA∧e∃dh#bH**⊗↔
YFE∧SdπVNS TT
%NEG%
∀∪A+'"RαA2Bα)∀`),∧FEαibb'SP PNF α MMP
∩↓
"α⊂4F∃ εE∧R))b RINDERN
λ; ENDC@∨ ∀A6M,"Rd∀P1n⊗≤⊃Qα↑t
⊗JI¬:0∀X $
1H `H(c⊂∩A QF #∧A++∨ gεAU≠⊂gα↓+#∨+∃$A+=+
bAU+↔+
HA!¬%→(~∀4∃β'∧Xt∪≠∨Y∩Aλ0`∩*<rε⊗J∪P&∞εl9αRQe 4(¬¬~.&BλαRQ2\j⊗MEMh%nR|yα~⊗8αεJ≡_h(%↓∧j>J⊗JαRQ2l*ME@KZR>=∧jε:E∧
J∞LhP&6>4*5α e
→FN⊂h(&B-~!α~E↓2RPhP&*Vmα9α⊃e:2ε⊗⊂ε⊂HKαh⊃∧M(∧π-H∪ ~u∩3Ht⊂3∀HX1⊗(λIqQ#!↓4∃4i∧⊃R∀¬JA"B*
4r∩DλT⊂ I4q⊗↓Q@∧h'T⊂#$()αE+SαAEBDpλ&"e∩aα bBA$Q!∃¬-9 "¬αKλ4`9β)FEαdgk"SP V∀∀∀@
PUSHJ P →βI∂'π(h ⊂M zα∧∃α⊂
Jβ"B)*Tq⊂∀c_`FB∧¬∀~)#gαβP&N9~∧
¬J@d¬E@&Ds:αw¬(A)⊃%&A!∨%_
Q1¬:∃α∞α(∃α∧zZ@hU_f$Pα(∪)Zβ"dP∃*∩&bTXXλ
IOVE T$R
λ PESHJ FXP,@→∪M)0~∀%⊃→%4↓XQ$~∀&U*6B→∧⊃19-⊂h(&6⎇2⊗%α⊂bF (α".j~αb`∪TIK@≤A5β%⊗B4⊂∪!M⊃∀A11π∨≥L~∀&-B≤Bλ⊃BEαα#"A→Ttλ
E 0p(J@εE(Q_`]∧T*id%λ(∩'!SdεS
POP P,B
PUCHJ P,XAH∂≥_h(%⊗αyd
αλ¬∃¬⊃ B2J*uλ⊃*H3β"AQA"U*Ypλpg↓4p5HT⊂(⊂AQ@∧fgUαAI T,EMS18
∀∪)%'(AU+↔+
D~∀4U*V.↓α8∪@M8~d*∧∀λ hUXYu,-'!∀l]hY∩¬"β⊃3*6-#"JZ3u1&↔@∧fgUαNI A,LU@+M(∩∩wU→∩⊗4J2,D
U,Zλ8∀d`Q!∃¬-9λλk∀∃*Yp∧∃f∃hik∀⊂TBE∧Pe`
L A( ≤ZD~∀&¬*N!α5BA1Qh &"∃∩`∩∧∃FC@ B)*X⊃H
E".u)hα"c⊂⊃*g⊂$S⊂*`∃O CALL (GR AFTER AUTOLOAD
∪!= A
⊃@Xh`~(∪≠∨-∃∩A(Y1++'4⊂∪!∨@A
11++∨⊂4bQ(R4∀∪'∨)∞A(X8Zb~∀%⊃%%4↓(Yα~(∪∃+≠A≤AαYU+∨+
H~∀β⊃I%4Aα0h`~∀%!+'⊃(A IA%∪≥(4∀∪→I$A7'%1¬∪(↓9+≥ ∃
∪≥⊂A
+≥
)∪∨≤↓ββ→→∃λC9:4∃++∨U
dt∪A∨ A 1∧∩∀∪A∨ A 1α~∀∪
β∪
APY#+≥ ∨#≥λ4∀∩A∃I'(A+U∨⊂aα4∀∪∃%M(A+=⊂gα~(~∃¬∩& 5G!∃≤\~ b∧-**58H↔8U∃∀z$¬¬∀→jD⎇5β"A∀∀∪t $∀β!↓2TTjD⊃4∀IJ#"@↓Gq5Lh∧⊃5Lh∀⊃5Li$⊂04ε((∩0*εRH∃i@ f_⊂∃dεALOSE @/9β⊂bAM)β%$↓+⊂~ε4zN∃α4
N %X∧@⊂⊃ if*R⊂# iS',⊂#⊂ib'!H&"#"T)
@,gλp∪'↔%!αAα1 →B⊂h*-d8∪PJ E∃Rλ⊃D
∪⊃Q J-XHb∧lX6PHK8¬3HH1R3HXλ⊃U)Hu∩3iD⊃pRHXuβ"A→TTu∧λ5H
!βE
ET∧g∧t%⊃→%4↓αYβ$D~∀%-*∩2λYU≠↓⊃∪@8SH∃)H⊃1Hλ_U⊃4Dλ51∪iIp1β!↓2TTjD⊃5Mλ∧¬α
IAP"A8 TDZA TT1)(∩∩m+∃ →∪⊂~⊗ ∧∧4r x$T8¬β! 04I'@(∪)zβ"dP∃*∩"fTXX⊗fQiZD]Q'⊂ ∃ND@A¬
)∧ααεFR|b0≤AQ LDJ+"∧
Eλ2Hh!~4\M `λλ⊃ ¬∧P∩))-⊂⊂T⊂λC)
∩KU →αl*ME"αJBHhαB2
*S(⊂%E⊂j#!↓2TTjD⊂∧f(FAεE∃dεAL08 MOVE D,(TT!
T@→≥∀AHb$∩w'↔% A&2α2NV∃⊂4(∀ %∃≥D
t`(1SthQ UsH→α'ibNαλ
∧∪A+'↓∀↓
1 Y1∪')0$∩w2M~R&~JαVAαe~V
I∧
J=1Q LlzhTJ¬J@ X4lD↓⊃.p
iQP SU@R MESSAGE
WNAL12 MOP
∩↓XQλ$~∀&¬*N"$
αeD9ye_H↔84`9β)P#∃e!`∀IMHA≥¬≠
A∨9)≡AβI∞A2M~P$!~¬-≤∧
αdλQ!∀l@uQ2$λ+∀3!⊃,p
iQP∨P#∪βR ARGS @'Aε~∀%∃%'λααF→Fλh (αTuλZTNB)Yβk"dH ⊂(F)
αWNAFOSE8∧∪≠∨Y∩A%!26⊗≠⊃D%@8¬4hT⊃Pu()⊂&bTi`cbCE JRSP @/9β⊂⊃DhP4(Q)∀4rλB∪αe1Q$4
9JU∪P~(Td04q$
⊂εh!K∧@
FASH +⊂h∪#≥→=∞.⊃Q L@⊃0 )λ-idl⊂αIT \@πβ≤OPA↓¬*J&~β∀∧DLyλ
81s1)@*⊂n.CE(
8π≥λαα0≤2 _d`$⊃ _βE
FAS@→≥`pλ (αT⊃dQ4q5 (∪⊃
p6C!(#R∧Tbj-&H&",&∀!FE#⊂i`NC8∧⊂∀!→¬∃∃αH⊂%I⊃⊂Th~@εE∧T*id%λ(⊂$CLOSE
λ∧∪→I$A7π%1¬∪(↓93∨*↓⊃β-
↓%+≤A=+ A∨_Aπ∂%∀@ZA
¬'⊂∩≡!εrtKZR>Raα2z:0hPβ"SλHβ"`∩R8∧⊂∀λLBJJ@$λ∩ddH*4
⊂β"B*
4r∩D
λε∩!S'ibFBα UNLLππ.Hh &6⎇2∃α¬db∩4h→PhPα33j@ dP!(c iS'`bεBα PESHJ @,XC@∨≥L~∀&¬*N"$
αe,h)∀`(αεE∧Th¬B P,R70-L@ !∀bM-DhP&~ε~α`≤4→HR∧tz@λ →β⊂# Td#`bλ!'i&Ph∧!]
λ∧⊂∀!Q c\β∪0HZTH∪
∀S⊗Dλ⊂πbi∀ ¬ GETLE GEP 2+ αN⊗αJt`((⊂ dQdεPE PROPER RMPER0 LFYE@$αα≡⊗:α;∪B∧~(t9αXλ AR@∂π~β↓αεJ<~5Eα
∩≡∞T∧C!∧¬∀~)→≠¬I$t&-B≤Bλ⊂λF@
MLπ ~∃¬⊃2P4PJP≥⊂(⊗h b⊂&⊂d¬BDA L@∪'PC:4PJ6 =hT¬%"β⊂c!∧e))U⊂ PLMB1
LXPRLZ: L@%$αα`≥≤α6⊂I~α⊂ ≤TLπ⊂≥αl
0∃Jλ~$=~λ¬∪d ⊃0(∀⊂h]
λ∧⊂∀(It-∃(W L@3uQ)∀⊂+
λ∀@
Tπ ∩¬¬Yα
ε ∧∧,@Qλ∃λZuλ⊃I@i&P⊗H ∂!]
∪≠=(
,∀λ"bD∃⊃P@!2TTjD⊃∪mλFAεE⊃bj&"Nα E@1
⊂AαYλ~∃∂Q→∃EPJP≥⊂(⊗h b⊂&∩ij⊂⊗H πE@)0C:4PJ⊗b∞@∧∧
D!Q LU*:B∧≤X¬∪↓Q@εEεBαSE@)]_
¬@!~∧mα
¬DλhαB3)Zβ"dP⊂α,QSE
~∃≥∃'2`pλ%⊗αzD
∧YZ3≠λQ!∃¬-9∧¬αd⊃Q LU*:B∧<Yj5K8Q!PT
(x4kC!~u$
8∃∀:
Itj∧β⊂4Hx(∪tDπ($λ4Qkj85⊂4Ht5#"A→TTu∧λ4QpiY#"P*(ps,π!33uHY(⊂@⊗XT)∀B]`∞OTE: FLUSHES FLAGS @∪≤αα2ε~α@λ λ3⊃H!Q@∧a`Re⊂!,ARGXX
∪∃I' AβI∂π
@λh &∞b2 ↓α!E@⊂∧ijβE MOT¬⊗%∧⊃2FN-"εJ≤hP&*J≥!αεJ<~5HQ(∃∀≤9P'∧h"iR%⊂ ⊗∪αC@∨≥L~∀&lzP∀∀λ"e~(phT~(t@,NB*
4r∩D
⊂0iYβ)D]S$ij$Q,P cPdg⊗⊂∃dj$'Uj⊂&'Tdg#P⊂α
α PUSHJ P,XCONS
%FAC MES14
~∀_w! Iβ↔
@9')∨→hA)3∨¬∂
A∂Q%∩QJα⊗ <hZ"¬∀IId-∩λYt4* →∀|-*$∧`93q4J$∪04
yP(∪(Y414Dλ∪∃⊃*$⊃∩4jEN(∀jZt⊃#!!"T∃
(rq.A~∃0r∧
⊂#!!33uHY(⊂+¬
∃
#!!)1uλ∀⊃34f6β"B)YuQ2$
∃
λ∃!"B* tλ∀¬H!"B)*Tq⊂∀*)!d∩FEεEαSTOLX: PUSH @,@∧⊂∀!~¬-≤ $¬αdβPsi@)FE∧Sek"dH!⊗(fCE PUSH@∀A@Y1π∨9&~∀∪5∨ ~⊗Jα↓2F≥"0≥∀QQ M¬X∧r $∀⊗λdπF@&4⊂λ&B⎇↓αAH!P@MλZ4B¬¬J@hPα1P(P-a`S⊂πT STORE IH
)≡↓_
>→l
JJεJ
t4λhP4*RLzε≡∃β!∃ :α P-S'j⊂ Ta` I T¬β→+∀C:
∀%∃%'λααRf>
∩≤4(hR≡@%(JCKPα1P(P-a Q⊂+ f∃bP#'T⊂)"`Q* a&⊃Ph
EOFER2 MMREI @,QRDEKF
IOVEI T,[SIPBIT \END GF FILE Tπ∪)⊃%_ αJ,
⊃εrhh &B-~")ααb⊗ <hQPPL**5"∧Yxc(Hβ"C!
Q∪∪HZNB4
Zp∩H
¬⊂∧g#⊃bj∧DNβGEDS VINFIH
A%_Aβ$D~∀β'-∪!
AQβ!%⊂~∀%∧~ε&9∧
IE2%∩VR↓Q Jα
%∃Rλ~#
@∃I5→!"B)YuQ2$λK∀)*(01∪ →β"FEαfgk"RP*⊗-Tdh!$U⊂."g⊃⊂ ∂F FILE Tπ∪)⊃%_ α¬∧b& 4T≠EhhαQ3hh,B3)ZQ2(λ∃λ∧ iTBE∧T*id%λ(⊂NCMH
&~(∪!+≤B)αAeBε <h∧c!↓4⊃4i H⊂41P0d¬∃
7!Q@∧e*Sh"P K!h'h∩∧¬
SKIPE T,EOFRTF 8ππ2|∩αεI∧J0∩∧Yxb¬4→JT*∧α1H IsK3I→αεE∧H$))&H V⊗f⊃i)`∀P-1(D) ; AND AF EH∂A→%β≠
↓1β'Q&~∀∪A≠!)¬↓0$!Q hPβ"C!$c"P∩h∧S,[
IIOERR: LARRXπ'∪1 ∪ ⊃αdI6 :λZ%∀⎇$λE-∀→hr∧Lh
U"
KQPD|→xU∃∪αB3λZTH⊗j94∧!$U⊂.$WSβ EBRMR DURINGLπ#)!U(C9:4∃0∀¬\*0∀λ∪qD 1Q( ~α)FEβE&`h∃dεA: MKVEI D →#5β!2M~Q66
α2&N ¬S
EJ@
!QB4si((⊃⊗∃dεALOSE
λλ
¬≠∃≠#∧βP&⊗@λ9α∧
E
αHhαB5jH(⊂
g∪h∧ A↓!%∨!∃$A2M~Q↓∃∧j⊗ ,(Z"l$YHU$*x~5≤@ph7!Q@∧fgUα@
A∧αb∧4!_UD≤∧λ∩bE¬⊃P@!2TTjDλ⊂
)
~∃⊃→)∧βP&∞εL)α 2l*6
⊗α!P@!4rr*λ(⊃βhb"f∀n@
MKVEI @ →#⊃⊂∩⊗αHPhPα2TJ:λ⊂g⊂d∧OSE
~∃1∪'(\βI`&6⎇2⊗%α ¬E@⊂∧ijα ;ZERO AR@∂&@t|A∃∩0≥⊂β"B*9pP ⊂⊃⊗+g S'ibFB∧¬αSUSPE* PUSHJ P →≥
∨⊂~LhP&6>4*%α e
N@-:λT`(β"B*
4r∩D
⊗⊂iYTc"A→3uQ$
∃⊃K
α".jIh⊂3 Iuh∀HZα*`∩NS FBOM THE BAC, FP@ 4⊂∪'+λA)(YHj`Vb$∩vA≠U'(A¬∀A%≥"6J⊗ h(&N\JB¬↓D2bA∧hP%α⊗⎇2∃αR a"
@
¬⊂HKαr1D
∪tλ xH⊃V
∧⊃SsE[Q0 'H* "gλ$iP(∪dg*"TεA∧fSi"P#⊗(∩**αDYP*∪P ∂LD BP⊃lA%≥"6J∃∧~0≥∃(X5"∧i
hPα1P(P-dWSβ @∪≤ααBJ>=∩⊗NMαiα∞εp∧u"¬8¬4jλ3Q+Q C"@↓Gqu∀λI(∀H→Q∞(
6UsP)D∃⊗4 84H∀f~pπ fλ#i!j∩bP#)⊃i)⊂!T)i(→λ f)j⊂"#,L⊂ f!RX⊂()⊃bi_P⊃'ba)λ #ZbTεEεEβE#j(⊃&_]∧UβPA [ NOTP@@_AA∨∪≥)∃$C*~(∪∃%'PA≡R∧"2@4Ph"Jεt!eh→Yu (αdP"(i g⊃'`
S2WNAL: SOJA D1&c/≥¬_~(hRRfB\*Ih→Yu (αdP"(j,dT ¬EK
λS1WNAL: SMJA T,W@≥β1_∞N∀hP4*≡∀~R&∃β!∀-D9∧
D!Q Mu⊂ ⊂⊗βH
∨(↓(
ε2L!αJ⊗"Rε
d)α&:$*aε@QQ L-λ9α∧
H!P@L**5"∧z(5$HQ!PTTQ4J'B5uλ∀⊗sSjD⊂(⊃J(31(
p3UλZH λjQ0
*T'⊂nFB∧e))U⊂#!"U*i'εB∧@
IFL UCELASS,Xε~¬πI'% dh∪')ααα`≤∀_@λλ~αi)gT⊂!gb⊃P⊂
CURSORPOS!]
∪∃I' AπI'% F4⊃0∀⊃↔4,@Qλ∪hd⊂∧c'λ*ibf⊃iiFEβE f)U_≥∧fShεE A,-1(P)
α WTA @7 βλAβ1∪'(@4Aβ-β0X∞εBα EJ
β#"A→3uQ)T⊂+&∃∀
#!∧e))U⊂ f$ThεEεB$X∞α WTA [ARG T@∨≡↓→β%∂∀@ZA→%'!&5IεtQ!∀U∃8¬⊂∪$i`∀IFY~∀4⊃∪
≤αα&@%5:4LEK0hT→H4[β!_UD≤∧λ∩d⊂β"B*@h∧A [@¬βλA¬%≥↓h∧∧@⊂4S(d∧@∨π,C:4PJ*JN ∧∧@⊂4S(d∧@∨π,~∃ 4HI`≤,h@λ @c⊂$c∪α @∪)LW'β∪0~∀4UαJ<X∧@_Nα E@1
⊂AαY¬$eα~(∪ ≡Rλ∧¬@8P1⊂∃αAR LIST - PROG!]~∀%1π⊂αα¬ $~ H⊃ ¬∧e∀)j⊂(∀ π1
DOERR0∀∪A_∞Aααb∧4!~u$
λεpH_λ⊂ T⊂ IST ~A⊃_
ε@QQ LLzhTj∧∃ES∩E¬⊃P@!2TTjD⊃∪m!Q@εE"∪X¬E@$βP& ,zhTJ∧∃E∧% εE∧UβP αAm1)%¬_
,zZ2¬≥HZ¬∧4H$λα ∂!]
∪∃I' ⊃α$yVDQ!P@ ↓Gp5⊂)@↔≠P"V(⊂∞ER @ "αλU∪
λ∧r)@↔"`∩↓∞ =5hU∩¬8∧4DHαi⊂&∪βG&ER NUMER ARTH@$@E#≥c∂!≥_@er→↓J=α22λ→DDt8QP@@ P5λ→KI`≥αd"`∩R [SIX@¬∪(Aq≠ ~⊗α(dd⎇uzT`(α"`∩FLOW IL∧Aβ)¬_ εRhh ∀4∧ ⊂.ER2 MMP
A⊂Y7Eα⊗IEbb`≥≤α6⊂I~α⊂ ≤AR@∞A$z0~∧)_rαjλ[¬α
K[PhPα2TJ:α⊂'*SbiεE⊃l("i] EX@π⊂Aααb⊂HαB2J*uλ⊃+
λπεE∀dg↔"T≥ SKIPA D,[SIN,∧XI7M∪1¬∪PA0∩ε∀9αRyt∧)1h⊃I@i⊂ aPβP%β
2@@5¬~& 2≠KUhhαPsj5β"`∩h∪⊂⊗>4)α"β⊗pi@iP∞,,Xπ'&D∩&@"λπ⊂*(βP ∀OLεA¬∪≤A~>⊂∧∧≤8¬4H_v($λpπiPW,¬P~~(∪∃%'PA≥+≠∃$⊂∀*:∃∩⊃0 : S@↔∪AαAλYm'#%(αq12nα9∃D∀~@λIQ1`⊂⊂i#P⊗H)hi*λn.`≥
λ¬→>8¬d-∪αB3)@hεE D,[@→∨≤X 1∩]~&b
M!α`$βSsEZ⊂πiP⊂i#P⊗H& ∂G¬90⊗@QQ$`*314G∧e)hλ*⊂PDLNMK ;@∪↓β%∞A]β&AαααB$βλ∪JYαV⊂#Qh∧ A↓%⊗εbα0≤@Q#"A∀5u⊂$¬⊃
"!↔pss* ⊂23D
⊂πP&∪βSE@$4⊂λ&"e∩`∃~λAP@!2TTjDK⊂λAα@
IARERR~∀$Iβ%I$⊂∀
∩R"⊗α ∞A∀5u⊂$λλπ⊗@1(T ∩~(∪∃%'PAβ%∪Q⊂⊂∀!Q#-→hc@!5⊃⊗H∀∃∃↓QL1t @ ε0∀∪5≠ ~⊗JαQ1∩=∩⊗εQh∧D-
X→@hPα16λd⊂ @,@∧⊂∀!∀U :α P!PdfbiCE JRSPλ@I∃# ⊗εbBQ$Q&$-hg M⊃⊗P$
λε*εBα2GPNF:∪≠=(
,∀
Bb∧z(T
λεR"Th¬AL
λ∧∩K="¬α∞j6⊗LhP&⊗@λ9α∧
H!P@!2TTjD ⊃4*X3
∃¬⊃ ¬εE⊂d∧@⊃≥-
t&¬*N!ααb∧4!~¬-≤αλ⊃K
λε**βE MOT¬⊗%∧ 1"~β
αHh!~u$
λεph→β∪j @π%βQ
AαA!+≥⊗A=A)⊃%&A'∪i
C 4hP&B>∧Iα~@λ¬Cλh!→T⎇Q(∃
Eλ⊂"!Q@∧h'T⊂(⊗ CE JRST ALHUNK
α;GCMLOSE GC@≠→LbA∂π5→&dA≥π⊂⊗⊗~α≡∞∩≤jMα≡≤bViA∧:∞"VRα≡∞2-QEα≡≤bViI∧:∞"VS→α≡∞e*iUα<~2Vi"α≡∞2-QYα≡≤bVi]∧:∞B∩dzYα∩L(4(∀T:∞62⎇~∃h∧hP&*Vmα9α¬d:∞62≠λ4(&E∩Jiα
b≡∞6-→.:~2B→$4PJB>A∧2bA20h(&*∃~Qα≡≤j2MHhR≡∞⊗e→EhεE∩Jiα~b≡∞⊗-→.:~2B→$4PJ*NI∧:∞JN⊂h*≡∞lbMIhM~⊗RyP¬∧i_5H!∀T<≤Dλt≤e9Z0hP~8U%TT
∧t_:hP~ uᬬH⊂hP~8U$|T ∃∀mha∪L|dλt,tX(∀b¬
)∀d≤~ D-~Dλt≥%x⊂∧lT8QPPL**5"∧_x0hPQ(t≤LX7 MI~5 hαB4(i4∪U)Q"B4(i∪sU)Q Q⊂DA41∪jXS⊃#!(v α*_qs4 H4β"HK α4(J4∪⊃+↓ ¬!#I∧ha$Qe*fFB∧hilSa'fεB$c'⊂∩'%f'QV-FEαi b$V⊂_X↔βEi"T ¬AT HNKLOG+1, AKFC QHUNK,\.RPCNT
RADIX 8
] 0↔9λA∨↓∪
≤A!≥↔2|84(&
JJεHh(&F≥J6
>`H%n~⎇⊃αNfl∩>16∀b6∞∞~aαNεmα2eα≤
e↓
≥J6
>b⊂4*&4q↓96<~6⊗MlrRfB-→5E-
aα↑ε∀qαn↑∀z:
αd*:∞R@αRε
d*t4(hR≡∞2≤jMh&≤Jb
&"αrNR⎇∩ε≡∃∧~εBε≤JReα-B∞⊗⊗$*⊃εphP4(4SYemα≤z6∃αD*J∃ααy∧,RλI∧LTz4∧d|y0¬∀,→IEJ∧HZ5∧-(~D*∧→`∧<~aQ$<≤J[#βP~HET
λ∃Dλh(x4e-'!∩∧lzhTJ∧∃JE∃-I↓PPM99∃∧rλ∧⊂)i0pα!↔p∧'h⊃P#'iλ*$"P⊂ ijελ%(#PCE SKIPE IH
⊃∪ ∪(∩∩m∂εK→=''β∂∀Aπβ≤≥(A/∪8A∪A%≥⊃β¬%)βλ~(∩@Aπ¬∪α4PI↓↓αU∩NQα<~62>≤(4(εU*6B9∧ 2≡∞e*iDQ!∃≤\~λR∧
Ha⊂K\_d∧
∧λ_BαB∃D¬$DYd∧<≥*:"∧J(T%∀λD|tQQ J∧λ*%B∧∃Ht≤lZ54t4eλbHh!~∧⎇αλk¬αdaQ LUE TOTAH 2Jα2>NαAP@(βaf*V~≥∧iU)*⊂_Mβ( 6-~6ε(HI`≤@u∩⊃**r4q$
q(∩λ~β"P$⊂d#⊂ H!` g⊂bBE∧T*id%λ(⊂ERRP@≥(H%mα|1α
J,*& 4t
Uα¬9yT*¬8¬∪j(1q(¬ Sh∃)Jr3Q¬Z∀Sij5 εE∧R))b LIS@GM ∩v↓
eααYd∧LhI∀`(βP!h⊃a` AL VARIABLES
~∃≥β⊂∩VS1`&N%∩Q↓E8¬E@:r6⊂I~α⊂&)Vda'fλ!&'aRPj.FB∧e))U⊂#af∃m→FEβE#af∃m≠]∧Tbj'fH$i&k⊃∧¬
JRST GAH +∀P~∀4Ph"<8λDd⎇dεB*85⊗S$
∃⊗3hhβαE∧SdπVE P,C"
λ MOVE F@1@Y~@λ6 hP~:E∃"ε⊂
eKtr6λ$j⊂.↔&Y`⊂DL GVERBLOW W@⊃∪1
A&p∧∧<~4⊂λ+Kα@
JRS@(αα≡∞J[#(hαC"AQL¬P≠lAπ>l)α"⊗α(R¬<α⊃3Dλαk"i⊗P λOPE FOR RECOT¬⊗JJα"εM∧∩⊗⊗9∧*b"ε-~R,EaP@(α E: STRT 17,[SIP⊃¬%(A9=4p∞f>*α"εZ*α2>Nα@λλ b&,Hβ!P≥~α
rdQ!∩`*P3∃(Q ¬∧e∀)j⊂"∩b@
;EBRADR ERRADDAβ%%⊃πλAπA%∪≤bαα⊗JJ{∩∃α⊗α*$`6T(⊃**SlP$λαi)'L!P"i∀'Y$ ERRO2G E@%I_
J ∧*JJ=∃⊂4(Q*5,∃JI@L-*)u∩∧_HE∀4phλHαagb⊃i
λ¬⊗J∀
∩I@!~4\MλT∧
∪∃JD
¬z*@hPα2∀J+H⊂4F∃α+'jU!$f"TFE"i∀ b_Mαh*`∪H P →βHb~(MαVNαRαA2⊗α*$$≤AQ M∧z∧¬αd~"⊂hPα2TJ:λ ∀
)3H#! ¬RRDAD: MMP
∩↓αP∩FhH%n∩,~6∩∃∧
∩αJ-~Mαε~αN@,* λ @i⊂ i∀ h
10$ CAIL B,ANDFUH$KYαBJ⎇α⊗JRJα6→α≤z6∃α
"0≤@ εE_L⊂¬∪π¬∪∂
AλY¬∂→+∀$KZε∩∩∀*NM↓ααε %x≠∃~∧y~d-~ zU"¬→Pλ¬T∀q1$λRhλ`La
CPRINDpλ%α∧zB)αα¬E¬∀→`!⊃,¬bi∀ !b∀`k"iH*⊂∀)QbP ↔NAHGSE)
α10$ CAIL B,BEGFEN
10% CAIGE B,EL@
+8~∀%∧RJNQ∧*JJ=∀(4(_8∀LBλ!D(T∀thq"B(λ`ff"H!⊗!(∀dεE∧H⊂('h∩⊂(⊗εB i)'L ]∧FB_X∩αfgk"RP i ⊂V!!(∀icFEX∩DfShεEI AR2A@AGFUN α LMC@↔∩$∩∩`.<~≡⊗9∧JMαizB∧LhHU∃∃Z
B¬≤_hPhPα2Tj∧∀K⊃h8q3C!! 14J)lT#!↓53S :∪t∩AQA"Q**SlT'∧iedT ¬ INTFLG 9H (αα& 5HZ%∃-λJ2∧D~
∧,R¬P¬$D~4∧M~λ⊂¬ (4V#!!2TTjD⊃0TI@Y)∧]H&'g#H()'aQiiP#∪i⊂& T#bP'P i) ViPFE⊃i)'Y⊂]d&∀-⊂ ∀T,(D)
@%%<eεt∪!%%4AQ(XQ)PR~∀∪)+≠!
↓)(II%≡e∧4∀∪⊃→I4Aβ$DXQ)($~∀&E∩Jiα%!1"R H4(ε≤
&)α
⊃E"Fe~V
HhP%α*∃~Qα⊗∃∩0≠∀↓Q L≤→_R∧
&⊃E
≥X* hPα(⊂h→3H⊂*&+∀1J:0TC!↓(λ∩J*uλ⊃**SlR↓Q@∧a`RbP iT∧QARRAQ
BRST EBRLεeε~(∪⊃→%hAβ$bαa"RQHh &"∃∩`∩¬JABD
&⊂
!Q@∧a`Sd∧ B1↓-¬!∃_
⊃↔4L2λ~$:∧α4hπD⊂T⊃)@ ∧ _AQ⊃⊗9∧~ε*Q∧∩∃αεp∧∧
∃(≠⊂hPα(⊂h→1q(
Jλε⊗@3(B)
JRSPλAI%≡e∧4⊂λ&*∃~Qα⊗α*$`6Qc"AQQ0 )∪β2H 4%⊃→%4↓)(@1E"Q$Q&∪αα0p)→α⊂!,HILOC ;@∪↓β%∞A%&A&p∧∧DLyλ
81s1)@*∩εEX∩∧P∩))`∀↓%%≡I∞∩`-∧jVNQ∧∩∃αNαX%⊂@ B0h→3λ⊂EH∃PT @i#FEαP
RST E@%I_
JλKZ&→α
∩≥↓y∧∩B>J8¬B¬$λYb∧≤→jB∧∀Tλ∩¬≥X*"¬\β0
iU⊂!"P⊂i) lWF@
ERRO2Gh∪πβ≠1
A)(αbεIJλh %α≤
6"∃¬"Q2λhP%↓αU∩NAα-∩J=J⊂h &6⎇2∃αε⊂ε$
@∃∃β!∧d&)⊗α A,(D)~∃∃%%≡eλp∪⊃¬I0 α⊃bB⊃$Q!∀U,X b∧"β⊃4J)lP#!↓2TTjD⊃ptπλ εEεBα@%%<e$`(LBJJ@$λ∃∪
Jit(4TP+⊃ ¬∧fShεEI TT _Q_R~(M~V ααJBe%J8∃∩D~"∩HhαB5)I⊃pri⊃ ∧D]Qdk"P⊂P('gT⊂ NTERRUPTλ
(Lb0≤≤αr"!⊃,¬P H!`λANAE IN L@∪
∀~∀&"⊃αR ¬E%%8~"D
&⊂
!Q@∧d)∀$P#⊗
**∀FB∧e))U⊂"`∩RLεeα~(_w¬≥
+≤@⊃%%∨HAβ%%∃%∧AI%⊗Jp∧∧-∃(Z$"¬8¬0J!"C"J:αa**∪∧b`∩RLπ$XA∃%%
∀
6∃1∧*JJBα)∀`*β"C!!"cc∃e_
-8~∀4R"⊗JJ⎇⊃`⊂L*YU∧(⊂
,EROR⊃A ∩v!%%∨HRA'∪5!→2A¬β ∩M∧b&.∃αB⊗JIHh ⊂L→y$*¬EK4d4T@⊂T∧@(P)]∩vαB⊗JJ⎇⊃α6N8¬⊂hPα03i(αP ∀1%%I4(L
0≤Td
Bd
(Z$-⊂β"B* tλ∀¬H εE"T)"`∩B8 MOVEI B(A)
CAIL A,QUDB~∀$Aπβ∪0AαY#U →.t*J&: h %↓∧RJNQ∧*JJ⊗α)`hS⊗∧@LLzhTJ∧EE∧
HQ&∪αα4u( (⊃β
~αb#εB↔"f)QP∧d)∀"dP"⊗hjb⊃∀ TFB∧e))U⊂"a)⊃i"εEβE"`∩RERN* PUSHJ P$FIXP
JUM@E A,ERRARO
λ MOVEI D-1(TT)
α JUIPL D,E@%I%≡~)%%Iλt&≤
&!α b0∀
)→e H↔02¬-8Z"∧Lh¬⊃**U0∃∧λ4TSj*h ⊂∀ g#bH εROM 0 DO NE@%%_
Q∃α⊃P@!(∩TJ:λ⊃4J(αi'FB∧fgk⊃dP F∀'h⊂⊃J 0⊗Q∃%%∨$↓≠'∞A¬%≡M∧~":=Hh ⊂LXε⊂i∧⊂+
¬ εE∧RdπRI D,<(SERINT)>P≡Zβ(4(_J∧$⊃⊗f&l-7f6λ$%
λ∧nFB∧hλCT -1(P) ∩wQ⊃∪&A]∪⊂~M∧20≥∩λh∀LBβ00jEλ⊃Sj$⊂5λ
@df&εB∧h'h∩⊂(⊗∧BDYP(∪h
BY ISELB @/%)⊃∨+PAπ∂≠%_
: λU∀+1Q HH⊃↔2∧$α5∃ @P#'iλ$gVf∪βSSAGE.~∀4∀⊂∀
≥*
I@!→¬∃∃$λ"bD∃⊃⊂K]8¬0J$#"A→TTu∧λ4TQλ8β"@↓Gq4THjP31$λ4∀MDλ4∀Edλ4∀M$λ4∀L$λ4∀M∧λ4∀LaQA"Ng↔h⊃4J(TP3(T∃⊂2hZh∀⊃ D∀∪r)j⊃4C∧λ3Q
(5∃4IJh⊂3Dλ4TSj$⊃PP)X+C"G]]P#∪i&P'Q⊂)"j∃i'"bλ+ f*Q]
;8εv∩Q∃%$@@e∩⊗≡B$aαBR⊂πbβdX*$`:H∪4hwH∀jλ0pλ"∪⊂(")∂∀@
;8εvA<B⊗J∃βb⊗JJ⎇⊃α6N8πb¬$→8U~∧βsQ$ qH∃
Q1(λitS4g↓αA≥MNβ (,MESSAGE>)
8εvv∩ y≠≥~ε≡∃β`βddβtr)@ π C-EXP <αH4)@4ε`≥BT≡&bTi`cbO⊂≡&'Tdg#@ S(E↓y↓r%JB+βJ#!πnj` ∃β"W IPλA∪LAαA→%' A∨_Aβ%∂LA'+∪Qβ¬→
↓
∨$AQ⊃∃α-∩J>I∧2V 48¬∩)@dε.
E@%I
%β≠∀pλ&*≥↓αI2="B$β∀α'ija)λ_@
$ERRBRAME ∩w5+'(A¬!!βHA)/∪
~∧∩$@@@@@A∃∩~Jεl(4(∀ %∃≥Dλd@∀q#!↓4∪t ∀⊃!Q@∧h*Td⊂#,∀⊗"εEαh*`∪HJ F@1@Y'β,U~b4PJ6 =hT∧"c%λBHKαq⊂∀d#jf⊃⊂('dS*⊂ ∀O JU@'PA¬→=(
αRD)α
Jj∃αX~$\-!Q M¬X∧r∧
λε)L∧¬∀∪1'⊃εA⊂XZf@_h ⊂LJ9α¬∩EP
ε↓α@
CAIGE D,E@%%_
R⎇hε3_h!∀∧U∃8¬⊂⊃h)≠εBα MOVEI A1# ⊗∩2BI$Q!∃¬-9 "¬αβ⊂0i@dεS
H∨-∃~AαX! R4T*BIYβ!∀E∃+$∧
@λ∧#,∀∀@
HRRZ A(λfQ∧R~(LBJJ@$λ"bE¬⊃P@!4⊂
iR%⊂ ⊂,@π⊂≡h∧c!∧fgk⊃d¬ A0Q @$hP&"J∃Qα¬1D2bA⊃Q LE*+"∧
F%∧
Hβ"B(`dg D,E@%%_
R⎇hε3_h!∀∧U∃8@λλZ∀Mc!∧a`dQP"⊗)Qi$g*↔T¬3 &4⊂∩A≤Z&B∃¬⊂4(∀∧∧U∃8@λλZ∀M#! ¬PB\pλ&"α)DJ∧∃FC#βd∧↓⊃,¬dcλ&ic@ IS @'%1¬∪(0A≠+πPAπ%¬)α4PJ6 =hYR∧
H9u∀∃↓⊃∪@4⊂3@⊂⊂h ∂MI@εA'Ljα>⊃¬:">N*αBJ&u!α:εl(4(→Yu (αdP* ¬P@$βλ$%@4 ∃~¬IλR∧lX∧th_q#"A~∃0 d∩⊂# _P,MKNR4¬ε~∀%!+'⊃(A @2∀J0∃$X∧SAQQ0λ)
] POP P,B
∪!U'⊃)¬↓2∞yj0hPα4∃*9λ⊂λ⊗⊂βR5ME!∀4PJBVN@∧¬αd⊃Q M∧βtλλk∀⊃↓Q@∧e)∀h∧ FRM0λ~∀4⊂
-λ∧@_Nα ILD@∧A¬3QβεY
_∞J
h ⊂L8→∀`$⊂V5λX0k d⊃,¬P@ IS END @∨↓≠'≤
≡∀Q!∩¬∧βt∩D
λεεEαa`dgλ!( TEAC _Ox∩w<A
_∞ 5J)tdLi_U~∧βQ6
D⊂r⊂*(0p
"T∧¬∀∩↓∃%' ε⊗BI_h ⊂L8→∀`$⊂V5λX0k dDX# QP∨)∃&A:-BQα∞D
H (αB( →α"! @¬3)¬
$9z$*β"Q*
M∞B(_⊃∩(λ,j"`PT∧40
λ∧∪∃%M(A!∨A∀b4Ph"-λ g∧df"⊂α BYTEAC,CLπ%¬ $p∞@$α∩4d∧PssJJSs∩(i0p5 →β`∞"AHGORIP "hh ⊂L_HDJ∧+~D,5FCKαh⊂i@dεVERTS @=4A)=∧~RJ1|i1α
-!αε2≤yαiQ¬"0_h!~E∀~λ+∃$00kε⊗α.d ⊃uq*$⊂p4hT∃λλZα!W; HENCE CAN RE@!I'≥P~∀&∧zB)αα¬@HKαh⊂)Iλ∪qDλ4pr)∀∃0 dSα@∞A≤ααεMαqα-88∃∧λβ"@HAN ILH@∪¬%(Aβ+Q~P⊗~⎇∩≥λ⊂
'H**,FBα P@+M⊃∀Aαb6~∞p4(→*5α¬%Hu%∧IJK]λ∧R)@*⊂'jU⊂"`∩RLπ$A≠∃''β∂∀A')β
↔λA=_ ↓hP%↓↓α"⊗JJ5∩ε ,Q↔2¬∧ID∧U-8¬⊂∀)$giλ* ∂ PMIND↓'!π%
∪λαα∃Jλ~$8h!∀αααHZ%∀TP3(Q,¬bl∃) P!SβPY OF $ERR@
%β5
~(Jα*JN ∧∧4J8PhPα4∃*9⊂¬⊂( ¬RROR3
JRST↓)%+
4⊂⊂∀!Q#@9βj`∀PUP FIL@
Aπ¬≥∨≥∪
β⊂∩≠(U∩r∧ T\X4∧9βc ∀EL¬)&A=Aβ$βλ4)@4 ∀e$tλ∀`$∪tQ →β i,H& ijλ)jdj⊂a&"P⊃'i⊂#⊃bb$g⊃P*'P∀h∧RT8~∀4Tz~∞εpπ M¬X∧r∧
λε DB]i`k⊃iP ∀
λ∧∪≠∨Y∩Aααa"εIλ¬⊂hPα4ri~⊃q(λ~L#"A∀∀⊂
iR%⊂ ⊂,AC@∨≥L~∀&E∩Jiα⊂¬E $αj,gCE TLL¬≤AβHbP⊃Iβ↓AA@hP%αBαZ4DRλ∧λpπg)CE MOT¬⊗%∧
IE1D $4!→%∃≥D
∧`:⊂2C!∧¬∀vβZ↓α⊗t!α>→∧*JJ>⊂∧βC"AQL¬P≠; @%%=$A
∪1
A"
→α$Xi∀`)5∩3i@⊂#'iλ!"cc∃dε~∀4⊂λ&B="0≥αλZ%∩e8Z%∀⎇$ ∧@Q∪⊃**h⊂3HD⊂εbiT`cbiWF@
PGBOT TOP
0⊗@Xπ2∧dα4tλyβP$ TP!"bSα @≠∨YλA≤yα&Q¬:& $βλ∀jH4∧P$Sα CORE WHEL∧A!-∩∃αB:⊗Mα
∩∃α~e*N"⊗ h ∪[50λ∧λ5λ∀jZt⊃3HD∃∩3(T⊂4hλ→βc ∀RLπ⊂∩HXB∧∃α(∃ λαP ∪USFLS FLAG8~∀_w 'A%⊗Q∧bNBJ! α"ε≤*2QαdJNAE∧b&NA⊂∧∧dM:ε$
∧β∩4jεPC"AQTq0JJ⊃α0H~p∧aP∃'h⊂&⊃hεEL LOOP
λ ∀vlp%"$*~V9¬~Rε:$
J↓6αIuαlHZd,B¬↓⊂hSαjna∀λ
∀
)qh
j(⊂∂+H/)⊂"UαALHOMK BASE IBASE ...)
9;; EBROR↓ ;ERRORS( UNAAUGHT THRMP∂&X↓ ∩
pα≤\XT∧D4Q#!'nnb$∧λ∪Qa⊃.p∂#H(jdj∀P!gfQP λERE
α;≠8ε∩@@@@@@Q%≤*Q6
⎇*2↓⊗αh∃∀L_)D-~X→d"m(Z5$⎇(UU∧∧β∀j!QL¬P≠; (SETQ @=DA≥∪_$~∀`-β30HJ
8U%
λπUd R3
!QL¬P≠; (CETQ EVAL@OOK @≥∪0R~∧vlp$∃ d|LjHU∃∃Z
B∧t→E⊂hS570HJλIrl$YH∃L,EZE%JX→d"l→H∃∀l9It≤ZY→e$-**U¬%5⊃PS[71⊂Jβ:(T≤ID¬$D~D∧-∃)z%~∧ItαE≤ZJ∩αztλU∃∀I~5"HQ'3[X⊃∃∧l
λ4αD∃Yh5$Lyd∧-4→E∩αzu⊃PS[71⊂JDz$αE$z¬Td-hYBld→iT|$U∀αE$Z*¬∀J∃⊃PS[71⊂JDItαBE
*Bα:$¬"JHQ'3[X⊃∀ααα¬ dLb⊃⊃∪\$tλd⎇∀ZhU∩α
Ye$LDλU∃∀z$∧⎇∩hr¬
Y~BHh'73XH∀∧αE≤ZJ∩αR¬λ4|tD¬αE≥H~E-~
Iu∧dZhTbHQ'3[X⊃⊃⊂JαλZdb¬
5$
JZ2¬$z D-4YE∩JHQ'3[X⊃⊃∩αα∧∧ααᬬ¬¬∀xtαBJ↓Q#K[4↓⊂HH∀∧αααλ(T"XZdbU%U¬∀→jB¬¬*A⊂HK>∞&NwAQ#[[1⊃⊂HJ∧∧ααE(X∀"lXh∀bm
)∀u"U%⊂HH↔>F/↔∞-⊂hS532H⊃⊃∩α∧∀¬¬≤-J∀¬$,T¬αRm(X∀"lXh∀bm
)∀u"∃⊃∪@>Y89↓QNjnd↓"""$∧λλ
λ→Qλ
λZ(⊃⊃)T∂∩3JH4SP)E13qEY04RhZOJ#!'nnh↓⊃"(α!∀
⊂λ)∪cY⊂∀∃"i()∩TP∀#SP TTJPεE≥N]DDDBP⊂⊂⊂
)"b*T'⊂∀)⊃`b⊗Ebk fh)$g∃⊂*"fJTTTTJP≥r{_vεE≥N]P∧DJTTFEβEεE&∀h)"j∞∧h*iR%⊂#,∀⊗"i)∀'hεEαfgk"H(∩!YαD]i"U*i'⊂∃'P*'T⊂&"k⊃f⊂!,H"i)⊗λ*$)'UT⊂ g⊃⊂"i)∪i)FE∪)h!*] JSP T,TLVRSS ;@%∃)+%≤↓)≡A)= A¬2↓=∞~∀%∃' A∧Y%∪9∪(~∀%')4↓αX∩∩$s⊂~⊗,!α¬αtJ1αεp∧∧
∧iz"∧≤λX4](Q!∃¬-9 "¬αH9∧,≤8¬"!↔pr⊃(eP#'T⊂""f⊂lbbλαREAL TAME ∧A&u"L4(Lj>J⊗Jα¬2F|*P∀AQ M≤9~∧*∧%JdM
YzDL,jA∪M≤λ_D-~ xb∧-*)DM≥D⊂λ$⊃"B0h→⊂ε#⊂⊗(f`T!FE$⊂abg*∞α PUSH P,FLP .SEE PDLCHK
∪!U'⊂A 1
1 ~(∪!+≤AαA2≥4(~
U≤B
¬DdM:ε⊂HK8Ye%∃∀λe∀|T DLD_1PPL
*%@$⊃K∃I→QR3λQ".si@&,P(∀$g*⊂⊃$i)jλ ij"T$ieP∩c⊂''H$g$jλ#$f"CE`gTg⊂"'T ij∧B]`iP∃$ iP∃$"P#∩i)j∃$fb←CE CAIE F,INIIFA¬
SKIPA 8π∃∨(Q∪≥∪P[
∪→∀Aβ≥λ↓
∪%'P[!&l)$4!∀αα∧**5"∧β∩4jεPC"A~∃0 dλ(⊗-hKαX
4PJ*NA∧122→iT%Q!∩¬¬X∧r $∀∩*Hαi()∩F@
JRST LISP $$∩w.e*∩<T
4`4⊂4h Iuλ∃ @P
@+9∞@@(hP4*2M~AE@!~¬-≤αλ∀¬I⊂∧ihD@ ;
****** BASIC @)= A2-2⊗ " It`:λ
JE%JJJAQ@∧d)∀-&P K+↔∧DNβP ↓
↓'3≠¬=_@@)∧:⊗@%4λ∃~∧α5∀d
P3∃(T∃∩⊃!Q@∧h*Td⊂ ⊗⊂F@
LISP2: JSP T,TDVRSS ; RE@'U→(A∨_A)↓
↓→β'λααR>Alb⊗@4YD∧-P3β!↓4∪t∧
λε!εB∧iedT'⊂ @,TLF
BRST @→∪M eα~(∪⊃%%hA)(X4fQ R4⊂λ&"∃∩`∩∧EES∩E¬⊃P@L
*%@$∀K&∃∀
#!↓4⊃4i H⊂
λ⊂ε!d∩DD]aR ¬CKP@ 1∧b⊗@4YJ2∧4z ∧-∃)z%_h!→%∃≥DλU$AQ hTI~5β∀↔!∀l]hY∩∧
Eλ"Hh!~¬-≤ $¬αeIJ¬∀LjA⊂K]λ∧R)@*⊂ ∀HE @→βM(A∨+Q!+(A→_∞J4hP&"J∃QαRQbiM"AHh &"∃∩`∩∧EES∩E¬⊃P@!2⊂ )⊗α R,-1(P)
λ P@+M⊃∀AαbB$β⊂r 1 .piλαae@ P@ 1∧b⊗@4YJ2∧∀z λλZTStJ1"B4
Zp∩H
¬∃∪∃λZT⊂ $B]`∂UTPUT A TE@%A%∩4Tb&NAα(#@!4⊂
iR%⊂ ⊂,TLREAD ↓;READ AL∧A&uαV@"λiu∀hQ!∩∧U*:B¬$β⊃5H→α".hZβ f*Ph∧E IT, @%∃)+%≥%_
:λ¬∪d ⊂∧ihP F L¬≡A=⊂∀λM~⊗Bi∧
IE0hP&BVα9∧R¬¬JD-∃∧∧#!∧e))U⊂ ISP2B 8εA2|zAα
~-αε5"⊗Iα,z→6Bα)t84pq(D⊃0$U∧@
;S@)⊃∪
_AQ→)∃αJ%ααIE$4V⊂∃&*"iF@
0⊗@Xπ0JDHXe,@H⊂ j⊂dεDARD-IFIL@
@PαH4)@4ε`≥BP⊂⊂⊂λ⊂⊂∀!SβH
λ@ Q∨$@!_
V2bαzE%αB⊗EαLr~&2*↓≡@"α*(
K2*#!≥]P≠ ('T↓∪⊂~~Lb∃%%Hh ⊂@ ¬)j⊃$c&≥αd))-λ V+$Sα@
∪→∀~∀&≤Z&B∃¬"εBJ, 4(∀λ4Ldλ∩e%*ZD@@ ¬∧Pλ$))-λ V+∩U,dFEαh#h%λ(⊂
~∀lp
mJB∩,h¬3D
Q01¬X5P3¬Z∀R3JE*H
¬⊃ ∧]j∪βP ≠→∃(
,EZD-∃λ∧R!QL¬P≠l@∩@@Qβ≥λααJ,_@(Zβ f⊗T)$g*U⊂εE∞β;; (F@+9∞ε2bαJ,_@(Zβ f⊗T)$g*U∀TFBα;;+ (!→β≠¬⊃α@@"L2& $U⊃P@'njb!∀λλλ¬λ3Q⊂
**,hλ$c$f⊃T@
;8εv∩∩$@Q)∨@[⊃4*16R-∩BJ%mA↓"NαH∃%-4 DL@S3qλT⊂∧c$S TFE∞β;; ∩@@@@QM)β)+LA))3
_∞ 54 ∀4LHU∩JJ⊃Q#@7nhα!∃∀p
Sα@ β%⊂[∪
∪1
RRR4⊂ mmXh ∪[51∩D⊃1U)@⊂*'hd"`⊗EL-TERPRI-X (@→~αα0≤4→HRHh'33@1(λλ∧∧λλ
λ→β"⊂'Q$f"FB≥]UDBP⊂⊂⊂
!`∂ND ( ⊃DA∨
∪1
A)3<R~)YY`_Hα"(∧∧λ⊂
"T()$P
!`∂NS T (AL@λA≥HA∨+$2& $Z5∩JJ⊃Q#@7nb"!∀λ
∃∧¬⊂πi⊂∪&P ≡W (TERPRI OFILE))))))
~∀4∃)→)∃%!%∩h~∀&≤Z&B∃∧⊃2ZRe"⊗JBα)⊂K\9λT9h⊃Sj$∃0 bT⊂πS ILTE@%
!(A→+∃π$J0≤@A"B$λp3∪λd
λ¬ ∧FEαh*ad∩⊂(⊗)U FL 0↔∂∃(A'$
2$~(B∧Lh
U"∧i→D(hαB3)Zβ"P#**)`T∀ TFBα TLNL F,TTS ≥%H4(∀
∧`:⊂¬⊂(∧¬∀∪5≠ ~⊗JαRQHjB`(pπ ∪
λ∧∪≠∨Y
Aβ$β 2αR%~εI"λ¬⊂hPα33j@ ¬I TT,F.MLπ
~(∪⊂⊗>4)α 2¬"RNε⊂¬∧
Hβ"NjIt3λZβ"f⊗U ¬RPRI( !β0λ
J⊗0si@)P$gλ i_@, @]≠= ∃αLqα0β"U J⊃0 ,∞α JUMP@
AβHbP∩∞α u∧Pα".h[⊂∧j IF NO TTYCLπ⊂~M∧2& $QQ L≤→XR∧
&⊂
@⊂¬TYO
∩A)%'(AQ→)⊂ε⊂hPα4ri~⊃(⊂*&+∃⊂*
tUα'dc⊂)Pd¬E AS TYO, TERPRI TLε~(Jα"JJRαεIEe20≥5⊃R)HαiD]H)j g⊃ i" Lπ+)!U(A
∪1&~∀%∃%' ∧¬$4T!Q@εE*∪*"`∩Dpλ&Rdr1α→d2∃"iI`HKαr1D 3Pλ*U⊂#$f⊃P ∞OT IN LIH
≠∨⊃
P⊂4PIαN9~∧*¬JK∀l4a⊃∪@4⊂3Q∧β+P$TP ∞OT SE@(α`4(∀∧¬∧⎇ $¬α`⊃↔2¬$X∧T
)(⊂
'H%*`∪T T@⊃
↓))3π=_
Mα4J2(β"B*I⊂πP T_V⊗@1
∪∃I' ⊃ααHU∃β⊃Q hPcZJIE∀01~I∀Q0(D∃∪∀HX(∃ JQ1→λ* RED@A$b⊗@4→D∧85P3∧ R3⊂H_λ⊂thZα-⊂(⊃&!d%H("&!T(εEεBαλ
)YY`~∃λD,5Y`λ¬%4Q0(E10 S⊗h ∩IL¬(@PαH$%@8¬∪j¬3⊃5HYα⊂
@%∃βλ~∀lp
l%α↓↓↓↓α↓"ε: ∧αRm(X∀"lX¬P)E4⊂ $S*⊂εE∞β;; (@
+≥
β⊃1αQ6J⊗!6⊗Za6BJLrQ%$hQ`≠[1∀ααα∧∧ααDItαBDYxbαDβ∩4jD u∪
(1"%∀λ∧$c∩d∧E) (@
∨%4RR
∀lp
l$J↓↓↓αtJ1$∧HH%↓↓α↓↓n∩zαV*RLaαJ⊗αJU∀pQ'3@7b"(∧∧
⊂ bU(P$c∩d∧E (SPANDARD-IFILE IFILE))¬
;8εv∩∩USHJ P,TERP1
JRST $TLREAD
TLREAD: SKIPE B,V$TLREAD ;CHECK FOR USER'S INTERCEPT FUNCTION,
CALLF 0,(B) ; AND RUN IT.
PUSHJ P,STDIFL ;GET STANDARD INPUT FILE AS OF
PUSH P,A ; *BEFORE* THE READ, AND SAVE IT
MOVEI T,TLRED1
PUSH P,T ;RETURN ADDR FOR READ
PUSH P,T ;argument FOR RANDOM EOF VALUE
MOVNI T,1
JRST IREAD1 ;READ THE FORM (POSSIBLY USING USER'S READ)
; AND POSSIBLY POPPING INSTACK INTO INFILE
TLRED1: POP P,B
CAIE A,TLRED1
JRST TLREDF
MOVE TT,TTSAR(B)
TLNN TT,TTS.TY
JRST POPJ1 ;SKIP-EXIT, IF NON-TTY EOF
TLRED2: HRRI TT,FT.CNS
MOVE AR1,@TTSAR(B)
SETZ F, ;EOF ON TTY MEANS OVER-RUBOUT, SO
PUSHJ P,TLTERX ; TERPRI ON ASSOCIATED OUTPUT TTY
JRST TLREAD ; AND TRY AGAIN
TLREDF: SKOTT A,LS ;SPCFLS - FLUSH A <SPACE> TERMINATING AN ATOM
SKIPE VOREAD
POPJ P, ;NORMAL EXIT - NO EOF, NO SKIP
PUSH P,A
MOVEI T,0 ;PEEL OFF A SPACE, IF THAT
PUSHJ P,TYIPEEK+1 ;WAS WHAT TERMINATED THE ATOM
MOVE T,VREADTABLE
MOVE TT,@TTSAR(T)
MOVEI T,0
TLNE TT,100000 ;WORTHLESS CHAR, OR SPACE ETC.
PUSHJ P,%TYI
JRST POPAJ
;;; (DEFUN READ-*-EVAL-PRINT (FORM ;DOP-LEVEL%EVAL
;;; (AND READ-*-EVAL-PRINT
;;; (FUNCALL READ-*-EVAL-PRINT FORM))
;;; (SETQ - FORM)
;;; ((LAMBDA (+)
;;; (PROG2 NIL
;;; (EVAL +)
;;; (AND (OR (CAR NIL) (CDR NIL))
;;; (ERROR '|NIL CLOBBERED|
;;; (PROG2 NIL
;;; (CONS (CAR NIL! (CDR NIL))
;;; (RPLACA LIL NIL!
;;; (RPLACD NIL NIL))
;;; 'FAIL-ACT))))
;;; (PROG2 NIL + (SETQ + (CON@λ@P!"@ZNVR@,R@@OP@ZRR$RRR~(~∃)→∃)β_t%'↔∪!∀A∧Y-Q→-β0∩∩wπ!π-∧2>Iα-~⊗I≡~α&:R-∩∞⊗B"α~V:≥"&>8hP%α∞b2→↓
a" $hP&6>4*5α¬e2&∩&42⊗J⊗t~∀%n$B∃αNLj
>1αiα≡⊗%→αR"*αRfB,!6&8hP&∞εLqα¬2JB2V_h(%α≤Z&B¬∧⊃2Z&∧bVL4PI↓α6⎇2⊗%α∩a"¬$HImα⊗EαJ⊗N≤J>9α
→α&R~αZε2,)αε:"α.⊗⊗¬→α&PhP&⊗b≤Aα 24JB2V_H%nRD)αNfl∩>1↓Zα≡⊗R~αR"∃¬""¬α%JB⊗⊃lJ84(LRNAα"bNB⊗≤∩&:⊂HImα⊗EαJ⊗N≤J>)α
→α&R~αZε2,)1α
-!α:> h(%A∧⊃2Z&∧bVL$KYαV:$J1αε5"⊗IαM!α"ε~α
,Yd∧-∀→JT
$XE`hT8Zdc!~¬-≤ $¬αdZh∀`H↔:5∧,8)∀d$→hr∧MDλTu≥X(U~¬Iλ∃"∧~D¬,LIAPPL*YU∧*
Yd∀LhA⊂KZλxU"¬I ∃~¬h→E,* →b¬≥ ~D*∧xd∧-∃)z%~pQ!∃¬-9¬αd:Yd∀LhAPTt→H$#!~¬-≤∧
αdλ⊃↔44|t⊂α¬<YIBb∧Z*$⎇∩ λ∀t$I→d:¬8~d-_Q!∃¬-9∧¬αd: u∧!⊃∪LID∧≥4 ∀r∧8~4*¬→zR¬<→jB¬$tλ4|uI→e,(Q!∀l⎇j4∧
di→@hT:8U%S!~4-%$ dLbA⊃∪\t→GSα
∧λ4rλZ4*¬I ∃~∧~4∧
∧9ye≥$→jB¬<z(@hP~
U≤D$
αd9ye_h!∀T445≤Mλ)∃"¬Ii∀b∧9It∀∀Z(T"
KQPPh!Q#[[4
¬-≤ $∧D-(T¬<MI∧¬¬∀zλU∩¬h→E,-4λd⎇∩
I∧*¬)_tE" λ∀e4Z1PS[74∧|2πHdeαDλeEαD
5βr →bβeJEB∧"D
#rr∧
tLdDλU∃∀z$∧⎇-AQ#[[4 ∀2¬IλUJ∧Iyb=" X∃$≤∧
Uαr∧
U≤,Dλd⎇∩
J$
¬ →d:∧z)u≥_Q'3[ZλZ%∀⎇*4∧Lr
I∧*¬;~5$,UaPPh*λDd≤ 7 M≤ZK"¬"AQ L≤→_R¬%EE∧4e¬⊃PPJ Yu4,∀
BeiJ∧$`Q!∀≤_T∧"bλk¬αHQ!∩∧lzhTJ¬EJ∀5EλI@hP_8∀L*
%BE≥¬⊃PPJ Yu4,∀
Be
:λT≥∧IAPPL*YU∧*
ED≥∧z HK8Zd-∃_)t%J λ∃¬¬↔qPU∧IH5∃β!→T⎇4Y∀∧
b
E⊂HK9irb¬λIB∧≥(~αl⎇ZAPPLHZ#~¬:9∃D∀~D¬d⎇ZD∧|2
∧
≤T¬¬≥M:HTj∧Z*$⎇∩∀≠Ehh c\I→dl%∧
De¬)→e"¬IJ¬∪
~¬∀Lf∀¬$ej*5~¬IJe∃≠∀
4MD()`hPQ!PS[71∩D∧XjTr¬IzαldZhTblI→dl|HTαBHQ'3[X∀∧ααB H∀l∀H∀αD4E⊃PS[74HJ∧∧ααD9yd"α¬λ∀t"¬
E%M∧λdbJ¬
5$
JZ2∧d→iT|$TλdbJ⊃Q#[[4↓⊂HJ∧∧∧4b∃∃⊂hS772J∧∧ααα¬
5$hH∃∀"Y_dLdT ∀t4→HRJJ⊃Q hS772¬≤9~α∧Ld ∀u¬ZD∧4LHTαE∧~:4," →b∧84∧∩J ~2∧Ld DLtT T|$UaPS[74∧e9t∧d,~hR∧⎇ZHdLdZ4∧Lrλ~#
∧→hB¬∀X_E$)HR∧Ldλ∃∪∀∃aPS[74∧5-*I∧-∀Yz$*∧HX∃4* →e¬-DλdLDT ∀r∧4¬¬≤,T
De¬)→e"JaQ#[[4λ∀e≤t D,
hT¬%%8~"∧|d ∀u¬ZD∧4LHT∧LR
E`hPQ)DLtXJβPL*:α¬"HzE∀%H!PPL
*%R∧5JdLti→D(h!~4\MλT¬$
(T h!∀∧≤→d∧~eJ*U$@Q!∩α∧
*%B∧5Jb-%→⊃PPM99∃∧*λ~#
eH~¬=∃AQ J∧
*%R∧~&∩e4zZD4LHZ0hU8h∩ L
)ETJ
JBd
5j44λ⊃↔5≤4~4∧
∀T d-4Z$∧LR I∀t
Yt$(Q*44
A~D$tT
E"d~8∃∩D5⊃PU≤h∀@J∧**5"αλe⊂HK:(U%-)d∧t|eYDLtYYt$(Q+∧≥¬
)phP→Yu4*
EE%%8~"D~⊃Q LlzhR¬%EHbtlxHRE"⊃Q$t⎇
)phP~IDt*
AE%%5jEHh!∀¬$did¬%"Hh%"tIa⊂K\yiEJ∧∀
E%Jλ8∀r∧λ~d*∧I→dl|HT¬≤-AQ Jα *%≥"¬λbHH↔:EM∧_8∀de∀
$-%Z)b¬$tλ∀r∧~HU∃¬)⊃PPJ *%≥"ε∃∧2H⊃↔2∧⎇$
4\M∧ u4
$ ∃ h!Q#[[4↓∩D∧XjTr¬(X∀"lXh∀bj%Z¬∀LjDαD|)%⊂HK8IuαlHZd,bZ
$LUAQ#[[4↓∩αα¬λ∀tα
(T"XZdbU%U¬∀→jBh'73J⊃∃∧5,h8∀db
(T"XZdbU%U¬∀→jBα∧x)"JHQ'3[Z↓∀ααα¬ Dl(H∩αDiE⊂hS770HJ∧∧ααD9yd"α¬ u∩α jTdbλiBJα iu"αλZ∩αE:H∃%-4
E%L9ye~∧iE∩¬%→u∩JHQ'3[X⊃⊃∩αα¬
D-∃
)∩∧Li→D*J∃⊃PS[71⊂Jα∧∧αD≤yhBαE
)∀s
¬λe,t8→Db¬
)∀s
x$RJ∀¬α="¬
¬∀Lf∀∧|∀%∃∩Hh'73XH∀∧ααα
K∀zβ6%bJH⊃↔3e≥λ_4+pQ'3[Z↓⊃∩E$z¬Td-hYBld→iT|$U∃∩Hh!Q hUIJ¬∀LjG hP~94M∧Tλ2e5IJ¬∀LjA∪\≤λX4Z∧iz"¬-8Z"=~ →e$-(8U¬"λjTt≥I→tpH!∀∧≤IHbβ
Eλ2Hh!~¬-≤∧
αdλ⊃↔5$⎇¬YD-∀YD¬¬∀→j@hP→*5α∧eIDLtXJHK9HT
4Z4∧LU
ZB∧4→HR∧Ldλ0hP∀ %∃≥D
De¬&⊃PPLYzd*¬EJE%≤~%∧~H⊃↔5∧L94¬-α
I∧*¬JJ4
⊂Q!∀l⎇hY∩¬%EHe"t9j0hP→
%∃Rλ5D¬ ⊃↔5∧L94¬-αλjBt≤j1PPMIId*¬EJE%~jK⊂hP∀λ4lTλ2e2ZK∀xh*IE¬∪↔!∩α¬
Z4DR
¬DM$Z*¬∀HQ!∀l⎇hT∧
b
¬⊂hP~
U≤D$
αdM
)∀sλQ!∀l⎇hY∩∧
FFhP~
U≤D$
αe%→qPPL**5"¬ z∧PQ!PTM
)∀s!~4\M d¬2-
&⊂hP∀ %∃≥D
¬∀Lf⊃PPL(8∀dddε∩d¬dZ¬∪λQ!PPh!Q hPQ'3[Z
Iuα∧HZd,b
h∃∀L_)D*¬8ZE$Lhz0hPQ*De5*:3PLYzd*∧∃K5∧t*Xbbe h%,26≠PhP~8U%TT
∧t∃XaPPL)JB∧
J d∃,e9E∧t*XbkλQ*De5*6∪PM
Z4B¬¬HT|5*I`hP→Yu4
λ∃E\-**DrbHZ%∃$e6∃hh!~4-%)T∧-∃*I`hP_)E"∧∃HU∃∃Ie4d-ε∃Sλh!~4-$yP∧-∃*:phP~ uᬬHT|5*I`hP~8U%T$ dLbJλ∀tL:↓PPM8ZET∩λ∃E¬≥→X`hP~8U%T$λ"d-
C(h!~4-%($∧~eλ⊗0hP~8U%T$λ∃∪
J(Dd
(qPPM8ZET∩λ~#∀
J_c
≤!Q M≤ZK$j∧~(td|1Q M≤ZK$j∧~(tu,QQ LU*:BαEE⊃PPh!Q$L4dλCαK1PU≤≠ $∀s!~∧T|$
E"`Q!∀L$~i∩¬%EF∪βαaQ LLI~dJ∧EF∪αpQ!∀e≤∧
E"c⊗APPLJ9α∧"FaPPL_HDJ¬JEBD"⊃Q LHI∩¬%EF#β∪ε&αE∩⊃Q LE)I∩¬%EE¬≤Mλ)∃"αyJ5αz⊃Q Llzj4j¬JED# h∀hH↔:4
4T∧2~≤J:α∧
4
D,M∧λdLdT dlQQ M∧z "¬αAQ%hH↔8Tt" xb∧Lid∧#↓Q c\Z)∀tMDλU∀Li≠α∧-)→dKBλZ$Lsλt∧-∀→i∪h!Q%≥,*JD`L→i∃$L→I∃T
I→tb∧y`¬t:
~TM"λ→d"∧Z*$m∃1Q#K[1_U∀Li~B¬∀X8U%~
λDb¬ y∀u$Z*2b¬IλT`$⊃P3 Jh∩3JIh⊃4I→R,AQLjfa_4R3I⊗λ∀Q*85∀h
h4R3jZh∃P*)00SλZh⊂3HD∀⊃4HitS4dλs⊃0)j4C!!"Q4I→R5∞AQL¬b$T`a&"H$g*"T)*h*λ)lij⊃dBE_L⊂⊂)`IDfgk⊃P(⊗!LεE_X ⊂)`RBfgk"H#((⊗⊃,!YεB∧h$h⊂jibDBD]b$T`a&"H f&⊂∩e*"i∀*h*)CE"i$S$l≥∧BDD]bS*"i⊂∩ i"P∩c⊂$g∃"i)*T*)P S)"`b⊗P"$iPa&"bβE$c"H( cdS!U≡_Ki`df∂⊗-FEαfgk"H(⊗!YαD]abU⊂*h⊂∀ "⊂(∪dg*"T)FE∧Sgk"P⊃,(⊗#⊗!YεEαfgk"H#&(⊗⊃&!YεB∧fgk⊃P)h⊗∀aYεE↔DD]bS ⊂'cλ$c"P∀ cdg⊃U≡_VT`df∨βE$c'λ( cdS π,[
IT$ MOVE T,PDLFL1 9C@∨≥Qβ∪≥&xZ@F↓≠A∧"1αB:⊗M1b→α>→β
NQα∧"1αB:∃x∀TJQ⊂%t~ε2D
∧$diJ0HK8iE-≤∧λ∀db
λDb¬λ_t-_Q)∃" ∀¬e$JXPhS&∧@M<~)b¬]9 u,dD
E 83Q6∧λS∃4i∧∀⊃∪∧
⊂1q*7ow#!)1Q(
823⊃"B3)zQ(∃¬Ki∪V U∀4H→Q∪s+Q"B3)zQ(∃
E∀⊃∪λiB"'_pπg*⊂dg)P∂⊗P⊃P∪c⊂("∪⊂)bcTV⊗⊃P∪c⊂_iU
∪≠=)β~APY'(QQ(Rα∩m+! βQ
A'≥≠≥(↓)β¬→∀A)∞AI
→
(~∧∪¬∨¬∃≤↓)(X\4b∩%Zα2>N~α>→α∧"1αB:⊗L4PJ"JJRαQ2B$b~1DhP&J>"αQ15 h(&ε$"%αQbBQ$4PJJ>Q¬!15DhP&RH4¬"cvvβββ↓Q LH@¬"e6FSβ∪ε¬Be¬X∧Uλ ↔#"A~q1⊗Dλβ"A→∪∀Q$
∃∀λI⊃S!QQ0 $SαI0⊂T%)→
≤↓(Xnf@```~(∩A)→hA(Hnβ9AAAα↓P@L_J∧α∧EJ@hPα03i)λ⊃∃¬H4R3I↔β"W!↔q3Q∧ qH∩(hαP ∪AIH
IRP Z,,[P,FLP →
a Y'¬h4(→Yu (αdP#-
MH∂-
↓0Yε@⊂¬Uα]!⊃∪@8p54hT⊂πg"H("&⊂∀ cbFB∧fgk⊃dP",1(Z) ; FOR Z TLεADJN@4PJε 4I∀∧"eλ_tm≤αb"'a*b FOR SAIL, MAKE AH@_A∃1∪'λ4⊂
N¬ J6 =hT¬%"HAPPL*:"¬∧IJ5$@⊃∃e≤,T
∧$e8@↓QTp!↓→3uQ)∀⊃∀λ_tr6E
∃
#!
p)α(`fcbH"∩,(⊃&∩h∃V∧@
SA$ JRSP .-4
TERMIN
@%∪8q∞t∪5∨%
APY71↓⊃_XY5A →:~(∪¬→(↓(Y5'A _~∃t∩∩`.,r⊃α>2α&~9¬αε≡εt84*⊗∀J0∀K¬!∃≤-K("∧t→EE$
λ(T K9→dM∧α03 ≠P5∩)YH⊂1JH4H∀λIλ∀q*J4β"A~q1⊗IT⊃St*Y5β"A~q0
-∪P)"`S&,FEαibb-∪P# iS(εE$Q'⊂ ∃SEHECS, SETZM @)e≠'.~(∪' i~Aβ≥Q
→∞~(∪' i~Aβ≥Qβ$
∀%')54A-
¬→⊃∂∨,~∀β'∃)5~A≥π
1H%niybmTX∧Sd
qu3λD⊃10)D⊂∧g)Rb"P#PFE∧iQj-&@⊂α@
!∀"@$!→T⎇Q(∃¬Ki3∩)j∀⊃∪¬E⊂3U
λα ]
λ MOVEI D1∪⊂~R∧"04λLj>J⊗JαQ1∩$*R&∞(H%nJ-~R>J*αJ⊗ε$*I∞M∧b&@%IHR∧lYaPPLYzd,j
AE%L→X∀ph!→T⎇∀Y∀¬"eYjELHQ!∀l]hYR¬"JYe%L→X∀ph!Q#\4→IE~¬I
$⎇1rβ! ↓Gq4R)@$Y⊂"T$g$ZH i$g
aP"i∩dε5DERIN∃A EBIL5B ERINI6 ARIN4A ERIH
∩f↓'β%)= αN
"0≤∪∀
4
$x
d ∀⊂Sh{H⊂λ"∪#&)FB∧¬
;FAL@→&↓∪⊂_∀Ph*εJLr%IhM~.&Bbα6V:=$%Nl
f
∃∧r⊗⊗⊃¬"0~¬YiU,tt
5LL)yE~∧→hB¬≤~*0hP∀ %∃≥DλU∀Li⊗`hPα33jH(⊃
;4qs 1"Q4I→β$Z]αe*fh⊃P"⊗"T$g~`CE MOT¬β∩A_XQλR4∀∪→' AY'∃∂→∂∞4∀∪⊃%1∩AX5'∂'%4⊂∀(Lb∩ α"b`≥≤Xx%M"β⊃h:u
⊃¬≠!"Q*)3M0g∧fgk∀dP),1
AN@CAB R,(F) ;UNMUNGS THE SYMBOH HEADER, IF NECESSARY
HLRZS R
HRRZ R,(R) ;GEP ADDR OF VALUE CELL
α CAIL R,BVCSG
CAIL R,BVCSG+<NXVCSG+1>*SEGSIZ
JRST .+2
↓JRST ERIHkλ4∀∪πβ%_A$Y !+%
L~∀βπ¬∪_A$1!~Nd
NP4PJ*JN ↓9-HhP&*J≥!α⊗JLqV⊂4PJ"JJU→↓"IHH%nVtjV:≡~αR"∃¬2ε2V*α∞⊗2baα&→¬~R>J,!α&9∧b&NQ¬~Bε∞(h*⊗JLqV⊃hL
>
*rα→2⊗∀J9VhP&*J≥!α⊗JLr%TQ!PT-)→c,!→T⎇4Tλbe]8~%$|%ED∃hQ!∀∀eDλbde
)t=PQ!∀l⎇hT∧"e8~4<d1Q$-∀→fT∪P→*Tm∧TλBd-)→dK0β"B)YuQ2$λK
⊃¬⊃"B3
9λ⊃K
81s∪hq"B2
)∩(⊃EE4q1j96KlAQB3⊃λ$⊃⊗j81pV*E⊃pj:
⊃
+Q"B2J*uλ∀h~∪pL!QQ4R)i-NB)
TVTd 53Qj↓ ¬∧iRdh'⊂∪jg#hαD]`∃NMUNG TALUE CELLS (SEE ALIST)
JRST ERIN6A
MOVEI F,BVCSG
SUB F,EFTCS
HRLI F,(F)
HRRI F,BVCSG
HRRZS (B)
AOBJL∧AX8Zb~∀%')54A≠+≥≥ ~¬I∪⊂→ZP&6>4)α 2\*JJRpa2⊗J∃"0∩[≠QPPM8ZETjλZ%∃$aQ L∀JD∧αeY~%$pQ!∃≤-IyR∧-**58h!→T⎇∃9∀∧∩bYj44_Q(U∀Li⊗3PLYzd*∧5J45EH)∩D∩⊃↔5∀-:Iu∀*λ9D|∀(Z$," It≤
I→tu_Q!∀l⎇hYR∧~H
45EH)BD∩⊃Q Lx)$b∧%HU∀Li⊗0hP~IEB∧∃ESλh'8Tt)HR¬$λT∧LuHZ%∃-
D¬≥M:HThh)_dr∧~J2eXQ!∩u≥Z8U"¬5j4l
95BdLX~4]h↔:$-≥Iz$*∧→jD-∃*Z¬"∧Yh∀∀dT T
≤:1PPJj:U≤-D2u≤Z93∩bI→T
≤6+PhP∃j5-≤ZD¬Zu8Hc
bJ&s¬h↔:$-≤ZD∧$hZ"¬<z(E_h!∃e≥-8ZB¬Zj8D3∩EJ#;¬QQ%hH↔8Ttα xb∧Lid∧M¬1Q M∧→yd<→→`hPα2TJ:λ
⊂%⊃".tHZ∃0 'λ*#P!Pf""iβEαEεB)`i*∪a_
;@)U%≤A∨→A≠βI⊗A¬∪Q&A&p∧¬≤
*1PT|hj4-"λ%RpH*8∃$|&↔ LhH4jλ∧p*IpMc
J∀p4EλJ#"A_3pRJ∧⊃K⊃*)3M0AQ@∧`gR P#⊗∀`j'aFE)`U'a≠]βEj*∀↑#a←⊗εE&∀)'cm∂↑W⊗XCE'c#∀bj⊂_βE↔$%Rd SATGB⊃ SATO@∧n~∀4⊃! →→→&t∪M)4~(∪'∪1 ∪ A9
≠%¬→-8~(K AAAba@$%\"⊗"⊗$)αBε<*M99ph(%Eβ↓A1⊃iλ%mα5∩> * [∃≤,HebrpQ!∃≤-K$¬ H↔4α∧hD∧D-(Tu~∧ zr∧l→k∩∧hD¬ 9⊃4Q$⊃"@↓Gtt⊃(8R3Q∧
t⊃0f∀∀p⊃(⊗H∀tλXmH∀jλ0m(
:⊃0m∧
t⊃0fH(⊂tλXlc"AQTu0JJ∪α4jλ0r0)D∃P4I_0S⊃$λR3Q →Qh⊂)hλ∃3H)3Q∩)Hh∀SjZ⊂3Q*1"C"A→QPs↓⊃".r ~u∪tI_p3λ Itth¬U(⊃5HYU∃0)I⊗(⊃IJ4rβ!*t⊃0h)3Q∞A→3uQ)T∀t
:∀uB'⊗λλishλ∧ 103J4⊃Ssd 4h⊂(H∀H∪hd∀uPd
∪h⊂HT⊂Su)hλ∃∪d R3∧
p5Q*4⊃β"J:⊃0l'!3⊃⊂D
K⊗lFV-,¬E
∃
+Q,lλ e⊃Ssd∧λ∪1(→Th∀jhh⊃Sit∃∪hλ((⊂SjYQλ∃ t⊂ssJH3U∀d qH⊂(8h∪C!!2U3*λ(∀C
:⊃0m↓QB0p)→⊃(∀EF-b"'⊗wm$ +⊃Sitλλ∪(X3Thλ 3Qλish∃ t 3*
¬!"B$ TTu∧
t⊃0f1".sjI⊃4Ui~q+λ ~h∀⊃
ε,λ∩)ju∀U(:∩3sED∀shλ[∩5β!*t⊃0f'@2∀J+H∀C¬
J""'→Su⊃$
q3∪∧∀⊃PsiZ∪∀HλH4⊃3HJh∪sD
∩⊃(λh0uβ!!0p3)D∀K∪Jλ⊂ε&∧B]P*$⊂j⊂)∂P**∃L⊂≡P'∃fk f⊂aUQεB∧P!`Sf"P)'("&∩εA∧Pλ%))jλ)h"aMεA∧h∃id⊂#⊗(⊗*εB∧fgk⊃dP*,(R)
LSHT,-SEGLOG
SKIPL T,ST(T) ;NMK1 WILL WANT TYPE BITS IN T
TLNN T,$PDLNM ;SKIP IF PDD NUMBER
↓ JRSTSPEC5
↓HRR T,(FXP)
LDB R,[251500,,(T ] ;BECKM@UTE ADDRECS OF FROB
CAIG R,17
↓ JRST SPEC&
TRC R,16000#-1
ADD@∩AHXbQ $~∃'!∃εdt∪A+'⊃∀↓ Yβ¬%≥f∩m)≠!=%β%∪12Aπ→='
A)!
A¬∪9λA¬→=β⊗~∀%!+'⊂↓ Yα~(∪⊃%%hAαXQHR~∀∪A+'⊃∀↓ Y≥≠,b~∀∪5∨%~↓αXQ$$∩wπ→=¬¬$αα2>
∧z→α~∀z↓α↑M"!α:-9α:Vl∩⊗H4PJεε&pαI2∧KZ≡JVl∩2∀∀PIα6>4*5α¬bBA$∀PJNV ¬~A2I;↓-D%]~=αJ*j>B⊗rαR"∃∧∩&:⊃l∩2>∞Xh(&6⎇2⊗%α⊂¬BD
⊃↔5$DZ(T¬J →dDL)~DLTt ∀u$Z*%-¬J1PPM zα¬αH⊃PU≥λX3+P~ uα∧k
αe Q)∀4rλF∪αe1Q%≥∧X6CPM
Z4B∧k
αe Q!∀l⎇hY∩¬"H¬¬"HQ!∀≤→`¬"e
y∀lLjAPPJ *%≥"0¬∧⎇∧λeEαJAPPH→*%≥"
y∀m≥λ;PhP_[∧B
%BE"⊃Q M∧z∧∧5E¬J@hUQ↔4,TD ∀4rλF∪h&⊗α(L)hE%∀~∧¬≥∧X6Be<→z5∧~JEB∧-λ9α¬∩H¬¬"HQ*5∧4H∪PL
)B¬∩E
BHh!~¬-≤∧
5αe!Q Ly(∩¬"J:∧,≠⊃Q hU:λT≠≠!_4LxT¬∩c⊗fββQ!∀U∃:D¬≥∧X;hP~J$
¬%F∪3βε∧2kλ⊃↔5∀B xb¬∩ iu*∧λ~2∧pQ!∀$I∀¬∩c∃
αHH↔:5∧,8)∀t$→hr∧|hd¬∧$AQ LU*:B¬≥λX3⊂h!Q hPc\Z*%∧⎇∧λU∃∃ jR¬,(Bα¬,(D¬,∀F∀¬,∀J∧¬,∀Jy∀j¬X(C"¬Yh$LtD
Tt∀hFα¬,h)d#
Yd∀tF∀¬,t)hEα¬Yh%<LqQ hTZ*%∧⎇π!∃∧⎇∧λeEαHZ%∃∧_A⊂K] zα¬∀ZJU∀rλ_E∩∧xhb∧5
↓PPLYzd*¬JED≠⊂⊃↔5∃,dλ∀db xb¬$λT¬,uy→d"∧λ→d$dZ*0hP→Yu4,T
Bd-**¬≥ ⊃↔5≤
hT¬ h!~¬-≤ $∧5E¬JTu=
)phP→Yu4*
ED-∃*
5 H↔:$-≥Iz$*¬8~d,"
APPM
Z4B¬¬HU∃∃λ_@HK88∃4*λZ%∩¬(ZE-∀dλ∀%⊂Q'4,uJ+∩¬∧y→e"∧_d∧tz
Ye<LhEU¬∀zHT≥αλjTt≥I→tu~
9∧⎇,HD∧∀
λ*Tph(Z%∃∧jW M≤9~∧
¬JEE@*plB!↔u∪uλ→⊂ε,P∀'h⊂'Q#⊂ ∪PECPDL FOR ERRORS
UBD0: TLZATT$-D∩∩w∧zAαN∧*εB∩bαR=α∧bε∞∃¬~Bε∞L2&⊗⊃∧J1αR h(%↓¬~⊗RyPλ¬
∃
"!↔q4TJ tλ∪*Zuλ∀hZ⊂πf@ - SEE UBDP~∃+¬⊂t∪πβ%_A)(0Q' R$∩w%M)∨%
↓)⊃
AM! 1∧∩eαJ-~R>JLr≥αZbV⊗LhP%α*∃~QαVt∩:↓HHIeαVu"&!↓E~A%αl
R∞"-→↓"R"H4(&∧zAαNαbH4(LB2Ji∧!2H4PJR2i¬⊃15DhP&∞εl:∃αIeRN
HhP%α*∃~QαV∀!L4(L~ε&≥¬⊃1"NαH4(%∧RJNQ¬*
⊃PhP&N.Mα9α⊂hP%↓:dzN∀$HI↓↓↓]≠?7↔⊗{∪eβ≤≠C↔←.!βS#*αNB⊗≥α∩1↓jα"ε2α ¬∧4PJ
:∩%∩εAα,∩⊃M∩,∩∩AH@∧ ∀TVIT∀K
λE εE*P _]∧R))j∃a"εEβE*a"∀≥∧h*Td⊂#,∀⊗*∧DH⊂⊂∃c~szy2H7zz⊂~s⊂ ↔ITHOUT-INDERRU@TS
HRRP∃∩↓(XAλ$~∀&≤
&)α bB↑ε|J2P$J↓↓↓n<JR"≡-!6&:αHU∃∃X
E~B
⊗v<π∂ε\8
,≥≠≡#!!(∩TJ:λ⊃0HJp3c!↓4∪t∧λT⊂
A (λ∧πtY<nMβy2P≤z0z2CEd)∀-&P)∀"∀DBP⊂⊂≥T2qpz\rP2i≤5y⊗⊂≥tv6⊂≥90x⊂≥44yP≥4vrFB∧e))U⊂*a"αDP⊂⊂∞aww:~w:rP~s⊂1g[:4w:YrεEεB*a"+Rg]∧h∃id⊂(-kdgUg!.DBP⊂⊂≥SpurP≤zy2P≥tz47]z⊗tg≥2y9:\:∪riλ3rz9H1pv6→rεE∧T'h⊂#⊗(∩*εB∧h*iR⊂#$()∧DPλ⊂≥kt]4⊂7v→⊂;0v≥p¬ to store
MORSS (BP⊃ $∩∩@@w'β∨U≥∧AKβCC↔∂'→β'Q∧¬⊗rεLXg"ε≥F H!→%∃≥D
T∀Q!PPH*X$##!→∧e∃$λBbE T,(R)
PUSHJ P,AUNBN0 ;FOUND A FUNARG BINDING BLOCK
POP FXP,T ; - USE SPECIAL ROQTINE TO UNBIND IT
JRST UBD
UNBIND: POP SP,T
MOVEM TT,UNBND3 ;HORRIBLE HACK TO SAVE AC TT. THINK ABOUT THIS SOME DAY
UNBND0: TLZ T,-1 ;AUNBIND ENTERS HERE
IFE D10,[
UNBND1:↓CAIN T,(SP)
JRST UNBND2
POP SP,TT
MOVSS TT
BNDTRAP ,UNBNDP,TT, HLRZM TT,(TT)
JRST UNBND1¬
]; END IFE D10,
IFN D10,[
PUSH FLP,R ;Sav@∀A$AM=`AG←αkCπKO≠?9↓D≠π9∨ βWO∃∧2bA↓jiβGO,!βS=∧εε∂∨1Q HH⊃∀ααβ4λ⊗rε≡,w.n]nBπ&t
tL@u3PE⊃ B3)zβ"dP∀⊗(#dSβINT ;For @
←[aCISg←\0AMCGQ←eKH↓←khAα{⊂∩πMRεf⎇}hUYh$t.B(`dg∃⊗∀)h
D@ ;End of looop?
∩@↓∃%'(↓+≥¬λIα~∀∪A∨ A'@Y)(~(∪≠∨-M&A)(4∀∪πβ%_ αIbBRQ$HI↓↓↓\KEβSFKMβSF)βOC,≠'π1∧∧6∂≡T
¬<Ly→e#xQ!∩α∧**5"¬Yh$t∀α"$∧λ∞`∧9<k∧
_8zd
=β"A→∪∀VIT∃∃β¬
∃
#!!2TTjD∃3PIh#"KWh⊃3HD∩1SDλ,↓QA"U)hSQ∀π!4∃4i∧⊃R∀¬Jα"(∧∧∞qR(z4Q( Zαj⊂$Q⊂+dj∩'jb-IJTERRUPDS
∪⊃I%5∩APXQ)($~∀&≤
&)α ¬E¬<→y∀e ⊃∀ααβ8y∃$DzZBlLh¬⊃**U0λ*∀T⊂$ S ∧@→
↓'!π%β⊃2Hh %αU∩N@"λYd¬<→qP@!4∪t∧λT∧ ⊂,T ↓ ;RESTORE SP β)∀~∀&DbJj5¬"Q1α%!$$∀∧αβ](X4
8T∧-∃)z"b¬y→Db¬J(∃α¬I ∃~¬I→T(h!→%∃≥D
Tt∀hB⊂HJ∧∧βL≤βsU →β*bP∩c⊂!gS*$g*QbεEεB*g!+Re]∧h∃id⊂(-kdgUg!.DBP⊂⊂≥S`ebP∀ji"P∃dj$'Uj⊂
INTERRUPT'ER GEDS CALLED
POP FXP,T
PUSH FHP,TT +WIT@ OLD FALUE
JRST UNBND1¬
;BIND BIND4 BIL@λjA
↓∪≥λPA¬∪≥⊂bA!∨A¬∀AπA∨!¬∀↓≠β↔-A≠β↔Yε`A≠¬↔%εBαα6ε.4~aα6ZZ
LhP4)Mβ72∧∀→hBb∧→hB∧l→8Rm∀→JT*L8YDb¬)zU$LhZ2rα↓Q#@7nh∀
Zr∩H
¬⊂R3HDλλ∃i~⊂λ∀k→0Ss∧ 3H⊂%D∃P3
X(∩3Dλ4L#D∧β"Ng↔hλλ∧∧∃4q*4⊃sS∀⊂+λ
J∞hλ Z4uλ
85Q(
A"Nng∀∩Tt∧
∃∪(→uPh∧
r5∩∧λ3H⊂*Is20d
v30Iyλ∪sD
∩⊃(
λ⊃λ
y∩0r∧ 4h∀ z∀⊃1¬⊃"Nng∀λλλ∧λ3Qλ
I⊃(∃H→∃1( →β⊂!↔λ)"`∀URNS ADDRESS OF NAW VALUE CELL IJ A∞
3+; (LATTER CRMCC FOR BIL@1 ONLY). USES GNLY A,B,TT.
BIL@λt∪M↔∪!≤↓)(Yα4∀∩A∃I'(A¬%_
⊃ThP&"2∃Qα¬1D $4)α↓αb∞%αJ<4PJ"JJRα¬1α
H4)↓αα:>B∀x4(ε≤
&)α
bNV:∀zV*⊂hP%α*∃~Qα
Lr⊃DQ($LTFG M¬Z9α¬≥¬E∧
HQ!∀E∀IP∧
b
:αHh!_$t¬J(∃α¬8J∃¬-%JtL@pSQ¬H+λ∩
*TS ⊂⊂i_V∀⊂TFE∧T'h%⊂∀⊗εEεB!$g"
]∧fgU dP K+'$fαDXALLOW PURPGI TRAP TG WMRK JUST
CBIND4: JRST BIND4 ;@→∪-
A
∨HA')E∪⊂~≥¬ 4(∀T∩&:⊃P&BV≤AαA2≤∩&:⊃ H%nN-!αVA∧2>Iα≤
21α$yα6ε]24(MαVN!¬↓2λ4PJBVNBαA2R h(&6⎇2⊗%α∩bFF:∀zV*⊂hP&*NααRQ2l
.ZhRB>B∀Q`⊂M zα¬αH!PT≥ z∧∀SαB4 z⊂H∀¬J∪t⊂I!"C"IX2uPg∧h*iR⊂#$(**∧DNβSAVE RE@)U%≤Aβ⊃ $4R↓↓αN∧*≥¬)t∧L@U⊗P+↓ S0):Phλ≥αiedh∪⊂ V#⊃+!FEαe))jλ&`ek⊂YFE∧Ql!d⊂α,@FFTC
XCTPRO
HRRZM B,FFVC
NOPRO
MAKVC1:∪⊃1%4A∧1Q R$∩w!∨%≥)$↓)≡A'e≠¬∨_↓⊃⊗ε$*Iα&~α> 2λ∧uλ_pc"J
4U∀H~λ∪0):β!P→,@∧X∪⊃I%~Aα0Q∧R~)≠β↔
0t∪'UA YHj`VB$∩w!∨@A!∂∪9)β$X↓%β)+I_ αε$"JεN~α6→ααh∀e,Tλ4,@⊃β"A~∪t∩DλT∧(⊗αDX IL∧AαX↓β $↓_∞→αα;∪∩∧)It9h∩3DλA"C! 1Q(
λ1r3Hu⊗c"IX2qPf7@∧h*Td
P,CGNS1
α SET@∨~αα⊗@%h8de≥↓Q LU*:B∧l→:dλβ"W!⊃,q3HD⊃qH _Q(∀λ_p∧g#CE
;C #
_∞ 54∧T`(pπg)H'!gg∀P agSαS BGL¬≠β⊗αα∀t9ye_h!Q%≥0U∃ A5P4I→βj`∪ L𠬬→_Aπ=_
N⊗α*0hPβ"R(iH⊂R(yβ*f@,Xε~*≠
≤@pπ ∪: EP⊃π A(@2L
≡∩
h ⊂L*:α¬"β⊃UhdπF@&4⊂λ&⊗βλ4B¬EK∀<H*@hPα2TJ:α⊂ aSβH
&~):∩%\*0∀λ∪qD 1S@⊂⊂αIGNUM
∀~(K⊂~∞|rMhε¬*N!ααbP4)h4`9β)U∧U&-⊂ K⊗XDFB⊂⊂⊂!⊂eh ∩O
ACOL¬&t∪M↔∪!≤αα~
LHI`≥⊂∧$iH$iP H!`∂NS L@∪↔∀A1π∨9&~∧∪A+'↓∀↓ Yβ∂∩∩`.∃*QαVα8U~∧βsS∀⊂0pjYαjf U'i⊂ CE MOT¬'&A∧∩∩%]~P≤
∧ ∧@∃Q4d qH⊂%D∃∩⊃)@∧¬∀@A'!
!%≡A%_
Rε≥@4(_[∧9λ⊂ ⊗⊂ εF@&$∩wπ∨9&A/⊃=→∃ααyu∀λ⊃TI@d¬ A
λ∧@@Aa∞@%λ∧SaQ@∧bl⊂βH A1
~LhQ↓↓αtzBJ<hP&Bz "¬αββ"AQR1SDλR1sJYαV-FBαλ
)α↓α
ε]αJ<4T∩≡ 4X→3@! ∧D]S`ebP⊂P('iRh∧IVE BIGNUH
@QMβ⊂⊗∃∧
Mα
t~0≤@Tj#!!'!gSαS: SKIPN↓
~λKZ∀LyjTj∧9ye≤-!Q M¬X∧r $∀⊂(xc"B([⊂r⊂⊂T∧@FF@∧⊂∀$∧α¬D8¬∀
)c"B([⊂r⊂⊂T∧FFB
L¬∨!∀x4(~ u∧Rλ∧↓QTεDDNβEND↓_∞→αL20∩∧)_te,QQ c]9≠∧l4
4MDβ2d$¬U1∃εD∀r6λ~⊂εP)Rl j1 PFBFAP PNBBA1 PNBFMK PNBFM6 PPNATM PPNAT2 @!A→β(h↓!!:
!P∩¬λ∧∪H~α→P(∀' j
CE
;8εvAa!→>$*~∧~(u,@13U∧ 3H⊂$¬∃r5 ∧⊂P4hW,,EDλSSj p∧g*∂h⊂ ,
λ;;;AJD REP +∀qα¬α≤Jb
& αP≤](@λ →β⊂ ∀T,∧@Aπ1≠¬¬I&Aβ→0Aβπ&8~∀4U~&bX→3PLYzd,Jλ!DLS¬2∪αpQ!∀U≥∧
Be≥λX4∧LhAP@J∧εα∧∩Jh$
≤QQ Jαε∧∧∩eeid⎇∧y→e h!~4-%)T¬≤M Y3⊂h!→T⎇4Tλ∃∪
K6C#βdεαbe9≠∧l[+QPPL
*$`9(∀C
96∪2f⊃ +ThX(⊂∀EJ∀Pc!!4∃4i H∀
R3Uλ⊃".ph→⊃λ∀
)3U⊂$
∪h⊃+
⊂ε'b⊃aP*$⊃P i#Ufbg*βE MOVA DT,SIXMK2
JRSTUNBIND
α
SIXMK1:∪π¬∪∂
A∧Xbh`$p∞RαM→αNεM→α∞>u2⊗JQ∧b6@<Z λλ_4q(
Ih∃4
λ4C"A~∀Phλ∃
α'acg+⊃i*⊂!R i⊂*∪β SIX@IT
T@→≥∀Aβ$b0j`≥Aβ↓@4%jT%#G!∩∧LJλ"∧
H~#λK9X∃L∀T
4
∀T ∃"b
Ydd-:4∧e(X∀%J λ∃4(⊂r+↓ B4 Z⊂H∀¬A C"G↔nh∃λ→q(∀i≠⊂R5∧ 3H∃
Eλ⊂Q*J4S@λ→H⊂5 @ddaP∀lfa'S⊂ g A.¬
;8εvA5¬β ∃λA¬→¬→↔&A
≠ ⊗: aα
V αRJεdJ2: yd-~λIt`$βj↔εB≥]]@⊂P-"i∪β WORD BECMHε↓)⊃
A¬)∨
@λTD\@↓'β-LA\~(~∃'∪aβ)5PJN⊗R|iα2Bt04(εlzR*λ5E∧t*↓PPLYze≤J
@¬λ4pr)∀↔
W¬⊃"B3)zQ3(
E∀∪PJXC"B*85⊗S$
∪PU(el#"J96⊂5ε↔@∧e*Sh"P*∃⊗)$g∃ i'∧Ni$g*⊃i'⊂)Pi"`∪ F
α SETZ T,
α LSHC T,6¬
ADDI T,40 ;CONT@%(↓'∪!¬%(A)≡↓β'π∪$~∀&L"B α ¬D1 ∧]iU$ae@ @π⊃β%¬β ∩⊗α*2∧Ld
∧t∃XaP@L**5"¬9≠∧
β⊃Q hSαh
MH P!j∀$g#@ IS IN PFBUF, @)∃%≠∪≥¬)βλA 2AαA9+⊃1ph!mmX∧∧d|8~D*∧α5∀dλ3Q⊗λ g" @πβ→_↓%∪≥)∃%≤A <A≠β↔∀Aβ≤A¬)∨
\4⊂∩*∧r
ε!P&6>4)αQ2∧rα@4GUMENT.~∀4∃!:∀26-hMαVN↓¬↓2∧∀PJBVN@αA2∞∧zBε(hP&N⊗%R5αBt∩V_∀PJ6.Z*αQ2n∧r
V→bbB:
,1-FThP&
2"αQ2Bt∩V→.eα0∀∃XeSλh!→T⎇Q(⊂*&+∀∪H
β"B)Yβk"dH i→ K&('!∃c∃!,U)kbεB∧d))∪βI B1!≥¬
4h∩α]M
A¬⊃0∃¬(1P@L**5"¬λ∧R)@* FEβE('!⊃&[≥∧R*f`&⊃P i2A(C@OPJ↓;GIP
AU A&2α2=αlzJ*λ∧SiYαP$gλ(#!*Q∧E∧dQ(!⊂ K i_DB]bf)QP)`∀I@π⊗Aπ!β%βπQ$A∪8~∀&≤z*¬α
⊃J¬2≥α>BλhP4(Q!P@HαC"I_SH⊃ε⊗⊗c!πnn`λ→βc ⊗ERT APP@≤A%_ αR αR=αq↓
ε$z5 1∧I0∀+H⊂)D∀k1+
∀H∪hd⊂4∀
)t⊂R(~α"P#∪βRM.A'β-∃&A\4⊂λ (αT∀ @ j&@:
IFE SAIL,[
SKAPN CE@+@~∀%∧RJNQ¬αB:ε!⊂4(→ E∃Rλ¬⊗∃*εE∧PβAIG↓(Xb`$∩w!∧q≡Mααy∃$Bλ∧∀I@e"ajλ!"`∀WEEN 1 ANDb`~∀$A∃%'PA!!≥¬(d$KYα6Vα:B∧∀TλUE¬(Z5≤,D ∀`$⊃⊃0dλStS!Q@∧fgUα@
A ¬E@:α*⊗⊗∀'!*c↔F@
SEPZM↓!≥¬+_Vb$KZ0∀11⊂∃$ S @¬⊗∞
*N∃α|1α∞X¬(λ*cFEαb"aaSh¬ @(α`$%NαJ%J∧9ye (αi*$Sα@∞A¬α0∩¬It∧@5(∀jJR3QaQ@∧P%∀)j⊂(∀' j2 3ON @
β∪1+%
X↓∃+'λααJ-hZ%"¬It∧$0h⊃I@i&`jβE JRSP @N@@
β($∩w>p∧¬≥88U≥~βλ⊂iYβ)P*T⊂ j'SP#!'SP)`∀RIH
∞~):∩`.,r⊃α≡2α&~∃¬~ε&0hRBBh~C∪Pα2U)Z⊃H∃
E JdaQ@∧P&Si"dP⊂T∧Q.
λ∧∩A∧zB)αα¬@hPα4∃*9⊂π⊂(_@
PUSH↓
1 YQ(∩(M"2iααJBbk⊃Q M¬X∧r $∀∀
P5¬↓⊃,¬agSαVE@%PA!%∨≥%β≠≠∃$⊂∀(Mα0≥αλk¬αeJAP@!2∪∀K)P ∀T
∪!U'⊃)¬↓2BBt
QP$KZ≤@qP"T*⊂ )∪βJECT
∪∃I' A↓=!β∀~(~∃!∧rε@#G!P@)1Q(
823FA∧aPdg⊂*∃⊗⊂
! ;77\h
@;tπSr∧βs2*J⊃1⊂∩ f#⊂∪βF @!A_∩(JαN.&∧ α¬2] 0∃@ ∧D]T ¬PLACE IT WATH *~∀$@A¬'@A(@25Bε <h∧b!↔qu∩λZUr4hT∃0 bH P#$V'*fFB∧fgk⊃P!⊗⊗LT(∀FB∧h"iR%⊂ ⊂,AH∂≥_h ⊂LYzd,@(⊂#¬V*∀
!Q@4∪j H⊂λ⊗βE(
8π≥λαα0≤2 _d*¬8→∀`HαR1I@⊂)`dS⊗-FEαa`dgλ**⊗⊗LD@ ;750∞nn\@rlA=≠∪))∃λA↓β1A>2αBBaQ J∧**5"¬λ d
#⊃⊃∪@:Q0λ&⊂abP$U⊂+dj∩⊂⊃εEαe*fh⊃P**,PP@≥βPr∩αv|A≠∪∂!(Aβ&↓+→_↓)%βP@`AβLA∨6M"R,AQ%¬∧βP5ε@≥j&∪α@
A%!1]]β↓A@$KZ2ε~α@λ *4q∩(k(⊂
$⊃P)dl⊂αIT CHARACT@%&4⊂∩A∃I' ⊃α¬α0∀
F1⊂K]yλT`$⊃∪sHUα⊂!i⊃`j"P⊂dε ATLπ⊂∃αr⊃α∞|rMαyjD`4⊂ε$iU∧¬∀∪1'⊂A%!1XQ!∀U∃:@λ
⊂π j
αλ
*hH%n⊗t!α>→∧J~9αα8∀L@β"C!)`R PP@≥βPrtβ'-∪!αA∧Y7"]t~∃!↓9β ⊃Mβ!P@&L "*
4r∩D
∀r+λ5∪#!→_∩∧T*id%λ(∩('⊂ εAT
λ¬!!≥¬(j`(Lj6@4Tλ"bk∃
αHh!~¬-≤ $¬αd9ye_h!→T⎇Q3 ⊂⊂T⊂
!λP)~∀%!∨!∀↓ X~∃t∩∩`.,r⊃α≡2α&~9∧!E@4P1n∞
"BVM∧~εBB≠ α∞ε$∩εIα≥"εε2bαR"Jb1αRE∩6@;T
DE∀zv∩¬$
)u+H⊂
$∀',*∃$)'kMP*$)∪hπ3 THRP⊃∪PA)↓%M!εA$BJ∞ε⊂∧¬$E)zs"∧X*Td∧βh⊃**Lλ⊃i@a)%@∩dπGBND E@OPJ~∀4⊃'+¬Q)_∪π¬)πX↓)⊃%∨\XA∃∩N⊗Qb↓0∃≤X@∧λ3Q⊂⊂αREAK ROUTIH
_h (αNsIZS03∧λp5⊂i↓ ¬!`U(*`∪: PUCH P →∧$∩wπ∨5!∪→⊂Aπ>$)α~>⊂∧αT≤~H4B∧YjD-∃4 ∧-∀QQ LLzhTJ∧∃E∧
H⊃↔2∧≤yZ∧e∩λ¬∃*)ThλH`j!dλ⊂*'Pλ∃!`j⊂βH"
MOVEI T,(A)¬
LS@ T,-SEGLOG
SKIPGE ST(T! 9SEE IF DAG GR TAGLIST
HBLI A,CATS@!
9πβ)1∪&~∃
β)!≠ `⊂LYzd,jλ∃D85∩1↓⊃.p bU⊂*h⊂⊂P!`j⊂βH FRAME
JSP T,ERSTP
MKVEM P$CATRTN
λ JRST (DT)
α
9CATCH-BARRIE@$4∃πβ) β$d∪A+'A@Y∧α∩mβ $AQ~A*,jAαRzαV"⊗pαR"J⎇9α&M∧"6 4QQ LE)I∩∧
H8∃%≥λ;D85∪∩*;⊂p5λ`a⊂≥Q& c@ AS CATC@⊂[ β%%∪∃$∩∧∪5≠ ~⊗h∧∧
@⊂p5 _α".jI⊂∧iP∩iP ∀HE CAT@π⊂A∪⊂~∀&U~AαQd*JNRH%nN-"VAαλ∧∧`(5h⊂h~⊂r⊂⊃) fbCE MOT¬⊗5¬↓2∞ε%∩R8Q!∀U∃8@λ¬
∃
#!↓αA≥aPh!d S&εE≥H*h'gλ g*)⊗]⊂ ∀T HAS ADR-DA∨A
β)π⊃¬→_A
U≤XA(↓⊃β&A¬ $Aβ→)$A=)⊃$αα~V:_h"∞R≤
21hMαVN!¬↓2P4PJε.M¬"P$$KZB>&u!αR=∧2&JN ∧∧d|8~DL\βH∪hd⊂p5λd f&λ#*gεB∧d)&∩P**⊗⊂`j)h⊂n!`j⊂f&.!Pj!gfH≥c& QP iP⊂P!gfT$f"bλ!`j!R f&εB∧fgk⊃fP"*!`j$Q∧D]j∩$iP$TP*$"H!`j!R⊂$bεB∧e)hλ*⊗"i∀j(∧DNβSEDUP A NES CATCH FRAME
MOVEM @,AATRTL∧∩(LRJNQαiE"R H4(Q'4¬∀X→5-αλ⊂∧85⊂rλ→⊂εεE∃$) f∪≥∧ibU-&P∀∀∀@ ;TURN↓∪⊂~Rzα¬αiz$lDλ4
∧9↓PPL**5"¬I
$ml""'h∧HEN BREAK U@ ↓→∪↔
↓αA:⎇∩6ε1¬""J>8h($*I¬∀⎇vW M≤9~∧*∧EJTM∃Ia⊂K\_d∧dz
Z4-∩ →e$-**U¬"λj$lT
5$98T"`Q!∩∧≤→_r∧"E
E"H⊃↔2∧⎇$ ∀2∧~D∧M~λ(Td⎇t
DD(⊂p*Hrλ⊃J(31+↓Q@(λ *Tu
I∀Suf1 .h
I⊃3H *4uλλ[⊂5λ
I⊃(⊂h~⊂rλλjP31!Q@2Tj∧∃∃β
Y0TRa⊃,su λαi+dTbP!)⊃`eP'Uj⊂'cλ* "P∩dεTERRUPT
THBOU12 SKIPNTT$CATRTN ;SKIP AF AATCH FRAME BELMP∞AL~∀%∧RJNQ¬""J>; 4(→Yu *p∧P*!`j*UhεE∧U" ∞E T,(DT) ∩wU→/∪≥⊂[!%∨Qπ(A→%β≠
|~∀%∧RJNQ¬""J:E $%Nβ_U~Bλ94Mα ~B∧≤yZ∧d
HYEHhαB2JY4⊃(λ%∃∩∀IZβZFE∃$)'kMα:↓SKIPF T,(TT$∩∩`-D~εB∞@∧∧4|t dLBα(∂$¬⊂p5λd⊂#'ST@
JRST T@BOTε`∀⊃↔4
H9α∧LD T
∧9λU~¬I
$mh∩1↓Q@∧j&∪ ¬ D1∞εR≥α∧$↔:5∧0r0)D∀∀ShbiidS π NEEDED?
∩A)%'(AQ⊃%'!∩∩wL*M1α$yαN≤hP&∞εLqα 1E!$$¬\~εR∞Bα&⊃αl
R∞"-→|4(Jα*JN αR"J⎇9T$%]J⊗L4U""J:E!`&6⎇2∃αR"aq62-↓E-ErYr∞ε%∩R96-∩JR9p¬¬%"⊃↔4<zλ(∀≤Z yd*∧8~D9β"B)*34∪D
∃∃
SumA⊃,¬c S&⊂"$∀'jcdλ$c⊂'∪P
ORE
THROW7: EXCH A,B
%@+≥(A≠Ldr
∀%1π⊂↓αQ∧~(∪∃%'PA)⊃%=(
D∀Ph*R"∀zP≠≠!~¬-≤ $∧5E¬JTu=λ∧Sa↔u3Ui→β"⊂(∀'j"aU⊂!d"PβKEB
λ MOVE P,TT ∃)!%1∪(h∪' i~A!β9∪π ~(∪∪∨-M∩AλX5→β b,bQ R4⊂∪⊃%I∩AλY∃%%)≤4⊂∪¬→PAλ@2-∩JR9\b⊗AEhε⊂hPα33j@ ¬ C,@πβ)∪⊂∩∩`.<*Qα∞-∩Jε: α≤
H9α∧LAQ M≥X ¬αdXλ3λhαB4 zλ⊂λk∀β"A~⊃tλ
¬⊃S∀↓Q@∧h'T⊂(⊗*∃ε@
POP P,PA3
PUCHJ P,UB@λ`∩$p∞J⊗≥"6J∃∧~6 4I~DL\βThλ→Qλ∀
)pq1(AαA∧j∪''⊂!K!`j S&∧D]PP!`j⊂βHALL?
POPJ P, ;NOPE, RE@)U%≤A !%∨/≤ααP∀JXPhPα16λ→λ⊂#λ∧D]j⊂cP iH#$i)U⊂ i#K⊂+ fλ iP)Qa`∂ND
↓TLL@
Aε1∞εR≤z4$¬\~0≤@4∩3λX∂c"A∀⊂TTjDλ⊂j!⊃,pbTT⊂!*S⊂!gfT$f"bλ!cb"CE CALLF 2,(C) ;ELSE CALL THE USER'S FULCTIOLλ
∧∪A≠!)¬↓0$∧KZJεR-∩0∩∧hZr¬4→D∧L2λ¬∩λT⊂p5λd f&λ!*g RATURLS
TH@%M!εt∪Q→≥
APYπβ)¬→_∩∩m∞εR≤Bε"⊃xh %αU∩N@"λI¬∀⎇vQ⊂K]_Z2b¬xT∧D
hT∧4⎇YhB∧
λyt`8λ⊃TH→αbP*∪β S@)= Aβ(4⊂λ&Rdr∃αQd~εBVαzHK8¬3JY3Qβ*
Su⊃(h∨FEαP!))U⊂*$)∪αXT 8π3ε0A∪∂≥=%∃ααI∧*∧h∧P)X εE∧U& ∞E T,CAT@πβ∧∩$p∞∞ε$~!6
∩J&⊗α#phPα(∩J*uλ∃
Pp0AQ@5∪ IH⊃⊗⊂βATLIS ;A LIST OF TAGS >4⊂∩A→∃%$A]~&b
M"rNB,~&ε1∧~εB∞@α~Jεl)1α
-!α:=¬2ε"_@λ
K4⊃(λ$j)P⊃l ST!\]
PU@' A @2λh &BαZ4B¬¬H HK8∧p*hαP'"Qb"b ACS
IOVEI A,(@∧R$KZ≤
H9α¬$_qP@!33uHY(⊂@⊗
*⊂DDNβH &≥!α>→¬"ε≡LhP&BVα9∧R¬¬IT,@4,"!↔pr⊃(eP#'T⊂
EM@¬⊗J≤B&A↓D"6⊗M∧r6@"λHU≥∀Sv$
∃
#!↓33uHT∃⊂!⊃,p `U ¬ @)!
A%M+⊂∩R_h &B⎇↓αA∩⊂h &B⎇↓αA∩λh &*,jB*λ@
I∀SV
A".u*
p4Q∧
⊃h∪H[∃λ⊂h~⊂r⊂⊃) fbCE JRSP @)!%∨.j$∩w→M
A
∨U→Aα↓≠β)π XA'≡↓ ≡A !
AβπQ+β_AQ⊃%∨.4∀~¬)!%πβ∧h∪!+π A Yα4∀∪!+M⊂A Yλ∩∩w≤
Z¬αt*⊗∩⊗ αε∞LhP&6>4*%α¬bB↓$⊃↔4
H9α¬$_qPPLYzd,Jλ%BE"⊃⊃∪L@∩4u∧ qH∃λ_tc"A~∃0r $∀∪(Y4,"!↔pr⊃(eP#'T⊂&bfP i)d∩h⊂∀"∪biP'∪h⊂""Th)'lH**∀FB∧fgk⊃P*⊗ BD]`∪AVA DHE RESUHTS
POP P,B
λ POP P$A
JUMPA D1)⊃%∨\h$↔84
$9↓T∧
*)∀-∩D dmλ∩3D ∩4u∧ qH∃λ_tkλλZTStAQ@∧e)∀h⊂"$∀'kZDB]bf)QP#'jS ∧ AMATCH, SO DO @)!
AβπQ+β_AQ⊃%∨.4∀⊂∀
$BJ>]!P&*Vmα9α e""J>;8$%@9ir∧≤~H4B∧h∧P)X(#$λr5Q$
1uλλZStC!↓2TTjD∪∀t
(5α"'dc⊂'∪P*$)∪βP∞A ¬∞PA !%∨.AQ~A)∨@A→
∃_~(hP&*J≥!αR"∀
20$KZ∞ <X ∀dD
$,@3uP)D⊃qHλ∀⊂p5λd f&βE JRST DHROW1 ;COMPILED THROTπ&Aπ=≠
A⊃∃%
~∃∃%+≥ <pλ&N\JB9α-∩JR8HIf∞yZ∧LdX@∧-∃%D∧TD dm∀X→B∧-**4-λ⊃6 ~α⊂!gSbP$"T"BE∧H%))jλ&)`)⊃h∧ ;RETURL TO TOPLET¬⊗0hR⊗JIβP4*&4qαVN,b⊗NM`JN⊗RTiαRf⎇~\4(LRV - `∧
@⊃0 *Sα0 ;EH '
0A¬%¬⊗A+ααε 2λZ%∃≤XAP@M99∃∧(⊂↔∀)bbεB∧P ∪KIPF VERRSET ;ERRSET BEING BROKEN BY AN↓%%∨H~∀%αα*JN ∧∧-∃YbhPα4∃*9λ⊂λ⊃ B3)Zβ"dP⊃⊗_X_D@ ;ERRSET USER IN@)∃%%+¬ 4(~
U≤DαH∀¬J23U↓Q@4∪j∧∀⊂!Q@∧e)∀h⊂"i∃g_εEβEieRh P*∃⊗!`j∀*'∧DNβP@⊃∨=2XA
_∞ - →D,"λ9t$(⊂siX4h∩λZQ(∃iλαg⊂ H∧@
GO@¬%⊗t$A≠∨-∀A)(Y∃%%)≤$∩w∂≡↓_∞Iαα(U%-)`∧`8pq4J4∃r5 K DOOP SERROUNDED BY A CATC@ AN@λAβ8~∀`-β32∧
**4-αβHλλZTStJ4⊂p5*8(⊃∩λT⊂ε'gT⊂*'P⊂ ¬ @%∀[≥)∃%βλ\4∀vvv↓
J≡,qαJ⊗αJU∀u4
tD3H∃ λαP&'Sh⊂!'Uj NE PEBFLπ%≠&↓α~∧vlp
αRE∩0≥h⊃∪d
⊂⊃(
H1h⊂J(α`e@.
.CEE BREAK
.SEE $@REAK
~∃ %π≤h∪≠∨-∃∩AαYE↓%β,∩∩`.≤
R∞↓∧J⊃↓u∧∩J,→1P@L*:α¬%EH4
¬λ6⊂HK8∧q*D∃0λλ`j!dλ!) fQFA∧h∃i`⊂("εE∧T*id P, ≤∩$p∞J⊗αJU∀rλ tL@Uλ⊃I@i⊂"i∀'iεEαe)`⊂∃⊗"`∩STP ;SET UP EBRSET FRAME
SETOH
AI%'.~(∪∪∨-∃~A Y∃%%)≤4⊂∪∃%M(A[1%' @ZbQ$∩wπβ1_A%β9 ∨5¬∩>@-I→d(hαC"G]]P!∀ ¬AK↓→∨∨ ↓+'λ↓
e↓T∩J,→1PP@ PTIJ.B*
4r
¬⊃S∀↓Q@∧h*Td⊂(⊗⊃,(εEαh*`∪H P,SP
∪!U'⊃)¬↓2RHZd`⊃↔4-P3∃(~⊃(⊃I@i&P)⊃`bεEαfgk"SP V+α ;STICKT¬β→+∀A∪≤@(~∀&¬*N"$
αe$J
$L@Uα"'h)$g∃⊂+ f∃b@
HRRZ TT _Zβ⊃"A⊃Q LE*+"∧αβ _J(⊂
HRRZ R,(P)
∀∪A≠!%¬↓1L4PJBVNDQαAJλDd≤α∩b!↔pr⊃(eP ⊂DL @→Y⊂∩LhP&*J≥!αR∩$*JBJHH%nR-∩BJ%∧J→αε¬αJ>Bα)∀
⊃#"AQPTS
π@4∃*9λ⊂λ⊗⊂αRLP ; ∀T(TTA¬¬'∪εA %⊗εX∧∧d|βtλ¬%JJJAQ@∧ieRh"P K!∧B]` F USEB↓' ⊗Bα DL,Dλ∩∧∃(X∀Z∧β∪sj∧⊃StIUβ"B$ TTu∧λαk fαDX ET¬β→+¬)∃αM!↓"J-"VJ:α4¬$zλ*$eαα#"A~∃0 d∩⊂(⊗*∪)"`bαDXOTH@%/%'
A∀*ε⊃αλ∧∧4⎇)QP@J *%≥λBfA ¬∧Pλ)b`∀Z AR10∩∩`.|qα,xeB∧dβst∧λP0rdλ1P
"T⊂*"i∀)$g#CE PUSHJ P →)∃% b~(∩@A∃I' ⊃↓p¬S HαB4i94⊃(
@ ∧@∨→1% ∩∩m∪A$B∃α~⎇∩5α~4∧-
λ¬∪d
⊂∧"FBα CAME A1(
$βs∪
*α".d Ss@⊗SαIL VAH +
↓_∞→ααI∧*¬h~$L)HR↓]¬AP@!(λ∩J*uλ⊂J)∀λ
∧B]P ∀HEHA$Bε@" XT@Th∀HZα*`∩N NIL
λ∧∪≠∨Y∩Aααb0∀LAQ$*S∀G∧fgk⊃dP!,QBREAK
∀∪)%'(AQ⊃%∨.βλ$%@8Z484⊃(λjSs ⊂⊂αRGEN L@∨∨@~∀4T∩J2Aα@∞A→⊂ε)-λ!⊗∀ JD@ ;λR@)+I_ ↓r4z0≠r∀ T,h∧h
(αj*i∪α THE
∪π¬∪
A∧αbFJ⊗αJU∀pα".d
P3∃(T⊂πc⊂⊃'gFEαP
RST BRLP1∩∩m_∞@$α⊃4J@dibP⊃hεAL AH
λAA%∪≥(ααR"∃∧20≥∀QQ LU:∧¬"bX8∀%⊂β"PJ)∀λnA~∃0r $∀⊃*@ fεEαe))jλ!)&(εEβ≥S ∪TLπ%
@9' ∩≡⊃↓↓:NαIu∪
¬j5$⎇& α`*u∪tFD P j∪βR4
0⊗@Xπ0LU8∧¬"bβPu @i"D]Uibb @¬2Aπ=≠!&d*⊃α∞|"∀4'33@4⊂πg @πβ→→%_
:¬j5$⎇(T¬,* ZU≥λ∩⊂*HαP%*Th∧ COMP@→QλAβ8@E∪≥Q%!∀*Rε⊃⊂h!mmX∧∧
∃(≠∩¬∀XhU∀h8R∧|d
4l@1(∩i→β"⊗⊂⊂αY @!U'⊃)<J0∀h∩3JIh⊂
$⊃P i)⊂lP$"Pb"`∩
λ∧vv@Xαε 4DλtlLhpλ
Ih∪sHT⊂πc⊂∃$"P'⊃$f`_↓%∨+$J0∀4k@⊂λ* λIS LEAVES @)!
A'βH~∀`-β0∞d qH∃ λαP i∀ h REFE@%∃_
∞⊗ ∧∧L@H∪∩*84Kλλ→β"⊂*∩ ¬ IND@ !¬:0≥∀D ∀`$∀KC!≥]P≠↓αAπ∨9)β∪≥LA)"*αP∀JXR¬$βh∀jItQ( →β*'P∃$"P T) lWβE
.SP ∂%∀pλ&N\JB9α ¬DdM8~ hPα(∩J*uλJ:⊂πf-αDXERROR IF @≥≡↓β%%βdA%
∃%⊗:≤*⊃αH~D,E⊃Q LDβ∪λλE⊂4p*%⊃
#!∧j&'∪α D,AS(
'⊂$∩w/βLA∪(A¬_A&[∃1!%M'∪∨≤ααεJJ
I|4(Jα*JN ∧α`*u∪tF!αA↔)U'i_≥αdgk"RP**,(R) 8π3αaαNR⎇∩∃α¬∧Bε $eZt`:Qλ∀*X3P
$U,@
JUM@L R,.STOR1
λ HBLM A,@TTSAR(@λ@$hP&*J≥!↓"QHh ⊂@ ¬↔)U'i_Mαd))&H V *∃)`i(D)~∀%∃%'λα↓"Q⊃Q hRh∧u @i→≥∧U& ∞N↓λYβ&9
0@.
→0∀Sα.j9p∧h⊂∩c⊂#$V'*f@ Lπ$A
1_∞ 5YQP@)1S@⊂⊃!#& QUa`_FLAG, JRS@(α↓0∃≥Iz# @ ¬↔"S)bDPαVALUE
∀∪5≠ ~⊗Jα→1λ@
!Q@∧j&∪αN D1β&@:5@4(∀ %≥αλ@λi⊃QL+↓ .qhZα⊂#&∪dεUM↓# ⊗εu"&@%∃D¬ 95∩⊂∀e`h⊂∀ j*i∪αλ
(J↓α*NααQ2~β e#λα".i@i⊂&`Va"P#Qh⊂#$V'*f@ QPβ≥Q∪ ∩dhP&⊗@λ9α¬%EJ hPα33j@ ¬M R,@TTSAR(D$∩w'$zJ*λ∧5(→U∩5∀⊂∧g*∪β ARRAY¬
JRSTQ→$hP4*&4qαα
4bε≥∞≥B~2ε8b`_h%j5$⎇&G M$β∪SDλλε iK ∧B+AS(
π@I`≥≤αr4∧ 1H⊃ Z0S⊃$ tH⊂iYαh&"V∧@
IFL∧A 1→→β∞X↓∃%' ∧α`*u∪tF@∧¬∀]∃→'
∩X
Zεe*∀4!→TmQ2(λeλ⊃∀CE"!$ CX$ TL@≥≤αα⊃2ε~r∩λQ(D$α⊂!l ∧P%)T⊂*⊗!V'+⊂⊃X 0↔∂∃(Aπ∨5!→@∧¬
03U ~α,V⊂∃βITH↓'↔β ↓%⊗R-∩0⊂@ ¬"! ∧P⊂%∀h⊂",DBN@,D∩∩`.⎇⊃α6εL∩∃α≡-!α$βu0IHαP ⊃UAH
)∪Q2~*$⊃∀&*≥↓αQH;∧`*L#"A→3uQ$
λε&$T`iεEαbhλCH TT,R
∪≠=(
,T
"d¬JJ4
∩λA⊂K]8¬∪j(αP ⊃UAH
)∪Q2A&u"0~∧~*$
Hβ"B(_⊃∩(
J #!↓33uHYαP",@TTSAR(T)
λ JRST F)
P~∩$p∞⊗: ∧∧`8H∩1I@⊂"!#∪ cUaV#& cCE
IFN DXFLAG104)u~R>I!P&BIib∧αβ⊂4eH⊗α"'~pr4∧ 1H⊃
Z⊃⊃6↓Q@∧P↔∃ f*bBD@]dQ⊂#'jλ* j⊂*$"Sα EBRLπ$@QU→↔:⎇:0∩∧~*$
Jλ¬⊗*λ*#"A~∃0r∧
λε#εB∧h"iR⊂#$()αE∧R)h⊂*",'+FA∧fShεE T,LISAR
EXC@ TT, FXP)~∃-α∪≠∨Y⊂∃α⊂¬D¬%J8∃∩EE⊃∪@:u∪tHT∀50)j∩5⊗$ 3P
'H i) VFA%`B`b"$H**⊗_CE%`DSdπVEM B,@TTSAR!(R4TZ∧&ε$"%αR ¬CλhαRr)9α1∪)Zβ"f@ R,@DTSAR(T)
∃↔%↔⊂∪β⊃ ∩A%!1HQ!∃∧⎇∧λeEαβ⊂∃
Jp4B
E εE∧Pb"$P∃*⊗_FB∧fgk⊃dP"ε⊂**)`T∀*∀FB∧h'h∩⊂(⊗εB,@D]QdεD OF AFN DXFLAG
;.CET .CET1 FWLACK FWNAC1 LWNACK ERSTP LERSTP EBUL0 ERR1A ERR1 EPC1
; 6l∪∃' ↓(X]'∃(∩wMλA¬dAπ∨≠A∪→λ↓π∨
4∀vvv↓β)∂~ααR=α≤*Qα&p∧∧
∪∃D∧tD
deXT¬$z
8U"¬It∧LRλ∃`hS572¬$λT¬$JXR∧mZ:B∧tzD∧((⊂
λ⊂ε⊂(U`g"$U,WεEβE↔)bU≥bl⊂d⊂ F⊂i_FE)bjλN∧h*iR⊂(⊗ CE PUSHB P,BIND ;BIL¬A)¬↔&AM3≠¬∨0A∪≤A∧XA-β1+
A∪8Aβ$b4∀∪!∨@A Iα$∩∩w !∪&AπI∨π.M~!α&mα2ε⊗lrRεRLz0$λL*b∞↓∧ 2εIλH%mα∧*J~>∀jMᬬ~⊗Aα∃Iα∩y→d:∧∀
5∧8)∀dαAQ LU*:B¬≤ZK∧Mα".d
∩⊃3Dλ∩4ph~Q∩3Ht∃∩⊃$λR3Q →Qh⊃J)s(∀j↓ ¬εEβE→P≠; JSP TT$FWNACK ;GR LWNACK
;;8ε∩@A→β11⊃`XY#
=~∩αw=$A βa110X1#
∨≡4∀vvv↓β⊃π-&A
∨HAβ≤A→'#¬$Q→' $RA$BεQα$B∃αJL:"Qαu*6
⊗⊂α>→α
∩≡F6,rRL4SYemα<*J∃αα
$mR1⊃(Eλ⊂3HD⊃q3HZP5⊃*4⊂3@⊂⊂h(!'T)$`j⊃P+g H"i)'T⊂ c⊂∪'j↔εB≥]]P∃$"P#⊂l,$,λ∀ AXXXX) HAS TH@
A→=(
α
M!↓Aα4zIα2≥*αI1β α
>⊂α~NV∃⊃0⊂@ ¬≥]Nβ BIT 2P∨≤αα&Mα≤*Qα_hb∧<XJDL@Qh⊃+λ0p
&⊗P ∞ ARCUMEL¬)&A%&Aβπ
!)β →
\~(~∃
<rε∞
β!∃≤-K$¬"`⊃⊃∪@8pπjg∃⊂*h⊂⊂aj*`S⊂#"fP i⊂'Q⊂ i#TFE∧fSi"dP⊃⊗∀ DBDYf"Pi"aP∪ ¬GATIP
A=A≥5¬β$A=Aβ%≥&Aβ≤ααQ04T2↑*ε≠ `⊂L*YU∧
λADe<h_4XH↔4¬≤zλ8∀r∧h→Db∧→jDj∧β∀u(*H⊂rλXp¬biβEd)∀-⊂"⊗
⊂FEαice H*∩#+S aP⊃
λ
∃→]→βπ⊗h∪∪∨-∀AλHQQ(Rα∩m∂(A]_∞J⊃∧z→α
M"L4(L
N!α a"Q$hP&RIhR∧αF!⊂K]99∃α¬YiD-≥4
ttλQ!∩∧U*:Bβ
JBHh!→%∃≥D
tdF↓⊂K\yt¬¬∀xJT≤*λ∀¬ :SQc)Ik04Hzh⊃4J)tC"AQ@εE≥Nβ; @USH CRUFT FLπ$Aβ8Aβ%%M @>≤
R∞↓⎇∩⊗ε∩,z→α~α(∀l(Q'3@7h⊂Q*@`i"PH* "P⊂βH∂∧J2εI∧"⊗B⊗t"Mαy`λ
I⊃(∪λYβ#j$λ'c⊂*∩ ¬~∀lp
mα-∩JN⊗ ∧∧5∀→XR∧∀Y→d:∧∀λ4|@Tq⊂)jC"AQQ0 )U(≥∧h∃id⊂(( YDB]Q"i∀)bj↓λ(*`∪H
↓PUSH P,SP ;MUST SAVE TT -SEE $TYI
PUSH P,FLPλ
(MαVN!¬↓2~Bh"J⊗∧*εQαd*AE0MαVN!¬↓2⊗J∃"0∩Zh*∧≤UAQ$d-*:Eβ@-+K(ZTq∀↓⊃".sλYβ#j$λ'c⊂"T))bjλ(*`∪H
∪⊃1_A(YU→%β0∩∩g≤yα↑∃∧"⊗∞_HT"¬It¬∧90∧∧⎇Iλ XHλU)JQ03∧∧A∧d∪&"P*%`
@!1_∞N⊗~BA$¬Zαε*⊃α∩⊗JJ≥9 αεu"0~∧βsQ$
⊃∪λ
9⊃uβ!↓2TTjDλ⊃α!Q@εE"T*g⊂≥αd))-λ**⊗"T)*'∧B]cbg⊃i f⊂⊂αREAK OUDMF AN ARRSEP
SKIPE @ →+%%)≤~(∩Aπβ%_A)(αa""α#"A∀λ∩TJ:α⊂"i∀_`FEαe)h⊂∃*⊗*dPαRK 9Hβ3
A¬%∃β⊗A+@AαAM$A∪9)%%U!(A
%%'(~(∪∃%'PA%+8`~*-∩IF¬PJ"JJRαRQ∩-∩JR8HIfN"-∩∃α↑*αεJ∃¬*:↑&t"&*≥¬"<4(MαVN"Rα~bAe*:↑B∀x%n"r∩2∃¬*:↑&t!6BJ⎇"⊗∞PhP&6>4)αA∩-∩JR8hR⊗JIP&N⊗%R5αBr&∞@hP&"2bα⊃2.mα2>N-→"A⊃↔5≤z
xR∧$X9∀$1λ∃ T∀⊂0i4⊂Su ∧∪qH∧*3TQ(→λC"A→∪∪⊃)T⊃∃)jQ03↓⊃.h⊂)hλλQ**TuhD 3U∪d sQ(
λ⊃λ∀iIuβ"A→∀TQ*4∩s4 Itq4e
λ∧FEαfgk)RP"⊗⊗S h_ELT(∀FB∧d))∩P"⊗"T)*'εB∧a&*λ"⊂ERRTN+LEP1-D~∀β'U∧A Y∃!εb~(∪!∨ ↓ Y
⊃@~∀β!= A Y→→ ~∀%!∨ A@Y)(~(∪!∨ ↓ Y!αL~∀&U∩NQα,∩⊃@%]∩⊗NR⎇∩∃α∞|r∩&RLz0∃~λ→d"¬λ)t≤,XAPPH(Z∧≠!→D-β∃EDd-ε⊃PPh P@∨∪9)⊗I∧J0∩∧_4¬% Q!∃¬-9 "∧T∧ ⊂,UH
/!I_%@9λ∀`(α E UH
/∪9λA!∀zR,8¬∩)@dε~∀%1π⊂αα⊃2R h ⊂Lλ*$j¬J@¬V*⊃∀CE HRRO FXP,1(D) ∩w)+'(AM ⊃αd*~QαD
22 xb¬∧ID¬∧|→jD-∃1Q LDJ)r∧∀J¬C
DE⊃⊂KZλIrαk∀λd`:H⊂R('h⊗⊂⊂e"⊂&⊃h∧ @DLOV
HRROI P,-UIFBM(@ ∩~)∪
≤AMβ∪_Yl~∀&5BB4≠
∧$bλ~#λh!_de∧i≠¬∧⊂ε⊂ T_BE∧T εIXPDL AR1
] 9ENDLπA∪→_ αNJ0$!→TmQ3 ⊂⊃⊗*diPi*⊗j
c∀#,∀∀@ ;LEPλA↓↓∃αα8∀4(∪uHZH⊂ "Th∧GRATION
λ∧∪≠∨Y⊂∃αα@
Y4p5JE⊃P(
DX@(ααR>qQ LLzhTj∧5JTM≤~h∩l
85¬αHα.pd
⊂πgFBα MOVEH
A∧αbV&N
2¬ ,∃8"Eαα".h⊂*'gCE MOT¬⊗5∧ 2V&≤
P∀
λ¬⊂K\∀
D`9βFE∧R))`∀↓+∪≥!α` (αC"Gh∧@⊃∪LA%∨+Q∪⊂~∃∧2& 4J4∧Dβλ∃)@+`g"h)'j⊃aj)P⊂α@)/∃⊂→ααI∧*∧8¬4J(αg" SPACK PGSITION
λ∧vAβ9λA)⊃∀A↓≤JJ,D
5$90¬∧⎇9~DL@pπ⊂∀⊂iP#'Ue"⊂$Sα TT ,∧@A∪_Aβ≤AU≥/∪≥⊂[!%∨Qπ(A%&~∀v↓
∨+≥⊂XA)⊃∃_ h∀SY↓↓αλ¬∩¬$λT¬,Uy→d"mλ)u$8¬⊂∀j aeH!) fQP S POP'ED *WITHGUT UPDATING↓
1 A=$A
→@T⊂∀)X↓↓α JαNAαM→αV:<zV*⊃¬"5αRD)α∞Vα*$,@Uλ⊂I→β"$g⊃P EVEH
; C) T@E FUNCTIH∂9∧JMα∞b2,D
tM⊂∧⊂"Uα@%3Q⊃∪≥∞ααNεZ, 4)@4∧α∧αα(∃iλαg⊂*∩ ¬ FUL¬π)∪=_ αJ-"VJ:α5B∧84∧
∀T
$-≥Iz$,"λ→d"¬IλR¬∀zZDL@Q(⊂iYβ*$g∃biFE∞β SEARC@⊃∪9∞A
∨HA)"*α0∀4∧ ∀↓+⊂~↑Lr⊃αBα)u$0p
εBα; @/!⊂→αtyα6>∀)αV:αy∀`(α⊂ ⊂RLπ ∩⊗≥"Mα⊗β ∃≥α →b¬$α⊃(
:⊃0r(i11⊂∀ g#bH'c⊂*∩ ¬ @!⊃_X~∀lA)↓∪LA%∨+Q∪⊂~∃¬∩⊗@%X∧SJ4∃∪h ~α)P!Pd ER, WHI@π⊂A∪LA⊗BαλT:α"b TO @%∃' ∩≡∀(4)@4λeEαλ→d"∧iJααD→hB¬∧βtti_S⊗( @h∧@⊃I&RA
I_∞ *λ¬∩λT∀p
PβK FRAH
AQ⊃β(A]β&A-~⊗⊃ααIr¬≥IzhSαh∃ λαP ∃NTπ∪≥λαjBJ>$*≥λ⊂ bPi!dεBα; CALLED↓(∞&R@∧¬¬-9 "∧T∧ ⊂,
0⊗AQ(Aπ∨9)β∪≥LA→><*N@"λ_E∩¬It¬≤,~(4@@ ¬≥@ PRE@'∃%-~αε $βλ⊂(∀tc"JYβ+h)∪β:~∀lp
mαj0≥3P
LπA≥"V~→¬""εQ∧:⊗@%4
¬-≤α⊃1∧ 50 jλ!"P+Qd∧@_A⊃
∪≥∃λXAπ!β⊂~≡*αV 5z
U_hαN`≥Nβ @∪↓∪ ⊃α≤Bε 4xZ0hRh∧q(T∃3Uj
4c"A~∃0 dλ εP⊃αb⊂ (αB4
Zp∧⊂#⊗(⊂T
λ∧∪!-~!α~β
αe⊂β"B*
4r⊂⊃,(⊗*∃∧¬∀vβY`_h!→¬∃∃αTh
Jα".i@dεLY P@ 1¬αεJPhP&&>4*%αIbBNA⊃⊃∪@8u0 )⊃dεT VAH +
↓≠A≥↓α&9∧~εN∃∧r0~∧h∧P)X4h⊃IZαg"εB*g ↔PR20∀∪M↔∪!
↓λYπβQ%)8hRV 5z
#Pα(⊂h→3⊃(
J
⊃¬⊃ ∧]d⊂hεE WE GONE TOO @
β$|~∀%αα*JN ∧¬,uz
% H↔9dj∧β3tHT⊃P SbiP(∪βSSIBLA, SM RETURN
HRLZI T,CAP +=$%@9~2¬$α∩4dλ3H∃)@+dg"h)'j⊃aj⊂#∀ fb←CE TDLN @(αa""α#"A∀⊂¬))U⊂*g+SαXT 8π⊂~> αV 5y→d"mλ∧SjHαa`∀0A'=¬~.&A¬""&M∧2Jε6(h ⊂Lλ∧TI@P(⊗"αDY`∩ESET PDL _A]∪⊂∩D
t`:Rh⊂K∀∀⊃∪∧ uH∪H[∃λ∀
Zp∧εE∀`R∧h⊃$hλ@!⊃_A(~(~∀`-β0∞d
∃0 dλ''j"CE↔ ∪EE UNWPUS
PU@' A¬ "α¬E,@TQ0)A .qJ)q(∃ 4h∀ @dg* Lπ⊂→αb2>]∧r5αVα8U∩∧α3U∧zc"C!∧ibj∪d¬ @+9%⊗ε`h &"∃∩b5α5BA2J,
22dhP4(→Yu (αP ∀0Q @$HI`≤<X@¬∧|α3UλZH⊂
'H*g#dS ∧ HAL@DER
∪≠=(
N∀λBblHZβ
[∃
αHK8∧Q*:∪tQ$ ⊂4hλjP31$¬∀sP*(Q1λλjSs λZTL"!Q@2∀J)(⊃λZTU∪AQ@∧a&∃⊂"⊗"T)*'¬S"h_VLFE∧iUa⊂ ⊗⊃h!XFB∧h'hλ(⊗"∧BDYcbU⊂'f"λ#, εB∧h'hλ(⊗#&∀∧D]i⊃ij'i⊃P#&(βEh'T⊂(⊗)αDD]iPk"P&⊃hεEL TO SP UNWIL@ TO
POP P,PA3
PUSHJ FPP,SAV5 ;SAVE ALL PROTECTED ACC
MOVEI B,(T) 8π!∂∪9)$AQ_
α∞|jB&2,!α~Vt~R&>pα6IαdJNP4Ph)mmXαBVNBα2>R(h):N,)αV:=αVL4PJBVNDQαA2≤
ZaTHI`≤h@¬,uλ)u$,8¬⊃(D⊃sQ*1"C"A→∀TR$
⊃¬⊃ B3)zβ"dP∃*∩∀)
FE∧h∃id%⊂∀⊗*a"∧D]j[;tw2λ)hεEαh*adλ#&(⊗∃εA∧iQj ∂I A,
JSP T,SPEC@IND
0 A,PWIOINT
∀∪M)5~↓%β→12~∧∪A∨ A
1 Y(~(~∀β)1_
9α ¬D85⊂siQ".piYαh$f⊃b⊂!gQ ¬7
BRST UNWL¬π
∩$s⊂~>∧)1αV≤)αBJ|:8$
,r↑BV≠iuiE_H$%Nu*6
⊗α λ @c⊂ ⊂USHES DOFE MHA
a ∩(Lj>J⊗JαRQ⊃E!$4λLBJ2%¬"Q1∃e*:↑BαZ2keλeEα↔8$e"λ tL@U⊃4D
⊃h⊃λ~⊂(∃ λ5λ∪*Zuλ⊂HT⊂εgk⊃bεE∧PdπS TT
∀∪5∨ ~⊗Jα⊃2Vu:BVMi "RQHI`≤∀J@∧,TD
∧lLhHU⊂H!_$e"λ¬∃¬E⊃
"!↔pS∃∧λ3∪λ →αh'i∃ g*⊂⊃,(⊂"⊂j FEαd))'RP#$(∀"∀DB]c"kH#((εB$c'⊂∀`df⊗⊗FE∧h∃id⊂(**εEαc,(#∩l("&λ**εEαh'h⊂∀⊗**εB.D]bS ⊂'cλ$c'⊂∀`dfεBεA∧h∃id%⊂∀⊗∀!∀BDYdg∃'ebP∃$"P*S+dg"∀)'j"Pj$ggλ!gb"CEieRh FE∃g+g!S]P(∃id%⊂∀⊗$h)∪cgεEαh*`∪HJ P,UNBIND ;@+9 ≡A)!
A:|J:R⊗∃∩VBQ¬αJ>R,~R&>ph(&B-~")ααbJNRC($%nα(U≥$z(R∧:1PPM
Z4DRλk¬αe*:C(h!~∧⎇∧∀λeEαF⊃⊂K\iJU≤B
8∃4D
Tu∀X→B∧5)yR¬≥H_4Xh!→%∃≥D
Tu=
A⊃!"U)jsV∃π∧fgk⊃P"⊗≡f"h_JX←∃↑⊂`j)*∪α-EBRTN>(D) ;GO BACK OFE AATCH
↓JUMPN D,UNWPR1 ;IF MORA FRAMES TO CHEC@⊗AQ⊃β≤A≥≡A>ph*V:=αJQhMα>Aα5BA2R h(&B⎇↓α~bαbH4(Mα>Aα5BA2PhP&B>αα~bAd 4(&∧zB)α5BA04P1n∞LqAα∞|rMFB5Aα∞≡u→F~A∧~> 5:λeB∧9ye≤5∧λ4l@Tr5∧λP4∪j H⊂
(∪h!⊂(∪h'#%λ!ah'T%⊂⊂⊂POPB PMP2J APOPJ POP3J POPAJ1 S1PAJ POPAJ CPOPAJ POP1J1 POPJ1 POP1J CPOP1J M1PTPJ PGPCJ C@OPCB ULLKFALSE UNLKDRUE @X1J CPXDFLJ PXDFLJ @!=!1 ∀↓∞Bb$P4(Q*5,∃JI@M∀~)∀`:αiP!SβH≠∨8Aβ!∪Q&~∀~)∞&9βP&&9α↓∪@:u0 (∀$ibPCE
;8εvA$B⊗N∃¬∩6@-I→d-~λ~$*¬X∧q(j3λ⊃I@i⊂!gSαS@∪≥≤A+ A1∪')&↓≠A≥U≠¬∃_4)@50∞d¬⊂4h
:⊂5∃*4⊃Q3H~⊂∧gg∀P ∂FTEHA <XA
∨HA∪≥≥"ε 48U∩`!αA≥@;8εAαA
β→1¬"0~∧9ye≠iλ
@df&⊂∃ ebP⊂P ∞@+5↓⊗I∧J0∩¬J@λλ→Qλ∪(→q(⊂$
p3QiH5∪sAQL¬P≠≠ LAST OF IT. SUCCESSIVE AALLS T@≡A
∨⊂~N5Aα↑→IB¬$λYb¬$_92∧tXpλ @*fa"T)FE≥Nβ; ONTO @)!
A
¬=→(A∨_A)↓
↓→∪'λαq↓α∞|rMFB5Aαε: ∧∧9βc ∪PFX ARE SIMIH β$0~∀`-β32∧∃Z@λ
tλ∃ λαP'*Sa"a FROM↓
1 \A∪≤AQ⊃∪&A]β2A∨9
Aπβ8A!%∨⊃+π
A9+∪¬I&~∀vβY`~∧α3@⊂⊃'i+`T ∧S OR@ ∧αaαBVα9∧L@Qh∃ λαfP'Sα F@1@XA)⊃∃_ αVα8R¬$α⊃4hT∀Su*I3Q4aQL¬P≠lA)=∧~6 54
DD3(∃*∧⊂∧g R@-I'
A∨I ⊗IbαBJ>%*≤Lhpλλ∀⊃StJ@`i")H& ijλ'c⊂*∩ ¬M.
λ∧⊂∀(9t`*l4⊃Kπ@5⊃ P!,@∧⊂∀(9t`*l1Vπ∧P ∀DX¬αA∧αb⊂@ ¬!gSαSPFX8∧∩@AA_∞Aα5BA2R h ∀≤βsThk∞B2J:λ⊃⊗⊃,!gg∀F@
COL¬'&!P&BVα9∧R¬¬H4`9β)FE⊂αAPOPJ:∪≠=(
,∀λ"bD∃⊃P@!4∪t $∀β!↓α@
;≠8εA>$B⊗Iα≤z6&>p∧∧-Dα5∀aQ@εE-∀'h%≥αh∧DZA TT,TT 3@5∃%≡A%!1αRD*0∩¬ z∧P@"T∪j URNA∀⊂Tt∧
λε#,∪αV1 ;FX@≥DXA)⊃∃_ αB⎇α( ((85∧⎇ ' M∧z "¬αβ⊂pj t∩B'dεOT@π!∨!(BA/∪1_A'πI ≥α∀
.@%(_4(hαC"F
⊂πh%∞α SKIPA A1∞&9α↓∪@:∃0
A @→∪M A
∪a_
V5β↓α&9∧ αε: ∧¬∧⎇ !P@*⊂πh→∩≥ PMP@∩A@XdαwA≠ @@⊂αB$βλ∀iIu∀hλ→β"⊂(∪βP@∀~)∞B≡∧Q`⊂M z∧R¬¬H5∧⎇ !∩`*q1(λ e`∀RACE ;SAC@%∃λA)≡↓
ε.αJ$≤QQ%∧⎇∧∧rG∧h'h∩P(⊗→CE POPJ @ 0~∀4Uα0≥∧→&∪@!03th∀λεP⊃λP)∩wA_∞AαLrR=αλ¬B¬$α⊃3D
p¬dhλ)"`∀URN¬
S1PAJ: PGPI P _b$p∞Bz∧β
¬λIB¬≤β∪u¬D∀∪t∧ 3P
'H V⊂ Sα@λA↓=!∀4Uα6BεSP&B≡ααA2∧HI`≥∧z∧∧
@λ⊂
$⊃dε @!=!∀4T~B>BQ`⊂M z∧R¬¬J∧`:⊂2C!↓αA('T_e_]α`gi`H⊗XT(
DX@!= @bAA _Aπ1≠ ⊃⊃¬"",d
4\M∧
$-∃0 'βE('h∩_X
AH∂'αα↓"A⊃↔5≤\~
∧L@Qh∀ Z⊂¬⊂)⊃h∧U@%8~∃!∨@c∀d∩A!>∧IαA⊃λIfB≡α↓EαB$aαNIzB∧h@λ
t∩C!λt∪tε→LB4 Z⊂¬⊂((#h_R∧AεE∪Xj*(∩≥ieRh P*∃⊗,!VLDX-DA∪≤AQ(XA$B⊗)αα u∧Pβ"T @h!e≥αP('hλ(∩!DB]h'hλ!P TH@≤AA≠!(hRεB≡∧~)h&∧zB)αα¬E∧⎇λ9 hPβ"U)I∩qP)Jq(
∧U - @ A(A ;UNLOCK @∪≥Q%%+A)&@1¬∩⊗@%X∧SI→β#P#⊂d∧SE (NIL)
UNLKP %+∀pλ%αlzP∀2(⊂%J∀U5 ↓,p
g∪'ae@ IH
)I%+!%→1αJ-"VJ:Lr≥αR∃*R!↓E!$4!⊃∃,TI:∧`:⊂¬εEβE( _E∀tβ!=!∩A
a Xb∩$p∞~2-~!↓E∧2bAα≤b0≥λε⊂*∩ ¬N PLπ!)¬↓0$(:¬D∧iI#@!4∪t $∀∀λ⊃S∩AQ@εE(⊗ #&%∞α HLLX D,(P)∩∩m!∨ A→1 A∪9)≡Aλ0A)↓8A!∨!(A H~(∪∃%'P@dY!=!1 ∀!λR%Zαε*⊃¬∩⊗NR⎇∩∃α~d
≡Mα5∩> *λ¬∩λT∀λ∀iIuβ"AQT∪tλ⊂NB* tλ⊃K
λε"∧B]h'hλ!( ⊂ SHGTIH
)≡↓λXA$B⊗)α5I2 RSP5M3 SAVX5 SAVX3 BSTX5 PXTTTJ PGPXTJ @%M)0fAI'!0dααJNRA α∞B⎇α:Z(hP4*N,∩RR⊂M2εJ&⎇*Mα∞|j6>d
4
Q(⊂)Hλ⊂Q*:α'i"H)'jj∩dεE@&4⊂∩*≤
YUhMαVN↓¬↓2∧∀U~εIVi `⊂MλZ4B¬¬H hU8~c,k'!∃¬-9¬αd1Q%≤
dYS≠P~
U≤B
¬D
∪⊃Q M¬X9α¬αH~#∀λQ(5∧⎇ #@!4∪t $⊃R∀¬A"C"J85LnA~∃0r∧
⊂c!
p5LG!4∃4i∧∀⊂AQTp5F↔@∧h*Td⊂(⊗⊂FE∧h∪h!⊂#⊗(∩εEβE))j]∧h'T⊂(⊗ CEh'T⊂(⊗!βEh'T⊂(⊗!CEh'T%⊂#,∀⊗εE)∀h→≥∧T'h⊂( FE∧T'h⊂(!εE∧T'h%⊂⊃,(⊗εB))j_N∧h'hλ(⊗ FB∧h'h∩⊂#$(εEεE∀)j~]αh'h⊂∀⊗ i→⊂FA∧h∪h⊂(⊗⊂i_FEαh'h⊂∀⊗!FEαh'h⊂∀⊗!εEαh'h⊂∀⊗ FEαh'h%λ#,(⊗βEαE)
fXh%∞∧h*iR⊂#,(!ah'T%αE)∀j~fXNα POP P,AR2A
POP P,AR1
POP P,C
POP P,B
CR5M1PJ: POPJ FXP,R5M1PJ
RST5M28∧∪!∨@A YβHeα~∀%!∨ A@Yβ$b4∀∪!∨@A Yε4∀∪!∨A∀A
1@X~∀~)%'(k4ft∪!= A Y¬$eα~(∪!∨ ↓ Yβ$D~∀∪!=!∀A
a X~∀4∃'β-`jt∪!U'⊂A
a Y(~(∪!+'!∀A YMβ-0f4∀∪!+M⊂A
1@Y~∀%!∨!∀↓ X~∀4∃'β-`ftβ!U'⊂A
a Y)(4∀∪!+M⊂A
1@Yλ~∀%!+'⊂↓
1 YH~∀∪!=!∀A 0~∀~∃I')0jh∪!∨ ↓
1 Y_~∀∪!= A
1@Y$~∀%!∨ A→1 Yλ4∃!1)Q)∀t∪A∨ A
a Y)(4∃!∨!a)∀t∪A∨ A
a Y(~(∪!∨!(A X~(~∃%'Q0ft∪A∨ A
a Y$~)%')0Hp∪!∨@A
1 1λ~∃%M)0bt%!∨ A→1 Y)P~∃π!=!≥-∀h∪!∨!(A Y!=!≥-∀4∀~∀~(_vII%
%β5
@IYβ→
%­
@IU∪
%β5
AλI∃)β→
Iβ≠
A¬
!∨!(@Iβ!A→3
%­
~∀4∀~∀~)'+¬)Q_∪-βI∪∨+&↓↔∪≥ LA∨A→%β≠
↓≠β%↔∃%&~∀4∀I%I
%β≠∀zbdjHjdXY∃!∨!∀$∩w%I∨$A
Iβ≠
~(I⊗Zb~Jεl)uEI+⊃UI1eα>AJPIf⊗Zaα~Jj∀4)[Y↓∩ε¬α2f~∀
6∃u+⊃UIU⊂a2ε~∧zB(%\
BB∩Jα~Jεl)α∩⊗4J:,Dλ$,DzqPR¬Y_e∀XWS+∪V"S∩bH:∧⎇∧→!⊂K]X∧q*$⊂3UλZTU4
D⊃PP)X!"C!'nnhλitS0*D⊃qHλZβ f#∀ fb]βE_+l∩y
→@|XXy→1 |~(p
mlKbNAybar4z)SpH'73@1)⊃5H→⊃P SbBE& ¬VALFRAME==3 ;@→9∂!⊂A=A-¬→¬%β5
~∧~(rvvA→≠%≠βPA∨A¬!!2L2Jε6+P4)@530JjTλ∃∀≥4¬Rhh'73HKβ⊃S
πK∂λk∀C!πnnb'Jt@⊗≡#*g⊂j gg∂∧E≥]Nβ $APPLYFRAME
.SEE L$EVALFBAME¬
;9; GHERE -- ARGS -- MAQ BE @∨≥∀A∨AQ⊃%
↓)⊃β≥≥&XA ∃!β≥ %→ε~∀lp
mα|qα&R~α2⊗~ α"ε23P4)@530Ld¬RM∀πYDM≥D t2∧~(u_h'73@13∩πε↓3∩β¬JRλ∞`Sa%'∀'`g*⊃i⊂ ∀O ARGS VECTLπ$@Q∀X
:dλd`:H∪∀jXTJ#!πnnb)I∂Hα*)∂3⊂*:α⊂ i⊃]P'j∩ ¬R AR@∂&A¬%∃α∀*2>]¬""&M∧z0∩¬IλPhSαh
@; S@)¬∞-→∧J1αRDJMα∞
~∃αRD)αεB∧bf~Jj∃αX≠∩∧∀T Tm∀QQ#@7nb"*I⊂3@⊂⊃'ji Tπ⊂≡J%→α2≡t90 ('33@4⊃2⊂)Z⊂ε"]αDfgk⊃dP F∀c'gFB≥]]DBDfgk⊃dP!ε∀a iεB≥]]DBDa`f∪⊂→⊗(Ujhλ
9;; CAUSES THIS AP@LYFRAME TO APPEAR GN↓)⊃
AM)βπ⊗h~∀`-YX$$¬αa2F~|x4)MYX$$¬∩a2F
⊂4)@4εna⊃ /⊃IJ∂KπHβ( ∨βE→P≠; <SP>,,QUUP⊂~(rvv∩$∩Iβ!A→3
¬¬≠
∀4⊃β
∧zB)@!→∧e∀T
Bbk%
αHHα.p*
⊂ε,c∀ fbP∀'h%εB∧iedT π @($∩∩`.4J≡@-(T∧`:αj⊂&⊃dεGTH OF
IOVEI T,1 0⊗A¬!!2Jα~Jεl(4(__D$Jλ¬⊗∧¬∀∪!%→αAPXQ(R4⊂λ&NαX"¬αβ∃α!⊃,¬`⊂OP C@%U
(A
I≠⊂∃ααλD`@ ¬∧h∪βP@∀A@X∩$KZJ-JZ$`!α@
$AP@!13
%β5
zj@⊂εS∪+%ED5 z∧PKαp4
⊗(⊃J(31#!∧¬∀~(~∀_w
→Q'⊗bA→→)'⊗β⊃α4JJ4]αλiE%≥H λλi∃∀qK∧⊃S∃
8Sλ∪J@)`@ HA≥-≤Z&Aαu2N.R⊂∧∧`*TrqIAα@
~∃M+¬))0∪⊂~Vl*J&
¬"fB∃m"⊗NRLr≥ "λ9t`*Q0 )Rdπ@≤X↓β⊂~⊃¬2ε %XT¬∀⎇X¬∩)@ ¬S
IFN BIGNUH
W
→β∞αZ≥DiH∀:@⊗c"Hi∃∀rf↔@∧RkU P'&Uα5∩∩m+⊂~ε≤~⊗BR∩2* jTl-)_2¬4→JT(hαR1HT⊂π i∩h∧@⊂X%∃%' ¬I2αβ8de%9:¬hKαpsλX4H∀λP#& QiFE.BDXEND @∨↓∪
≤A ∪∂:,i.∩
4bε≥8;∧4d_qP@(β&*)RY_
%Tπ ∩¬∧r6@31⊃∪@9β'g-L¬+≠I∪εA4
2V∀hR&~∃∧rεJ&$A0&*∃~Q↓Idα`≤4JJ4]¬Q↔49α"`iλ(!P#∪ ciFBα@
→)M↔ t∪5_∞@4Y∀¬%"β
⊂%⊃ ∧]A⊃& ∂AT S@↔∪@@ αJ⎇*R&:(h ⊂LJ9α¬%EEU≤,yIt8Hα.`⊂λ)`IPS 0 FLπ$A
%1≥+≠LX@bA→_∞Iα4b0≤@U34d¬⊃t@λIu0SλZh#"A→∀TVD
∃∀jE∃∃∀BDXLEAP
~α0∃,XZ$L~λh∀e,T ∀`$∃∃β!$c"P∪αARITH, 2@@∪↓∃%'(αα↓"R ¬∩d∀JJ5$∩J→DM≥AQ$L4d d
∀~Iαbα∧ε$$Ld4U∃8@λε%⊂
∃
E4εc&∃)j!,QH &≥ %n∩M~BεR≤Aαε: ∧∧9α"`iλ(!P#∪ ciFBα ∃
1)')∧βP&~2%~-H∧KZ2&N I`≤-*)u⊂H!_de%8kHKαqR+ U3"'~p¬dh∀P_εEαc&*)Q&∧D]Q&'g*SDY`∪KIPS 1
DB⊂∪
→)M
_∩∩m ∨+¬1
∩`.α94M¬4ε⊂hT8ε∩αc&*)RX@ ;@π⊂≡⊗α D-C8Z%∀⎇!Q$%BA_de%90!⊃,¬b*T&"`_ 8π%%=$⊂∀
∀9⊂&~e"N-DHI`≤∀_ye,@ ∧]bT)'iεBα FLTSK2 8π'3≠ ≠⊂⊂%\*JJ>⊂h ∀DβI⊂λ)"`⊂EAPλA⊃9↔⊂∩xp
f∃α⊂#&∃)` $$p∞"VtZL%@8Z%∀⎇!Q L4JJ4[⊂α".j(3Q∪iQ,¬bi∀'iεEαc&*)RYD]Pi) lB]b`∩RLπ$4TJ~9↓pj~2R≥"↓6:%JB-5D¬,
)`λ~βi'g⊃P ENGP ⊂AQβ¬→t~∀4TJ~9α∀J≡*VhQqE6t
J&R@πbb∧h¬Ti8QnC! 1S@λ$cg*SU' i∩h λ, NMSKBG:~∃→→)'
`pλ&6⎇2∃αR a"¬$hP&*J≥!↓"QHh $
L21α
L::V5SaE6:
∩&Bπ`∧ UTrhk∞C"Hi∃∀qIGB33j@ ¬ @)PXQαR4∀∪∃%M(@bQPR~∧~(~∃∪
8A¬∪∂9+~TxD[≥β%%)⊂|Yl~∃≥
M↔ dt$K ≡Rλ∧∧`)5Hb!↔pπ'ge*fbT$aP+⊂f*bFB'+)eRh≥∧fSi"dP∃*⊗∀ JD@ ;"NUMERIC VALUE SKIP"
λ LSH TT,-SEGLOG ∩wM↔∪!&h@`@Zαα∀LyjTjB∧⊂βj∧i≠∧e,UDβ∩βTλdd|βQ3%D⊃3∀hT⊃0 )∪βR~∀%⊃%%4↓)(I'PQ)(R$∩w2,
R-4 e,@10 $Pβ VALUE IN TT
"DIF JRSP @(TT ∩Y9)'.αH"eI~5 H∃j4,*λ∧uλI4pβ!↓ SUJ9u⊂@≥αg+!eT→ ;LIST 8π%%=$∩∀∪9)'.5@$%N4Jb:VhIfN∞MαM↓DhP&:Z≤Z~0$KZ~2>u*4%Nα94M¬4ε hTH @Luj95β⊂α".hIu0SλQ"Pv∧A3QTi:B"'acfh∪"hεE⊃,∩∧g∃)`P2 3DUPLEX
BG$ NVSKBG ;BIGFUM ;SKIPS 0, LEAVES BIGJUM HAADER AN↓)(~∀%≥-'↔@d∩∩wM3∪¬∨0∩w¬I_∞H∀TB9↓↓¬∩⊗B⊗
!α":\b0≤:4⊃B∧uj95β⊂α.r
YRtb'bi)'T∧¬
NTS@↔H∩∩`.α(∀d∧yQ∪L-*)u⊂H!→e%≤αpA⊃,¬`i∀ lD]Qi)'iβE$c'λ↔⊗g+∀ej!-LTYPES( GARN KWRONG↓→≥∂Q⊂A)β → 4hP4*:αj4\4G!∀l@uQ(
Jλε∀ JF@
JRST 2(T!
] ↓;EL¬⊃α|1α&~pα∀LyjTjSF∃T`(4R5 πβ
λλ
∧~(~∀_w≥≠M↔ dA9≠'↔∪@A≥≠'-)∧A≥5'↔
⊂↓→≠'↔→_∩∧~)∪
≤A9β%∪) Y6~∀4⊂vvV↓_
V6-∩&
α≤Z&Aα∀zVR→hPhSαh
MBDe)hλ*⊂NMSKAP
λ;;+ @¬≥⊂J↓0∩ra⊃∪@9⊃0 "H!'i⊂αIGNUMS; LEAVES HEADER IN TT
8εvv∪⊃0@∩@8X\α∩m⊃⊗J*α~>I∧"VBH[hSαh
@; CX$ ... ;@⊃I
A
∨HAπ∂≠A→ hQ`≠[1_Dα∀¬brp⊃↔4D4Q(λitH⊃ Z0S⊃'P EAT@&A→∪%'(ααV =(@λ →β⊂ ∀T
0⊗@YX$%↓pq0$%\B⊗J∃∧26Iα4b6 5YS2∧dX~d-~
h∀e,T ∀r¬JAPS[71⊂Jrea⊂K\λZ$*∧iz"∧4≠ e,k4 D,
hZ2¬4→JT*∧→`λ
Jβ"Ng]P f∀gP!f⊃`i)P∃$"P(⊂P#& QiFEεB'&ieT→_
%WPA NMV3 9JON
NUMERIC VALUE
NMSKIP:↓MOTAI TT,(A)
∪→M⊂A)(0['∂1_∞≤4PJ"JJRαRQ2≥!"RQHh)↓↓β∩∩&→¬Z*JN ↓I2↓E"Q&VtjN.R⊂¬ED~:@hPβ"Njλh⊃Sλ_th∩)D∃∩∩*4∃⊂0IH(∪5*:λ⊂Q$Q0SaQSS4i:⊂NB)@&ieh∧DD]S$ijεB∧g&iRc,∧DB]c$l∪*fFEαg&ieQ&∧DDNβFLONUM¬
D@$ NMSKDB 3DOUBLE
CX$ NMSKCX ;CH∂≠↓10~∃⊃0H∪≥5'↔ 0$∩∩g U!→04∃¬∞H%≥≠'↔ ∞∩α∩m↓∪∂≥U~~∀∪9-'.β⊂$$%]~f6
|`4*"r!↓αJ-α⊗εQ∧B:.Ixr[
D e5≤:ε K\λ¬3I:c"B)jTrtε!"".j(3Q∪iQ"B3JjptA⊃".p**P6#!)1SH¬E3UTi:⊂K3JK4⊃4eD∃p4ID⊗utIyQh∪λYQu∩∧
⊂0Sλ[#"C!)S4rhk∞B3)zQ(∃
E
⊂*!Q@2TJ:λ⊂R(yU3*hK⊃S⊂(upv⊃IH1jqλ(S⊂1e6*∃
!QC"SIZrqSπ!33uHT∃∃¬λ*#"A→TTu∧λR1sJY*q⊗λi⊂1jh;⊃S⊂(uq⊂QIH1j∃¬⊃"C"HHIα3IZrq⊂G!33uHT∃∃¬λ*#"HHIα")*Tuλλ 1sU)Uq⊗⊃IH1jpkλS⊂1e
#"AQPr↓↓→LT1 IFLT2↓∪
→(β!α&~e!L4(hP4*2∪9A`+β(
→∧@ ;LAP AL@λA
¬'⊂∩εαα"εZ*αR"~4¬
03U ~α,P!∃df*∩dε~∀4⊃⊃EαqAh¬ ↓0∪α↓Q Jα∧εhTF⊂FλαXλ 4$bP→Bβ`∞↓Q@∧P⊂∧¬∀~)∞∩Vα CPα1∃* ""!⊃,¬c'T⊂⊂λ% 0 0 DUP@_b$~∃ππ5!_bt%∞ - F⊂HHα".hitH
∧Tλ∧λpε`⊂L1)~∃
¬_bβP&∩
cλ$$⊃↔44⎇$¬α*β∧εα∧⊂S%⊃ ¬!c∩l_]∧Q$hλ "$∩∩%\20≥∩¬ $ελλλ⊂⊃$hλ "αH4*∞4b0≤
F⊂∞Dλβ&'`U_@ ;FOR (% 0 0 FLLπβ(bαH4*I8εβ@!4Q4λX5λ∪
&lλ¬@)(!g∃⊗⊂.RPC@≥ I`≤≤βs3)Yβ⊂& T⊂!gg∀h∧ANTS ALSLεA+≤*⊃α
Jα2&Nαα≤@q⊃#!∧¬∃5i0 `+β(
FBαIFL X¬5 )lrε∞Mbα`∃UαO')@ a`∪ ;@≥∃λAβ(αα2,~:BβDβP0j7H∪qD
⊂∧"iQF@
REP@β(αα`∃UαKλ¬@)(!g∃⊗h
ZZ
P⊃εhpλ$∧KZP≥∀~HRα∃λ5T`$H⊂
'H πED↓)⊃
A
_∞ 58¬⊂)Jλ3DλSt@⊂∀d¬ALL N~∀4⊂λ (αN`≥Nβ @∪≥Q%≥β0A¬→∨9+⊂∃6$y6~&DrV *λ9t`*Q0 )Rdπ@≤@X∧∧$|X4∧`)h⊃4J)tH⊂iλαaeiKαλ
)Xπ3@4⊂ssJ@ ¬RTS NUMBER IN TT TLεA¬
↓αA
∪a_
V5bα≤@⊂πa!⊃i$g#H ∧ ≤~(p
mm¬""*λ9t`*Q0 )Rdπ@≤A%&Aα@
→>⎇⊃∩∧βt@⊂λα@≥$J⊗I ∧2V 48¬∩)@dε.
8εvvAQ⊃β(A%&P⊃↓~qU↓uβ`λε5λ⊂U*DλεQW
P≡P≡Z`@8hP4*&4Jah→ZTdJλ¬∃¬Fλλ∧B]b`_PMH
≥PA∪≤AQ(XA≠¬≥)∪'MαA&p∧∧ @ ¬∧j∀aP ∀T,TT 8π ∩αM→α"ε≤Yα∞⊗αJ2∧l_ydM∃1⊃$ qH⊃+
⊂πg"SαT
AS@ D,-24∪(TT) ;SHIFT DHE @≠β9)∪'π∧~∀&lzP∀(⊂
* ∧D]T ibf∃⊂ N↓)(~∀%∃%'λα↓"Q⊃Q hPβ"Ng]P$g∃ ¬RNAL FIXLUM-TLεP⊗~dz2V5∧~6 5hZ%≤Lyabα¬8~d-~λA`hPβ"R(i⊃p5π∧j&'⊃P**,50∞n`@`∩∩w→_∞Iαα u≤MI~d*∧α3UλXq0 )H→≠W @¬∪)&↓≠$A→∃'&H~(∩A¬%M(A&4bQD⊃↔2∧≤→`λ *4q⊂∃ibP#∀aP ∀O SCALE
∃∪→→(j@PJ~N
¬"Q1I≠_$%N5~¬αiz$lI≠$-~λ(U≥JAP@L**5"αλ@
!Q@εE$Q&*_Mαj C TT,774ε``@$∩w)⊃∀A'β≠∀A⊃βπ,A/∂%-&A
∨HA≥∂¬)∪-
↓→+≠¬∃%&~∀%)→π≤↓)(Xn\h
AAH%mα<JR!αtyα6>∀)αRαq↓I]p∧¬≤Lyi∀4L8→e"∧)~E_h!∀∧U∃:@∧L4JBPhT_iE#∪!→T⎇∀YPλλE⊂1S
G"".hitHG¬H⊂
'H→ZW @¬∪)&↓∨Aπ%∂≥∪
%∞ε:≤)04!→%,m D¬%"I_de#1⊃∪@4∃q(λ→βc ⊗ERT DHE @→→(Aβ≥⊂A%∪∂!(A↓β1(
-1Q LDJ+"∧αJJ@HKαh∀hZ⊂4P*H3⊗+∧λ3Q
I⊃3@⊂⊂b"⊂*∩ ¬M, TRUNCAP@∪≥≤~∀&lzP∀2(∃
Eλ∧"*
F@
IFLT4: FSC D,25 *$∩w'π¬→∃αα)∀<ED ∧@⊃C"A_Tph
Jλε→33 ∩wM∞ε2*α2,h¬⊂∩ f#εBα FAD TT,D 0↔β⊃λA)∨≥ ∩λZ hPα33j@ ¬ D1∪
→(βH$%@8∧Q*:α ∂RE @
JRS@(α↓"Q⊃Q hT_iE#≠!→∧e∀tλBe%A⊃∪@8St@ @ ¬GATIP
A9+⊂⊗
-∩M "λ¬q$ 50 jβE HRROA TT, @)PR∩%X∧¬¬∀xJT8(⊂
$⊃P!gi∀ ¬C@(ααN&≡ph ⊂L→y$
∧EI∀4eFAP@ ↓GqS∪J@_hλ EFLFF1 BLNV1 EDBLV1 D@NV!↓∞bh¬L+∧⊃0v JL(⊂k UHλ@ EDXNV1 DXNT∧bA∃~bNQ∧rBVN@∧⬬X∧r∧ελπ⊂⊂PUS@⊂A
∪⊂~R∀*1α→jE∀Dλ4D0rr$λαi)bU*hεEβE_ 6βYα:Vl*J&
¬2ε %XT¬∀⎇X¬∩)@ ¬S.A)"-~∃α∞D*≤Zλ→b¬~β16
Q0 iRe`∞
8εvvA→_∞Iα∀*& 4t
DD(⊃⊃*94Q1∧ U31*)0h∃~⊃+λλ→β"⊂(∀'b*aQP FE∞β;; WRNG-TYPE-AR@∞AI%∨$A%Aβ!A%∨!∀Jε@$U`λ∧ u∩⊃**p4q!QL¬P≠lA)"*αP∀JXR∧|d
DD(∪U)XQ0 IS LIFTED↓∪⊂~RzαRQ↓D!2I22I0⊂@ ¬εE⊂βH∂6l*0∃"∂HeDud∧ ≥λ εP⊃≥XdtA
a_
YMRα~bhfC@/β"C!≥]U@ FX@≥D@PdXLXh@%¬"ε.⊗~αM ,Xε∀∧ 3H⊂$¬⊂K⊂eH4L ∀H g" PUTS T¬β→+∀A∪≤AQ(@AλαbI2→Jp4(Q)∃∃∧4λ∀
Bβ⊗d&&m↔#!λαc _NT!AC:
IFN AC-A, E@1
⊂AαY¬α~∀∩$K ≡Rλ∧∧5DβS1*!α@
IFL∧Aβε5αP∪a∞!αλ¬D_Q(eDud_∀7@∧fgUα@∩AQ(ZbW¬
"α⊂0e⊃,¬ad⊃a` DAP αAQ3!
~(∪%∨(↓)(@5λ¬4~β4hXpε'cCE SKIP@_AQ(ZbW¬αP∩Nα@
JλεP@+AC ∩~(∩A)→9_ αR ¬S
\_5D5@⊃↔5≤\~∧∧L4dλdMDβP
fCE JRSD↓
"u1εεHH%nIz4(hαB3)Zβ"P*∃⊗XU`Pβ(λ@"→$$↔8t-λ⊂ S*bP$Sα @≥,j⊗J&~αε4PJ*JNα@λ¬
λ∧FE∃ i&dSαλ
(hP4*~drP∪
αλ
∧Pdπ@∃αααQ2~drP∪λα".hi⊃QL$
p5∩∧
p¬dhλ)"`∀URN¬
λ@
→9( E@!∀U-⊂(⊃IIS14AQQS∪J@_X
SKH∂)(αα¬ $iA⊂K\xZB∧4Iye,Jλ¬P)J1(∩)@⊂** FROM↓α~∀∩↓∃%'(αα⊗~2u1D4λLj>@4T
E"bα⊂"!Q@∧e)∀h⊂∀*
FAεE∩c'⊂"⊂#& cK-FE"Q!'#_Nα %@/QαA ¬9≠$~) ¬≥Dpλ&N\zRQαλb∩λ$KZ≡⊗Q∧">@,)HR¬4→JT*∧α3@⊂
**⊗"
P#!'SP FEαP!))U⊂"b!∪+_DDNβHAGH ORDER WORD AN↓)(HA1∨ ≥α⎇∩∩-$ ∀b∧AQ$\λα33j@ ¬ @)PXQαR4⊃↔α∪5∨%
A⊂XbQα$~∃↔∪-_∪ ≠=(
*λ¬∃¬E⊂*#!↓2TTjD
⊃α!QTεDDNβENDMF IFL DBFLAG
IFN CXFLAG,[
CXNV1X: AMJA T,CXNV1 ↓;CXNV1 Tπ∪)⊂↓'↔β ↓%)+I_⊂∀λhR⊗∞bu1Eh∀Zu$
λ;∧tlX!PT≥ jcP~94⎇¬Dλ∩d≥↓⊃∪\<Z@∧@s0∪λ[λ∃P)J1(∩)D
⊃∃¬Hλ(⊃J)s(⊂!Q@∧P%∀)j⊂"Pl##_BD]`∩EAL PART IN TT, IHβ∂%_
εJJα& 2λAPD\⊃→T⎇∀T
E"bλ⊃⊂hT8⊃∀l]hT∧"c∃λ∩Hh)9∀\`_IT⎇∀T
E"bλ∃⊂hPα2TJ:λ
∃¬⊃"W"!↔q3Q∧ qH∩(iH⊂vλi⊂1c!!"R1ID⊃⊗⊃IH1k⊗aQQ1⊗ @+_]∧Iij @ DXNMER
DXLV1: SKOTT A,DX 3GET DUPLAP VAH +
↓∪⊂→↓E⊃2→2%!2⊃¬∧2J>5∧λ4(∀ %∃≥DλT4dhf⊂HK8∧Q(→λ⊂⊂**λ∩3D¬∀K⊃E∃α⊂$fPc`g T,P$gλ∀**,D)~∃-α∪%Aβ(@PXA∨Y
A)(,xdF]I!π≥!q1:J∧~:Q"λH4*.LZ0&∩lzP∀(⊂@⊗∀ TFB%` KL DMOVE TT(A)
JRST (T)
Y ;EH
λA=A∪
8A 1
1β∞~∀4∀@@A β↔!%<~∃%'a'(t∪!%%4AQ(Y-%∃β )β →
∩wIβλA
⊃β%β
)$AM3≥)β`~∀∪⊃I%4A)PY))'¬$Q)($∩vA)¬¬→
AM)+ 4∀∪⊃%1∩A)(0PQαR$∩∩w+MλAβLA∪≥ %%π(↓β %∃'&A/%)⊂~∀%≠∨-4A)(YI'1)∧$∩w∪≥⊃0A
%→λA∧~∀@@↓≥∨!%<~∀∪∃I'(@QPR~∀~(~∀~∀4∀~∃'U¬))_%'+!!=%(A
=$A→β@←
β'1β Aπ=
~∀4∀vvv↓+'
AQ⊃αA↓U'⊃≤A5βπ%≡↓)≡A!U'⊂A≤↓→∪_OL@P`OLX@`\@O&RA=≥)≡A@@Q
1@XA
→@R\4SYmmαM!α↑εdaα≡⊗t*JεR*↓α*NααQ2:¬*N!6p↓↓!B¬*N!1β↓1BB-~!%α
→αεB¬∩0≥¬)_∃$*aQ#K[4λ4|@4∩3λXλ⊂shHαP ∃SES DHESE ROP)∪9&A-∃%2A
I#+9)→2\4∀∩∃%∃!ββ(↓_
:B-~!0&≤z2
αdr:BV≤A5:J∧~:Q2uαVN!cP&BV≤AαA2∪9@4)j¬-≤π!∀U∃:DαE"⊃Q hU(Z∧,
D c¬¬X9α`L9yd~¬Ib¬¬-9¬Re∃λ9e"e
Z4Bc!~¬-≤∧λeEαJ&sH&
¬-≤¬!∀U∃:DαE"⊃Q hU(Z∧,
D cαs
U≤BA_4|@Ph↔ f L∀
Zr+J*⊂sU¬ET∃4i¬∞B4
Zrλ⊃IJ∀Mf↓ LF
∃4rπ$∩TTjD
∃
!QA"C!(r3U
(3∞B)→U∀Q)A".tH→Q∪s$
4q1JYλ∀Q*J4S@λ_⊃∀Q*:c"C!)3U∀HY∞B4 zλ⊃V
¬∩3R _R5α%jq1(
YS∪pi9".piy1(∩λZQ(∃ t∀⊃4HitS λ→H⊂
g∪'aedCE!d"Ped]∧Tedh'λ''hjRj∧D]Pd"aeH#'i⊂⊃"f lQb⊂$g∃))*h∃)FE∧H)edh∪⊂$g*⊃FEαP⊂('T%⊂ ⊗αD]bl∩h∧ IF NONE
↓JRST CKI0 ;EHSE GO PRMCESS
.SEE ANTXIT
JRST CPCALL ;CATCHALL IN COMPIHED AKDE
JRST CAT@¬β$∩$p∞∞ε$~!6
∩J&⊗⊂α&)α≤z6B&d*⊃α∞|"∀4(LRJNQ∧~εRBαZ0HK89tm∧→HT"∧9xD*∧8→De~λ8∃$≤↓Q$-∃8ZE-β!Q M¬Z9α¬αH!∪\≤yZ∧LDXD∧|HT∧IJ2∧-**4- Q!∀U≥∧
Bd-*:EH!→T⎇4YT¬αdZ*%$pQ!∃≤-K)R∧-**58h!~4\MλT∧λH⊃↔54JXR∧Ldλ∩∧$Z85∀L(Z2¬<λZDD
$λU∃∀z*2¬¬)→e h!∀¬≤-IyR∧-**58h!→%∃≥D¬¬%"⊃Q cZiH4dβλIHp1M$¬S⊂p(fhSλ`c$ ,LCAFL .LCADB .LCACX .LCADX
λSUBTTL SUPP@∨%PA
∨$↓∞ <X∧∩)H1λ∪
:0TTaQ@εE≥Nβ; ORDINARY TYPE COMPILED LS@+ %&A¬∃∂∪≤AQ⊃⊗&⊂α≤\HT¬ 95∩β!πnnb)*tλ⊃¬ES⊂p)Iβ"Ng]P'*Sbi$aH*,h"H!cfh∩d∧ED↓→'+¬I&A¬≥∪⊂→ααI∧,M$λ4l$T
tM⊂∧εE∞β;; JSP D,¬→πβ1_[≤∩$s⊂→αM→α¬α5*0∀≥I→t`$⊂πc⊂∃$"P*⊗h"FE∞β;; JSP D,.LCALL
;8εvA$B&Mαα)u-∧α3Q$
⊂2q*4⊂p4HT⊂πc⊂⊂αINDIL¬≥α
∩≡ $x4∧@Qλ⊂*(βc ∃M BOR↓)⊃
~(p
mm∧∩⊗ 4Xi∃"∧βqH
I⊃(⊂*(βR⊂)Qh∧ARG, AND L@∪'Q∪
%∧2V 48¬∩)@dεS,
λ∧vvVααε 4D
D\Tλ4
∀T t2∧iJU≤Dα3Qd
⊂∧"P⊂i#jfQdεTS FROM↓)⊃
AM)βπ⊗8~∀4SY`≠Zλ¬∩λT⊂πi"⊃i⊂'cλ* λESE ENTRY @OIH
)&↓∪&A¬U∪⊂∩Q∧J0∃$t
DD(⊂siZ⊂∧f"T∧¬
JRST .LCADX ;SETUP FOR DUPLAP TYPE CMH!∪1λA→M+¬%&4⊂∪∃%M(@@:d~ε∞`KZN⊗R-↓α
>⊂α≤@q0λ&⊃l⊂ ∀YP@
Aπ=≠!&d*⊃α∩≥*∃∃1Q LU*:BαtH8∀$⊂↔:4-∃0λ⊂⊃'i⊂"∪h¬BLE TYPE CGMPIH λαα2NV∃∩L4(LRJNQαr2∞ε4`%nN-"VAα4zIα~dz0∃,T
EM∧Tλ4l@4∩3λXλ∪∀jXTTc!∧e))U⊂⊂∞LCAFP⊂∩m')+@A¬∨$αα~&@ jTj¬K~∧*∧9yU∧LHXB∧e8¬0J*c"KIHp3∪π∧h"iR⊂(⊗)
X∧]iQh∧U@ ↓
∨$AI∂+→¬$Aπ∨GJUM
JRST .L@πβ@8H%n⊗L:"Qα
→α↑⊗daα
Vhα~>I∧r=αε∀:V6⊗u"L4(LBJ2M¬ $$%\:>@"
Ir∧<Z@λ
)1λ∪hd∃∩⊃$λ4Qu)X3U∀aQ@∧ijP⊂(⊗*βE↔&!Pc≠]∧R*fh"H"⊗*g⊂$g"∧B]j$$TP"l$U⊂)dcS f)P⊂`f&⊂∃'P''U,h"P∪)ja)⊂'i⊂∪!`f&λ*#P'∃fb`∩IC
PUSH P,D ;EH '
↓1β(↓)⊃%∨U∂⊂A
%0bA∨HA#+%-β→9(X~∀%∃%'(ααV*
Lr⊂$%Zα6⊗εtJ2:λ(T=,H~"∧≤→IB¬$βh∪JY10 $Pβ @→'U↓$4Ph!:2≤
~ahMαVN!¬↓2∞~MAD$¬]αVN↓∧
∩%(Z5~∧iz"∧≤yjd-∃I→d<@00r →β"P'∃da"iλ* ∂ FIX@≥,h4(_→tT
λ@¬@&!`c
D@]dSαCREMEH
(A⊂A!β'PA)↓
↓∞ε2bαR=↓tb≤IESα¬y ∀9λ⊃SiI⊃utaQ@εE↔∪!`c&∞α PESH P,CFLOAT1
α AMJA D,.LCAF5
λ.LCADB2
DB$ PUS@ P,CDBL1
∃ λH∪β∨)αAλX9→πβT~∃ ∧α(&"⊗∃⊃αnNMB∀MDDID¬$zλIu,∀HUU%MλT¬-≤Z λ Ju0TD≠↔#"AQKS⊂h_v
C!λv α*
4r⊂∀⊗!afT&_FE⊂βX$ AMJA D,.LCAF5
CX%∪→∃%$A]~&b
M!αb∞b1αRzαε <X∧∪λ[ 0
,T P ∃SER LSUBR!\]
α
.LCADX:~∃⊃0@∪!U'⊂A 1∞∩Vα CλhαQ⊗∧A03rH∀⊃IHp1M!QQ⊗∩Bd"`∩R [SIX@¬∪(Aqββ→_↓)≡A U!→⊂5)3!
↓+'∧αα2NV∃⊃εrthP1n:⎇∩⊗@"¬j%≤-D dm53h I4u I4q⊗∧ ∩4uεh∩s ~uλ∩II4u⊂∩d ST ILIST1 ILIST3 GPRDT@∧A∂)I (p~(~∀`-β32¬$λZ4*¬I
$,*λjTt≥I→t`*h∪1*(3⊗(
85Q(
I⊃(∪ @ibi∃$"P*∀'ja&⊃P ∂F TYPING "SETQ "∞
~∃9≠%λβP&BVα9∧R¬¬Id⎇∧iz@HK8∧u(
HλλFB∧d!)⊗&P F∃αNORET
α POPB P,
α
,RSET8 PUSHJ @,NOTNOT ;SUBR 1
↓MOTAM A,V.RSET
POPJ P,
NOUUM:∪!U'⊃∧A@Y≥∨)9∨ ∩∩m'+¬$b~∀∪!%%5~↓αQ-≥=++≡~(∪!∨!(A H~(~∀~∃M+¬))0∪-β%%∨#&A1∪')∪9∞Aβ≥⊂A
[1∪')∪9∞A%∨U)∪≥L~∀4Tb&NQPJBVN@α~bAd~εB>∧P$%Ne~V
HhR2&N%A`⊂LYzd,Jλ⊃D`)3α"'a idPβALLY, THE BUNCTION@
2&≥! (!~4\M `λ
%∃α"'P!`f∪ ¬D WIP@⊂A∧A!+≤B)α~β
α`hαS∩*:⊗nA∀∩U3*λ(⊂@⊗⊂βPOPXJ
∀∪5∨ ~⊗Jα↓1αλH$%@89D`8PQ4J4⊂+⊂EJ ∃∃¬J@εE∧T'h⊂( BE∧R)h⊂*("&'∪eFE∧R)h⊂*⊂agg∀FE∧`Se P)& ij⊗→FEεB≥]]@∩dεTERLAL LISTING FUNAT@∪∨8rA
¬→+β)∃&AαA1∪'(A=Aβ%≥&X@~(rvvAM)βπ↔%→εA)!∪$AYβ⊃+LA∨≤AQ⊃∃ααλD`h!Q$\D~:C@L J%R∧%E∧
H⊃↔5≥-λZ"lD_94M≤∧
d-∃9→tp@"B4
Zrλ∀¬HC"B)
TVHλ∃λ⊂*!QRS∩*:∞B2 JVH⊂EE⊂*"!↔p⊂0i94rλ
H4Tr)yβ⊂ ↔HIC@⊂A⊃∨'≤≥(~∧∪A+'⊂A@Y∧α∩lA-β0A
∪%M(Aβ%≤A∨$A
≠ ⊗: α&P4PJ"JJRα¬1λ⊃⊂hT→I∃≥#!→T⎇∀Y∀¬"c↓⊃∪@8p3∪λXλ⊂V$ Ttλ
Jλε$f∩ijεEαe*fh⊃P V∀∃*⊂FEαh*adλ!( ⊗∃*εE∧T*id FXP,T 3CONTAINS 0 - USED AS COP≥ ∃$∩∧∪A+'A→1 I$$∩w-~QαN
2∃αIλh"&2M~QEHMαVN↓¬↓2∧∧KZ6@$λZ% 94q+∧
⊂∩4dλ5P3∧ ⊂πghβE HLRZ A(A) 8εA6
Iα∞∩|∩αεI∧
2fRDJ28Q!∃¬-9 "¬αβ⊃5H→β"R)I4q→N∧bd!R⊂ V∀∀∀@ ;SAVE TALUE OF STACK
HRRX A,(A)¬
SH∂&@4bQ
1@R∩αw
_∞F:"αRε2,*L4(LRV6Bpα¬2εdJNADhP&B>αα~bAe⊂$%nα(U≥∧z(R¬⊂Q!∃∧⎇∧λeEαJA⊂K]D ∧
~¬SB
∧βqH
H3∃1*4⊃s@⊂∀ >
λ POPJ FHP,
3 6l@∪∃'@A(I∂Q% )∧$s∂ LA%β⊃)β¬→∀A∪≤A¬$eαX↓β∃λA5β3¬
↓∞"⊗≤ZMα~⎇⊃α⊗J∀zJMaQ hTzJ$%$'!∀E∃+$∧
∪(∃E *Q01
H0S⊃!Q@4ri~∪H∃EJTq5↓⊃,¬bi∀'i⊂!R ¬CKS IFF *RSET NON
LIL
BRST (D
↓SKOPT AR2A,SA
α JRST↓∂!% Pp∩∩w∃%%∨$↓∪A≥=(Aβ%Iβ24PJ6 =hT¬%"H~4
∩λ~#∀
⊃Q M$β∪Q$
∃⊂*7∀Q∃πa .q**St@ _H∪SjD∀Q0(J⊂0SλT∃⊗4λT⊂4TH≠ εE∧H%))jλ∀*∀FB πTRDT8: MMP
∩↓β$eααbJ,_JD∀HQ∪@9β`∞ ERROR RE@'Q_∞J∃¬"0~¬8¬⊂)Hα i"λ)"`b∃ a&"CE EX@π⊂AβHeαY-Iβ )¬¬→
~(∪ "≤AαεI∀ 2∧Q!∃¬-9 "¬αβ⊃u
(α*≤DB]cdk⊃P ∂UT A FAIH ≠β
(∩(Lj>@4Y∀∧
Bα⊂4F(*#"A→TTu∧λβj)"∃! ;TRP∩A¬∂β∪≤αα&→αdzN⊗I¬∩⊗@%X∧SJ4∃∪h
Zc"C!β≥`∞OIL¬)∃∩VBQ∧r6&:α@∧λp∧"aRh¬ CHEC@↔λ∧∧`)p3Uε∀⊂π'dS*~P'∪dg"3 NOINT4 NOIH
)ααα0∀|α3Uε$⊃3Si→β*εEβE)ba∃* NLπ∪≥$*JJVα
B∧U3PjI3sC!∧¬∃≥=∪⊂~R-∩JVB π LUYZ∧*∧∃H4D0ru!↔tp
a∀⊂_P⊗H g a∪ Wb$T`a&"CE CAIHAααbF@%K⊃P@J *%≥λ⊂rλXp¬`∃
λ∧∪'Q_
α¬`H$%@4
$@Q∪s$λ4pg⊂βHRONMP&~)_
>&u!Ah_[∧9λ⊂ ⊗∃dεREAL ↓; ¬%β0A)&l)∩∧α3UλZTU4
Jc"B*9p4⊃hT⊂""'P⊂λCLLππ.α4∧@Qλ∃
K*#"A∀⊂εgk⊃dP F∃)*`∀H
∪!=!∀Aα`4(Q'3@7h⊂rλXp¬P#∪βR ANY DELAYED ¬%β0A)&l)∩∧α3UλZTU4
Jhε⊂ S ∧ @%U_A)⊃∃~~∧vlp
α_d∧Uα+@⊂∪hib DO @)!⊂∃αLqαRλT∧`:Q⊃4DQkwK¬λ⊂s @a`@&0Aβ≥λαα0≥⊂∧"iαλ
∧vlp
αizD*¬Iλ∃"∧_jD-∩λ⊂λhh∪tDβ(λ, @π⊃π-*A∂Q&Aπβ1→⊗⊃∧
≡ε&p¬`hSαh
@; @ECTROYS D AND B~∀4⊂
∞α,~.@+αB4i94∪@⊂∃e)"`S∧XNOL¬∃α≤
1α
*αB,hI∀`(βP$cλ''j DALAYIH
∞~(∩A¬%M(A
∨%→(`~(~∃π⊃∃∞.EPJBVN@αA2∧hP&BVα9∧R¬¬JTL@U∀∃!QSSr)J.B*9r4⊃$¬∀
#!↓(∩TJ:λ∪Si→β*~FB∧iedT ¬ D1+∃%ε9∞∩g¬∩0≤≤X:2¬@QkwK∧⊃R4J:β"B$ TTu∧λpr,H⊃,¬`∀OP @→Y⊂⊃α⎇⊃α⊗J∃∩R9ααy∀dbλIr∧
λ9∧,≤αp
FB''dg∃~X
PUS@J P,FOILTA ;LOW PROCESS ALARMCLO@π⊗A∪9)⊗J∃*BRLhP%α
∃~Qα~|J2QDhR2>&u!Mh~94M∧tλbe,j(T
⊂↔9dmh⊂3K∀∪u∩λZH∩3JH4TU*
∀c"A∀⊂¬))U⊂#'dS*~εEαiciP∃dεREARλ
∀∪5≠ ~∃∧!2V:∀*εI"2H4(ε%∩0∀(⊃⊗
__⊂⊂00 0↔∪_@Q:|J2R⊗α*%-¬D∧u%%∃∃B¬≥X∧∀
(4p FB∧P ∪KIPF (P)∩v↓))2A%_
R⊗∃∩VBR~αεAααI∧M~λI∀l(Q!∩α¬λ¬4i H⊂_4r3JA,¬f`VP!f'P!"`∩↓$@Aπ∃
A+∪M)β⊗R4⊂∪∃%M(A
∨%→(b~(~∃≥∨%≥(ht%'↔∪!≤AαY+9%ββ_4∀∩A≠=(
ε%∧ 2RJ-" (αB4 Zλ⊂
YTQ0)A B2J*uλ∃)→U⊃6↓Q@εE≥Nβ; DO NOT↓)%β≥M
∨%~ααR"∃α∩BVNDQ1αB⎇α) α≤*F@,Yh4-~ →e$z∧)%∃≥D AQL¬P≠lA3π%→(A ∃!≥ LA∨A1≠⊂≡∞Lr≥αε αR"∃¬αVNαRαε∩∩∀*NMααIr¬≤XT¬,DXI∧-⊂β"Ng]P#bH!`fbH!)'fH''dg∃ i)*T*⊂'iλ"f)bUd"`∩E!
α
LOINTA:↓SKIPF D,UNRRUN~∀$A∃%'PA≥∨∪9(d
∀%')54A+≥¬I+∀4PJBVNDQαA∩L*N&: h &B⎇α)αA`h":>LrQI@!~4\M `∧"eYj%$LQQ J∧αTTjD∀∪t & εE∧Tbj-&H*g!*∩d@
PUSHJ P$YESIND
λ POPJ P,
λλ
*,r0≤Lh@∞G%B""%@)bbP∃dg"λ∪∧@
;CAR@π $@∃∞ε∩$"I↓⊗≤
∩αε⊂↓⊗∞ε$"I↓⊗≤
∩εIα*≤J λ∧Xp04D∧0p4D∧0q⊃λHα)⊂∩Pb"" T⊂∩ab⊃ )⊂∩Pb" iλ⊂ab"∀⊂∩ab⊂i⊂∩aQ)⊂∩aP`b")λ⊂a``Q i⊂∩PβAADR !CAAAR %CDADDR !CDADAR %@π β H@@⊗∞$
εI↓,~εεε%⊃↓ε∞
εεIα*ε∩∩"I↓⊗≤"∩εε⊂↓⊗∞∩
∩I↓,~∩εε
⊃↓ε∞"ε∩Iα*≤H_∃⊂h!Q Hh!⊃PE≥X*E$`_8∃∩|8J"¬∀zZDL@Q0 P⊂e"⊂#∃e!`∀ILπ⊂~LhP4)@4εfd ⊃0Q$λQ3∪j@P#'f∪'kP*∩ ¬ "FAST"↓∞εIl~∩Iαα)u-∧α3Q*5α⊂εE∞β;; USED WH@≤@)%'λβj0∀LED∧TDλ%J∧9yU∧LHXB∧≤xHR`!αA≥]Nβ @≥∨Q
A)⊃¬(A)⊃∀A%→¬)∪-
↓ ∪'↓1βπ≠∃_
Qα|1αRλT∧5,h:DL@pπ⊂"S*),P∀'` NTS
;;8εA&~αP∀4TTJ*T∧P$Sh'i*⊂e*⊂*∪β THE P@∨∨=$Aπ∨5!→$\α4)@50∞dλ⊂πg*λ"k"iλ!d g⊃bP"$⊃dPPFB∧@
CARCDR: ∩∩m∪⊂~∩-Aα:Vl∩⊗Iα4zIα∞b1α
Jα∞ <X∧∩)H1λ⊂iX⊃#"DXp1⊃λJL¬∧iRdh @ A((A ;
!CADDAR: HLRZ A, ⊃α$∩v@b4∀Cπβ⊃ $`(M~.&Bλα¬!αλ¬⊂HK4ε hRX8∀$
'!∀De+$∧
bα⊂"!⊃,¬P→CE∩a`Q)_
SKIPAA((A$∩∩f@P~∀Kπ¬β$d∪!→%$A∧XQαR$∩v@J4∀CπβHpλ&"e∩aα¬bB¬$$KY↓X∀PJ*JN ↓"Q⊃Q",≤HHD%∪αB4i94⊂ λ∃λ⊂ ∀B]P∀εB⊂ab"⊃ i≥∧R&)-⊂⊂V⊂λA ; )
π ⊃ $`(M~.&Bλ∧∧
@λ⊂ ∀BDYP⊃0,
∀K
∩ε⊃P&"2∃Qα¬1D $$↔6∪
@@εE∩Pb")
αiadh⊂P V∀⊂T@D]LY↔εE ab i∞α HLRX A,(A)↓ ;13&
%CDR: HRRZ A,(A) ∩vDh\
∀%∃%'(Q(R~(Kπββ⊃ $`(M~.&B
α¬!αλH%mE2p4)⊗≤
ε∩εA) ;32.
%CDAAAR: HLRZ A,(A) ;33.
JRST %CDAAR¬
%AADADR: SKIPA A,(A) 935.
!CADAAR: HLRZ A, A) ;3&.
∪∃I'(@K
β β$4∀~∀~(_vKπ¬%π $↓utAβ⊂A∪πβ⊃% A∪X
J@hP4(Q'3KZλI∧*∧iyDd⎇y→d:¬H_$d
~2∧
λJ$u8hU∩¬hX5$⎇'$∧<MhYb¬$α⊃( →β#'VS*fa"T∧¬
;;8ε@A∨_AαAπ¬$[π HA∨!Iβ)&|q1αN
Iα91¬"",dλ4
∀8J%@9β⊗Y.H$iP*∩ @
;8εv@A¬ ↓%M&A∂↓)⊃
A→β'(AI∨ ⊗RLr∃α~⎇⊃αR"
!α>B-∩εRε|q9↓αtzR¬ααI∧
"λI∧(h'73@4λ∩3Hik3U)XQ0@ ~h∪SjD∃∩⊃$
p31$λ4h∃ λαP$g⊃"hλ-NUMBER-FOR-CKM@ILED-CMDE
9;; ALSO, THE TMP !3, BITS ENCLπ
A∧A↓π=≠!∨'%)∨A=A)⊃∀Aα[λααNBJLr≥α→jDhh'73@4λλ ∀H* "P∪ c ∀5≠↔' ∧∧`:⊃0 U$gg - !↓
&QαAEα~⎇⊃↓
⊃⊂∧∧@Qλ∧λSt@∧ Q∀Vλ∧@
;lp
↓↓⊂¬∩¬$λT∧L@QSh @*fa"T⊂ ∂F THE "TAIL" - & @¬∪)&PE)β%_DA∪LA%≠¬∪⊂~∩-⊃α>→h!mmX&¬6 ∧¬≥¬)→d:@λλ⊃%HβP∞, TAIL ∧A>2↓∀HH∀"∩ ~2α∀HH∀"∩⊃Q#K[4∧β~Jλ¬∩λTλPSk∀⊂4Q$
⊂⊃4hT⊂π ∃M@@%&↓%β≥ =~DA≥U≠¬∧ααP≤Dα0r∧
⊂⊃(λdπE@ILAR
9;; USES Tπ⊃≤↓_∞@-J
U%$→hr∧∀~:B∧U:∧∧IJ2¬$λT¬$DT∧T
(8E∩¬)zU$LhZ2`HαC"DXp4PhJL¬∧FBαIRP X,$[A,@
AA(AD1 αY ⊂~∃ββ∧Yββλαbε∩¬d
∩⊃HH∀
DH_Bd∧H⊂λHα"εE⊂```@,AAAD1ββ ααbεε∩ ¬D$_⊂λ_⊂1⊗⊂b" @,ADDD
λ@AAA,@AAD,@ADA,@ADD,@DAA,@DAD,@DDA,@DDD]AD,,Xε`Xb4⊂`@1αaE #⊃Q#αc¬FαcαF∃C
@+!QL¬F 嬬Fβ"L%F+#ε∃α_V_K_V_nU&⊂,[0,0
2,3,2,3
4,5,6,5(λhXTXlXn4⊂ EAc E #⊗!C~F⊗BcUF∪"c⊗qP@&,&∃α_YεYV_Z_ZV_M⊗_[nCE `5hzzKε¬0C$~(∪β >LjTW)1>db\αYskin≠πK∂'⊃z`;&5b←W!Q%$
)Y∀`!α@
ICADRP: PUSH P,@π
∪0D∩∩fW%_
R⊗α)dBβ0p*(q∀T↓Q@∧e)T⊂*⊗$PTεRP
λ CETO DT,
∀∪A∨!∧A@X~(hQemm¬~.&B*α&→α≤
J∞∩⊂∧∧5,h:DL@qKλ
Y5∩λ→βb"P∃dπRD↓∪⊂→ααJ@hT_5e∃β!_4LDλ∩e8~ HJ∧∧βL6≤.7 HαB(λ`df"H V(aQ ∧DDR ;Last@πβ%π⊃$Ags4~∀%αα*JN ∧αE"α#"F(⊂1Hd&)-λ**⊗∀⊂Th
%CARCDR,QCAR
∪→M⊂A)(0Zb
∀%∃%'(α↓E"QHh ( c\8∧TjXTTc!∧¬∀~(p
mm¬~Rε:$
J↓αLrRεJ¬∩⊗@$X λ
:0TTdλSt@
I⊃(∃H~R3u*4⊂p4EXq∀C!πnn` @h"a U$gg)Kα THESE CALL A↓∞⊗:%∩ε!α$*≤@q⊃4D
p∧$aR⊂ g *RSET
0⊗@YYα6>$)αB⊗α(d`:S4h
K4⊃(λd"aeRg#P'Sα THE OPERAJD AT EACH S@)∃ \
∀4⊃π%'U
JMβ!P@)4Tλ¬ ⊗p%Hλε `K b⊗"⊂T∧DD
λAAA1ββλY¬ αYβ⊃λY β∧Y↓βλαb∩$∃HD$Q(∀∃H∀EH∀$∃H∀$EH∀$∃H∀$EH∀$⊂+⊂(Hα"εE⊃ ``@,DAAD1 β ααb∩ε∩ ¬D$⊂0 ⊗⊃ ∧AD1 ∩∩λ¬D$⊃⊃↔!QPh6∧~L¬∧e∀h⊂#⊗⊂βR0
TARMIL∧⊂∀!Q#@7nh∪λZα⊂ @=0, DtbP⊃αr⊃αHZB∧≥{∃@*H⊂Q$λ(⊂p*%0q∀D t⊃4H~⊂∧gg⊂+dj∩∧¬∀vβY`~¬IλR¬4~)∀∀HZ2¬:K↓EJE$
$@Qr3Ht⊃uQ*$≤¬V K ∧p≤\αα2-Dλ∩∧uYX$-∩ aP@'nj`⊂⊂ ¬ COMPU@)∃λAπ∨I%⊗N∧z0∀⊂∧g#H* ∂ CXYZWR AS FLπ⊂∩∩⎇:Mi↓h!mmX∧∧`$∂""!∀λλ⊗D¬hλ@⊂λ⊂⊂⊂$Q⊂+V,,P i⊃P ∞@+1_∩)Xπ3@4⊂π⊂≡BDP⊂⊂λ⊂,U→λ∃P-⊂
P~⊂⊂λ⊂⊂$cλ+PX↓β%
A9+⊃0hQ`≠[4 bβ@(λλ∧∧λλλ¬Mλ
d*L@¬4⊗H
dε,λλ∧∧⊂∧c⊂∃β @∪&↓_
V2`h ∪[50λ @⊂≡P+J_X⊂∃H,⊃~
P,U→λ∃P%⊂
P→_⊂λ⊂⊂$cλ''g"H'c⊂+K,∩,V⊗α ARE NULL
0⊗@YYα:>$)αR↑zαR"→hu≠Pβ"Ng]P%@1] THIS REPRASENTATIOL∧A>2α¬α∞
⊃6∞∩⊂∧∧`:⊃0 U$gg IS EASILY
λ;;;@¬∪)/%'
A ∃β⊂≡∩∩2¬9¬""*λ∧∪j95∩3i@⊂ ∂F THE FIRSDbA¬∪P~∀`-β32∧LhI∀85⊃4d
⊂∧"P∀h i*λ'c⊂*∩ ¬ @%∃' A∨_A)"*α⊗ 49xDLTuD¬ 9⊂∧adλ$ iFBα;;+0 FOR CAR0@bA
=$Aπ HAβ(A∃βπ!¬α6N&$J0≤@KC"G]]P-L,P#'T⊂ g,H)bj MF OPERATILπ⊂~M∧~6 - HU$(⊃TIYαP!`T⊂ g"λ!b),
0⊗@YYαRα∀zV≡↓∧~εεIbα≤J ∧¬KK@⊂∃'P⊃&⊃hεEL M" CAR-CDR'S (THOSE Tπ∪)⊂4⊂vvV↓~AαOLAβ≥λαα⊃=5∃B¬$ ~2∧,h9t$Lhpλ
Sq∃(_4h⊂$λpπfh⊂aj⊂"SαC@∨ %_
:ββ"G]]DDBP⊂⊂⊂λ⊂"U@1
0⊗@Xπ2¬<~Iα∧rλ∧P)@!`g#H!)'fH→⊂ ∀O 2 -1 INAH +≤JP∀+C"G]]FE∞β;; L¬β≠
$A≤@Q=∞@$→E⊂LR¬λ$L@P4V%⊃ NfgP⊂⊂!PiP⊂λ→ 10
λ;;+ CDR 3 11~∀lp
m↓αα≤~!∩αα∧A⊂Jαε⊂ε↓α@
;≠8ε@@A
β $∩@@j∩$@@b`D~∀`-β32αα¬`α`$ C"G]]P⊂λ!b" Q) 31↓ 1110!
λ;;; CDDDAR 36 1111⊂
0⊗@YY↓↓α≤"∩α∩⊂I↓↓Mαq⊂K⊗∩∪λh!Q hPc\:"α∧≥&∀∧
∪_∀∧≥∪$λ5∪~λ:#:∧:&B∧≥&T∧≥∪aQ hPQ(5∪β!~4\MλT¬2u*8U h!∀∧U∃:@∧≥∪⊃Q M∧z∧¬αeAQ LU*:B∧αX8∃∀≤J%Sd≥*:T∃∃56∪rDe⊃∪@:520i4∃Q4J93sHλitH
J*q5πT⊃R3↓QA"Pj&,B4
Zr∩H
¬∀p5Kεb".h9s0∩)H1λ⊂iX⊃(⊂*:u31*4∪P
fPaiP)Pc"FE⊂i_`Mαfgk"RP"⊗∀⊂TBE⊂λ⊂→"$Q⊂-fgUαAI T,(F)]400 @dYπ∃~V
J~YD%@4Bβββ∧∧∧M~λiu∩∧8⊃d$4C"H~LNB*9su∃∧λλε&)BDYad⊃a` FMR LIST DYPE~∀$A∃%'PAπ$h4⊃π$fh∪!%≥∀A(Xb$∩w'↔% Aβ↓ββ$A=!β%βQ∪∨8hP%αN\JB¬α"a"⊃∧hP%↓αDbJiα"a"⊃∧hP&J>"αQ15λh(&R∀r∃αQc9]H∧KZN.&αα&→αb1α∩|r∀4(Jα*JN α≥∪!Q$
∪w!∀l]hY∩∧
EλBHh!→%∃≥D
%≥%ε1⊂K\9yU∧LHXB∧≤xHR∧
::Tl-4 e,L_:2¬≤_hPhPβ"Pj&∞B5
)Q(∃¬F ".i_H∪Q+
λ⊂4Ht∩4sDzλ⊂( I4uβ!!(⊂ eRh P)+!b)αD]`∀HEHAπ!π-∧zVQα:ε&:≥!αB⊗∀j&NNL∩2&RL*L4(J↓α6>4)αI24~εH4PJ*V6∧qαI2≥⊃T4(M"J:9∧!15DHI`≤Ld tte∀ dLBλ→d"∧I~5%~λλU∀l~:4L∀HQP@J *%≥αλ:#(H↔:DDd D-λ∪R)D⊂Q0i@d¬E NIHλ@Q
β$A≥%_R@@h∧αD≤J λ @$f∀P∂P ∞IL
∪∃I' Aπ∧Y↓∧$∩w→M
PA¬=≠∧A∨U(~(hRεIUβ!∀821(
%∀4v)XSsβ!∧P%)∀h⊂!i
αλ
∧∪Q%≥
A⊂XZb~(∩A)→9
A)(αbNdQ!∩α∧**5"∧8 aQ@∧e)∀h⊂!`K ∧E@$$∩w2⎇~∃α_d∧`(αdj$⊃i⊂'$S⊂#'iλ)lfa∪βHλ~∀4⊂
∞I3P&∞εLqαI2b&NPhP%α**5"∧8⊃d$4B"'d∧@∪'PA)≥!α>dλ∃∀h∩⊂*4⊂3∀HX1⊗(λh23⊃(Eλ⊂ gH εAIL
∪∃I' ⊃α≥⊃L$↔9∀2∧8~"d≤J λ @'j⊂⊃∪$i`∀λX@E'e≠¬∨_λXA>⊂↓∀t→D"`HαB"!⊃,¬P*∩ ¬N OK FOR AN@3Q⊃∪≥∞4⊂λ1nh¬∩∧ U∩⊂hJH∪U λq
( J⊂⊂qεD⊃P
$⊂b_P'∃$!bλλ'*$!Q→⊂'*∩!b~εBα ∀~(p
mm∧rR!β∞s⊃α~αI∧≤%$¬RεNd¬%∃≤X@λ
≡h≠p∪→α, try to dh∞AMαGS3J4(Q'2αDβP
$λ'⊂#'Sβ) @%∃)+%≥LA)"*α0∃$∧λ4
∩λεuiλαi"P
'*$ 0 FOO) @∪&Qπβ$αα~>≥Mh4)@4↓∩αα∧∧α∧452*@ f"g∃⊂*'P
!`i (NTHCDR N↓
∨=JH4)@4¬∧`*⊂⊂q
$⊂π⊂#∪βH∞@%¬∩⊗@%X∧SJ4∃∩⊃$
Q0 jS*⊂'cλ⊂π@≤Nαα≤%$z0hPβ"C!'*$: P 5∧A$Y$4⊃≥)⊃
$`(Lj6@4Y∀¬∩eJ*U$@⊃↔5∩∧α4h∧R,$CAR
POPJ P, ;THEN RETURNλ
∀~)≥)⊃π⊂`t∪∃U≠!≤AQ(Y≥)!∪≤∩$s∪≥ ∃0@D`λ~∀&-Bε!α
b⊂h!→%,M `¬∩d: u∧Pα".i*4uλ[⊂5λλitH∪JI⊂q∀AQ@∧e*Sh"P"⊂!`iαDXBE@π⊂≡XTα(p4@DλSt@¬ U∩⊂⊂,∀FB∧e))U⊂!`iβE
NTHCD20∀∪5≠ ~∃∧11" Hh &N⎇→α_Q!∃¬-9 "¬αβ∪⊂*:⊂rb!↔u⊂2hTλJ⊃E∀H⊂q
*hε⊂)Rdh⊂$Q⊂)`∃CCESCFUL
JRST NTHER ↓; ERROR IF AR@∞Z@λα≤%*4∧M~λ~D`9αdaFB∧e*fT'⊂ ∩1_
R"≤!P$!→¬∃∃αH⊃¬E⊃
#!↓4rsjJλ⊃β Jc"B$ U34 D⊃∪JI⊃0C!↓2∪∀K∧⊂+
λE ∧D]Q'i⊂⊃∪*$⊃εB∧h'h∩⊂(⊗εB∧@
NTHCD4~ HRRZ A,(D) ∩w→_∞I↓∀rR"∞%⊃∩bλ¬⊂)8(⊃R)@ f⊂!Q)
POPJ P,
λ;PNGL¬⊗A∧r≡*-λ∧¬∧tyi3∩¬8ε0iYβ)P)Vacg2 SYCOL∧bA¬~f∞yj2¬∧βPsi@)P '⊃Y⊂!h⊗*
SEBTTD SYH¬∨0Aπ>u~⊗HQ!P@*⊂π#g∩] ADDI C,PNBUF-1 ;MH
→2↓↓2A∪9)β%≤α↓5αBαZ$L4_Z2¬∧h→T*∧α1H
(3⊃5H→Uβ"A~pr4λx(∪∀ Hβ ;IF LPL@A∪LA≥∂¬)∪-
0A)↓
↓!≥β≠∀A∪&A%_ αBt∩V→0hP%αBαZ4DRλ∧
PssJ1 .`
9h⊃q$λqsTd 5λ∃*∧⊃SuaQ@4ri~⊃(⊂EJKT∃*(#"B$λp23DλK∀4k→0Ss↓Q@∧P⊂∩))j SYCONS ↓;NM PERE COPY FEED@λX↓∃+'(↓β⊂≡~~αVAα≥J6
>`h &B-~")ααbBVJ≤zBd∧KZ⊗ %8T∧<-D
¬-∀Tλ4m¬∀ t2¬ h∀l(β"B)*Tu⊂∀)lagSαS ;AJD USE @UR@
Aπ=→'∧4∀∩*∧r≡*-λπ M≤9~∧<* J∧d⊂α".h→βc!P∃h⊂ '⊂dbP$Q⊂#"aQii`i⊗FE('⊃g%Q: P@+M⊃∀A1!≥π∨9&~∃'eβ↔:≠P$$∧KZε <h∧h
Zλ⊂ ⊂∀lfa'S⊂∩P(∪ fbP∪$ib IS IN A¬
BAKPRO
S@↔∪A_ α~5H$%NL1αNfl∩6 "λj$,,I~5"∧YZ¬%JDλt`4⊃∪hλ∀⊃pc!↓(∩TJ:α⊂!lPdπF!
λ SKIPN B1
¬"d$∩w&2αNf6∀z1α
dz≤Zλj$,,I~5"∧YZ¬%JD U-≥Dλt_h!∀∧U∃:@λ
;0ssF⊃ B3)zβ"f@⊂T)`→MPNAME(B) ;PUT PNAME IHA≥J6
>bαα2≡≤X4(→Yu (αP F⊗βSY.OL@
XYM+∃¬∨U≥↓:@m∪⊂~&$Jε!α4
2V∃∧~⊗ $βλ∩*4∀p
g⊂'jg"βE⊂⊂⊂⊗!j()∪β
EXCH A,SYMVA(B) ;P@+PA∪≤AM3∪¬∨0A¬→∨
⊗~∀∪5∨ ~⊗hα¬"~5IH$%\~∩Iαα;∀l∀yD∧∧dx92∧∃(XTdM8APE≥_9t`&L¬∧fSi)dP⊂V⊂λB$∩∩`.Lr&R_→B¬¬)z∧-∃K∀∧dM:@λ ~h∪R)A ¬∧bV!`⊂ K ##,BDYagS)P"hλ)lfa∪d⊂$"Pb"aεB∧b`_CH A,FFY↓
NOPRO
POPJ P _~(~∀@@↓'!πA%≡A∪9)'304⊃'3π=_b`(MαVN"RαA2ε<_4(→*%≥α
;∀\h1PP@"Nt
ZQ(∀k→0Ss∧λssThZA"T
;0ssJ7A"PH→t⊂SaQ@∧`gTf⊂!ε∪αPFFY2 ;COH
&AU AαAA+%
AM3≠¬∨0A¬→∨
⊗~∃≥=!%≡~(@@A'Aπ!¬<A∪≥ M3"~∀$A!+≤B)αAd:R:B≤84(__D"∧%HU∧∀k⊗ hP_→u~∧hλd5K!Q"αα
:∧,≥λ)r∧LjJ5MQ!∀l]hYR∧
J;∀m∧h→T*D%⊃PPLYzd*∧∃K5≥Jiyd*]9∃e¬-%EE≥,h)u,TKTβ@:v+T
ZH⊂R*D∀p6*4⊃06((αP!"Pb⊗gg∪,BE∧Sek"fH V)lSi!T!
FA! Rh)'FB∧iedT ¬ FFY ;IF SYMBOL FRAELISP EMPTY, GO DO A GC
↓ JRST SYCGNH~∀β!U'⊃∧A@Yβ∂ε4⊂∪∃%M(A'∪
∨⊂→HhQ↓↓αtzBJ<hP4(∀Uα:∞>u→h&B-~!α~E↓2P$KZ∞ <h4∧
¬ h∀l* I∃≥" zU"∧xd¬∧t*X`hP→Yu (2(⊂%IR3β!$λλHI1H⊗iYuQ2$λi
⊂e≠,+∀ hU1C!*⊂π#Y∞α MOVE B,A
∪≠=)αA PY!≥¬UZbQR~∀∪)' A(1
/π∨9&~∀∪A+'⊃∀↓ Yπ∨9&~∀∪M∨∃∞AY!
∞H~∃π↓a)∀d∪)%'(AA∨!1)(~∀_w1π=→&Aπ=→&Aπ=≥&bA
∨⊂~M~↓∩:∞|rM↓∩D~>*M∧b&NQp∧α-∧IId
αXλDeD4∧U∧⊃⊂h∧[⊂ssJ4 0siJh 0iyβ)X@ acg)LP∩aY∪)P∩!L')P#∩l→⊂#∩l_P#⊗!gg)H#$l_PP#+aSe)P#∪!gg,λ#&'`U→⊂#&∪`j_P⊃&!gg∀P#(!Se)FEβE)ja∃*&∧f∩ij⊂)T abP⊂eg!bT)FEεB≥]]P∃$ iP∀bj⊂'Q⊂!gg∀bi)P∩iP*iQb⊂+dU$$g∃$"P&∩ih⊂)Vij"fK∧E≥]NP#g&⊗P P S ⊂!⊂i"P!S'a!"T"b⊗⊂⊂g"⊂*∩ P i⊃jfbg∃)P&jTj⊂''UεA≥]Nβ BE P@D QUANDITIEC.
~∀lrvA
=$A≥π=→&@1¬~⊗∃αU*NQα∀*~>J*↓αε∞|rMλ∀SZ2∞≡u→`&R∃R¬α biD$↔5∧t≤yj2∧
∀πRαD9ye~∧∀ dLBα#"KλqsTg!(⊃6λd⊂!ε⊂D@]T⊗!cg)H P!∧H≤¬ (CLπ⊂~M∧⊃α¬$hR∞ <h∧nA→∀Sλλ%⊂#"D∧λ⊂tλXt⊂ 'H$g ∀C2X
CMH
&bβP&N.Mα1α¬d2~L$KZN.&ααV:2-~Mα~∀*⊗"~:B∧,Z
EHh!∀∧U∃:@λλec ∪3
∪aβ⊂A∧0QαR∩$p∞BV ∧¬∧|→jD-∃4 ∀b∧8YDbbλxU"∧8J"∧|dλe∀YI∃≥ Q$αα¬λ:E¬∀qQ L-λ9α∧∩Hhe_H↔84%∩λj$,,I~5"bλ9u¬J xb∧≤YIB¬∧βr3JH4H∃ @P!εEλ⊂⊂''T)'DDB]P∀!∃j⊂''H'c"P⊂h¬RREL¬)→2↓)β↔LAβ -¬≥)β∂∀A∨A%(R4PJB>BRαA04Ph!↓↓¬~Bε∞α
$j∧α3UλY(λ
AH∂
εLp∪⊃→HAαY∧$∩∩`.$yαRαM→αRt
¬∀⎇HX5"¬ y∀e$X*2∧∃)yR∧≤1Q M¬X9∧R¬¬H∀<_⊃↔5∧4QSj)(⊂ λx4PP(x(⊂siI⊃0u →β`∞
NOPRO
JRST CGNS1 ↓;GM TRY AGAIL∧⊂∀!Q#@7nh∃ 4h∀hZα⊂'cλ!cg)Qi)P$TP*$"H)bb AP
β∪1β¬→
↓)≡A∪9)β%!I ∩⊗ ∧∧9βb"WβE_ 6βYαRλ[∩∧l→8R¬≥X∧Q$
⊂⊂5∧
⊃∪λ
~α`g*∩h ES D@≡A9≠ ⊃α<*Qα→jD`4⊂ε$iU⊂)`∀RUCTURE(4Ph!α~≤z2MhLj>@4Y∀∧%∪R3↓⊃,¬`∪U@R "4⊂∪D~!α¬d⊂4)∩D~0≤@TjB)*tλ∃¬J⊃∪∪IYb".j:0T@⊂∧E∧bV!`⊂ K!αE∧R)h⊂*("&'∪eFE∧R))b @π⊂≡~α1P@HαS∩*:α↔⊂~ AO@∃∞ααQ2I~5"s⊃⊃∪@9α)`∃BR !X α→Hh &B⎇↓αAH⊃⊂HKαj⊂i@dεS A B C D) :α↓"∞≡u→α¬↓D~0≤@Th⊂D¬⊂ssJ4⊂h⊃¬∃*#"A~∃0 dλ#(λ@,R ;THIS RMP)∪9
A6αZ5"¬8~d*¬$λ∃~∧9yU∧LHXB∧≤xHR∧≤zYe%~ yb∧MAQ LlzhR¬∩JA⊂K\β∩4jKh∃i→⊂ε⊂+Pg*⊂!SβP≥(↓∪⊂→αα αj∧→J4j¬8~d*∧βuQ*$∀⊃∪ @&eFEαe)h⊂∃⊗("&∪αMK
PU@'!∀A
⊃@Y→∪'Q0f∩w1∪')∪→2Aβ→0A¬+(αα2εN ∧∧
∀uAPPM zα∧5λ¬E⊂h!~∧⎇∧$
α`H⊃↔2¬<~Iα∧d~:B∧
(p∧
~λi∀tDλ4%⊂β"C!'nnh
I⊂4h
85λ∪hd⊂ssJ84Th ~h⊂p)I⊃1λλjSs λ→s4∩)H1λ⊂ix⊃+C!'nnh
I⊃(λH8∀H@ Z4uλ iuλ⊂HT⊂(∀λIλ∀5(→U∩5↔h∃∩λTλPp*$H∩4d
⊃∪∪IYiqAQA"I*λ⊃∪Pg↓5∀VH∀⊂K&⊃"I4λI⊗⊂nA∀⊃6⊂i∧⊂K⊂!QI0⊃ HnB0h→3λ⊂%IT⊃∪ A".uHZT(⊃H~uλ⊂iλαaeP⊃'i⊂ H("&⊂∪*fa"T∧E∧P⊂`ff"H V'(⊃&$εEαP⊂%)∀j⊂∩aSdεS
PUCH P,T ;AF PROBA@LY A PDL LUMBER,
JSP T,PDLNM0 ; IT'S SG SLOW THAT THIS PART
∩∩lA >-~9=D T
¬HZ"¬≤βh∪*Xpβ!↓2TTjD⊂ssJ1".hλ&"b!R ¬ROUS AS IPλA∪L~∀4SY`≠ZλI∧M~
8U"∧xd∧@qPq**h∩4dλp3∪λXλ⊃TIyαP!gSh f"Q⊂!gb⊃W
;9; ARGUMENTS MUST NOT BE PDD QUANTITIEC.
3+; THESE ARE SLIGHTLY FASTER, SILCE T IS USED FOR JSP.
;;; FOR %NCONS, SEE JUST BEFORE "ACONS"
0⊗K9π∨≥&hA)%5∧A∧XZD∩∩vQ9π∨≥&↓αR@zQπ∨≥LAαA≥%_R~∀∃1π∨≥Lt∩Aaπ⊂A∧1α∩∩v!1π∨≥LAαA∧$@r@Q
≠⊂~M∧⊃α¬$hQ⊗∞≡u→h&"∀b%α bB¬$4R↓↓αN∧*∞BJzα&*R≠∩d4 ,~> 56∪ M≤9~∧r∧∃Hd5_⊃↔5≤\~∧¬,tHZ5~∧h(T,Dα4u∧λ34∃⊃"B( *Tu∧XqsTf1"B1+λrλ⊂EE⊂*"!↔t⊂
jλ(#dg∃ i)P∩dε CELL$ GEPλAπ⊃$A∂↓
%1∪'(~(@@A1
)!%≡4⊂∪D~!α d2~L$KZ∞∩I∧2J,YI∃≥"Dλ4`:⊗(∪hd⊂q3 D∀∪r)j⊃4@
Ih⊂C!$λλ∪Iz∀Sb!⊃,¬P∀⊂*j⊂'∪P ∂NE CUBREJTLY TAKES ADVANTAGE @∨↓∪ B~(∪∃%'P@Q(R4∀~∧@A'!
!%≡A%→)εEd~∀Kπ=→&fT%⊃→$A∧Y∧∩∩$s ≡AQ⊃∪&AQ~A!∀zR⊗∞ αB>&u"⊗JM∧2J>5∧:4(MαVN"RαA2ε<_$%nαλU∀4z)R∧
λx∃∀∀_xR∧≤yID,≥I→tp@"Hλ∧ St∀Iq"B2J*uλ (9βg!XBDYcgH*),P⊂c`dgβE
;THAS ROUDIL@
A∪LA
∨$↓∞ <X ∀d,Dλ4l$U`α∧MDλD|-4λ∩¬∧IIdlZλ9∧,≤αh∪i@⊂!'j∩⊂ i#TFA∩aL')U∧T*id P,T 8πβ→→=(
αJ-"VJ9¬2&¬αα
U≤D!Q"$≠)j3@LXε⊂i∧⊂+⊂A⊃,pbH!`g USE $XCGNS, BUT IT WIH 1∧
2NtλDj∧→`λλ[⊂rβ!∧e))U⊂∩,!SβH
&~(~∀4Ph $!Q%≥0U∃ A3Q3(λαi⊂!SβH
'I&~∀~(~∃
∪`dt&U~AαQdJ~&@↓⊃∪@8S∪sJY(⊂
'H!$l'∃dP!gS+"a)Re`∞, FXCONS( @OPJ~∃→∪0bt%!∨ A@Y(∩∩$p∞~b≤z0∃~βλ∃ λαg⊂(∪h!εE⊃,!gg∀] ;FIXLUM CMH
&@4A≠β2↓+≥∪#U∪5
~)
∪ @ `&∞J≡∃α%!2bαLrV$⊃↔4L2λ¬r*I⊂∧g THE RAJGE MF @)!
~∧∩↓∞ε6<)αRQeY6bIye,mβ".dλU23
E23@⊂∃ a&"H'c⊂*S$hjbH#$l'∃diVεB∧P⊂%∀)j⊂#∃a`∂NS 3 TH@≤A9 ≤α:Qα∩zα¬αJ,
1α∞|rL4(Lj>@4Y∀∧
dα3@_
**∀DB]a*iU⊂(!'UαIDE A POILTEB↓∪⊂~RzαR"∃¬"ε
2(h &*∃~Q↓α H4(Q$αα¬8λT:∀Sh →β*- V∧A#+PdπF@&h∪'π∪A_AαY→
0∩∩m
+→_↓+⊂≡J ∧∧\h4αj∧→Jt
M4λ4l@Tq4aQ@∧P%∀h⊂ F⊂caRεB∧bd!R⊂**ε
TFEλ⊂⊂$!U()'FB∧b`_CH TT1
¬0~(@@A≥=!%≡~(∪∃%'P@Q(R4∀⊂∀(hP4*~d~6 5¬!∀|αP ⊂∃⊗#&!SdεS 8π
→π=_
Mα<JR!α≤Z&Aα∀*RVJph ((iD`85FA→Ttλ
E⊂∧c&∪`j∧DNβFIXNUI @)<A
→∨9+~XA→→π∂≥LXA!∨A∀∩∃
1≠β(bh∪!∨ ↓ Y(∩$∩w
→
≠⊂~MbαR"⊗pαB>BPh!↓↓ CXCONS CMPL1 DUPL1 DXCONS DXCOJS DUPL1
IFL DBFLAG,[
DBL1: POP P,T
SPECPRO INTZAX
DBCOLS: HRRZS FFD ;DOUBLE @!Iπβ'%∨⊂→α≤z:N⊗⊂h(&N\JB9αλb~
⊂hP%α
≥↓α¬2:
P4PJ⊗b∞@αRQ1D $4 α↓αb∞%αJ<4PJ⊗b∞@αRQ242⊂$$∧α∧tz
$xh!→T⎇∀YP∧"c∃λ∩Hh!→%∃≥D¬¬"HQ+PHK8Yd"∧xd∧L4dλD∧4H_phT_hR∧∧(iD:K1PD∧(9t`*nB4
Zpλ∀¬Jβ"Qλ).B)Yβk"dH V(b∪h¬BLE 0↔I%∨$A%A ∨U¬→&↓→∨(A%≠! 5⊂~R, 4(∀Xd~ jTkX∧c!α@ ;EH
λA=A&4)αα
4bε≤4Ph ()_db∧8ε⊃IH1k⊗aQPp!SβH
@PJε.(⊂λ
E⊂p!SdεS 8ππ1π=→&A<JR!α≤Z&Aα∀*RVJph $(9U∧c↔!∃∧⎇∧
αe Q$αα¬8∧⊃(h)'P∩dεTZAX ∃πa∞ <h∧nA→∀TVJ4⊃QPa⊃,¬agSh""lλ'*fa⊃i⊂!gSαSEB
λ SKIPN A1
¬ε~(∩A¬'@AαYβ≥
P4PJ⊗b∞@αRQ⊃D $4 α↓αb∞αJ¬∀xQ!∀-D9¬%"Hhdλh$∧α∧tz
$hh!→TmQ3 λE*⊂%⊃ ¬∧e∀)j⊂∀∃∀@
] 0↔9λA>2α&~9∧~b
284*&4)α∞b4bε≥∩Xh"∞b≤z0∃≠!~¬-≤αλ∀¬Jβ"PiZ⊃.A→3uQ)∀⊂+∀(dπE@!10∩w∃%%∨$↓∪&Aπ=≠!2-Aα:Vl∩⊗JM∧r6@" →U∧dYXT`*⊃1β!↓)1P(P ∞@+4c∪&~):∩%\*0∀λ∪qD 1Q(λl#& QFEεEβE$c'λ",#&⊂cR-FB ∧U@!0btβ!= A YP~∀@@↓'!πA%≡A∪9)5β04⊂
αb≤z0∃≠!→¬∃∃*4∧4∃!⊃∪@8∪u0IH+4∀HXp∧idSdε COMPDEX NUMBER COL¬'∧4⊂∪'↔%!≤Aα1
¬4~(∩A*≥↓α¬2:¬P4PJ⊗b∞@∧¬∩bλ⊃⊂hR∧∧¬D≥J
$hh!_UD≤∧
"d∀hεC!$λλ∪IZ∀Sc!!33uHY(⊃Kε∃⊂*#!%`DfShεEMTT$2(A)¬
KA MOVEH
AλαaM"¬Hh".→9@L$Yzd,@(⊂
*→∀ DCE JRSP (T)
α] ;END OF IFN DXFLAG
λIFE DXFLAG,[
DXCONS: PUSH P,T ∃ U!_bt%≠↔-$AαY#⊃+! `∩∩`.-∩J>I∧J→α∩-α2&∞-→α:> ∧∧L@4∪⊃)X3Q⊃(Aα@
%FAC NUH
c≠L~∃ 4HI`≤,h@λ @c⊂$c⊃P",#∪ cFEβ≥Rd*SαK1 %HUNKH@C⊃9⊗f@K!+∃⊗hα↓⊗∞bα α-∃λε⊂⊂βXR CXR2 RPLACX RPLX2 C@1Hf`Aπa$fbA
1$fA
1$f@~α≥E&6@hPβ"TjXU∃∪↓→∃3Rd
∀R3)~α VES ~A
1$XAI!→βπ`XA"αYd[de`∧ ∃3ReD⊂⊂
g∩dc →
λλ
(hR&~∃∧B2.IxreXQ$TE,i2∪@! ¬∩d∃g%Y:
%HULK3 44⊂@⊗",r-AhhQ⊗∞bα# hRX∧Tπ@∧f"T)⊂ ≠SIXBIT X@≥≡↓⊃+≥↔LA∪≤AQ⊃∪&A1∪' @4A⊃+≥,X∞∞b⊂¬u∃∧β⊂0k∧7↔#!α@D]QdεD OF @∪
∀A⊃:\b0≤8Q!P@HαR1I@⊂ λNKLOG,[
~∃
1$`(LRNAα ¬D5Dhf⊂HKαp jPαR $4⊂∪'↔%!∃α2rJN⊗ h %αU~Aα→d~bILHI`≤≤α⊃0i4⊂4Qj1"B4I@h∧ @)PXZb~(∪β $A)(X! $Q!∀U,Xλt*¬J@λl)→εBα HLRX∧AαX!)(@$HI`≤@q⊃⊗SαUMBER@λA
_∞ - yd,@U∀h →β⊂&"Q*⊂$ S+"`∪
λ POPJ P,
λ∧⊂∀(;¬∪∪αB2
*T¬⊂ K∀**) 0↔Y∀[≥U≠¬∀*⊃α∞|jB>~,rRMαLqαJ&<BQαλ→E (αiFEαh#h%λ(⊂
~∃I!→βπ`pλ&*≥↓αQHk∧e3⊃⊃∪@:u0TDεc"B*9p∧h"H+↔!)QhεE∧H%)`⊂⊃⊗!`_R3 ∩w
⊃⊗∞X∧∧
∀z1P@!0p3)D⊂k∪Jλα L
λ∧∪πβ5→∃α~b0∃∧IIhPα(∩J*uλE6β"B$∧λ⊃6λd⊂ @,@ε~∧∩@A¬'@A(@2∧"2:6XH%nNL:!↓∃∧jVNQ¬α∩2iY2¬$α⊃(λH5∃3!Q@∧P⊂λ"hλCH A,C
λ∧∪%∨PA)(X4b~∧∪¬ ↓%¬"Q1λ!⊂hPα2U)Z⊃q(
J∀T KC"A→∀S∪$λi
∃
E εE∧R))j @¬%$P$%Nα(U%-)`¬≤,9yd"∧~(phPβ"TJ ⊗@≥αd))&H!R∀*∃∀@
JRSD↓
J⊗αI hPβ"C!λv∀LfπB5∪ @'⊂ ∀0I~M]2∧$¬\ α2&≥!α∞⊗daα>I¬2ε"V*αε⊗2bα&Mα|Zεd∀PIα*J≥!α∞b∪→D$↔4∧L2λ¬∩λT⊂∧g"⊃l⊂$iH_⊂'iλ_@
JUMPL TT,CXR3 &4⊂∪πβ%∞A)(0b~∧∩↓∃%'(Q∧R~)π1$fDp∪⊃
⊂AαYλ~∀β/QαA7∪9-β→∪⊂A∨$A]%∨≥∞↓→≥∂Q⊂A⊃,r-εThP&⊗b≤Aα¬2⊂h*∞b∪→h&6⎇2⊗%α ¬BD∩⊃⊃∪@8p∧"aRdg#@∀'jj$S P#'T⊂!l)βRPLAAX
LSH T,-SEGLOG
MOVE T,ST(T)
TDNN T$HNK ;SECGND ARGMUST@@
A⊃U≥⊗~∀$A∃%'PAπ1$L`~(Lj>J⊗Jα⊃1HhQ↓↓↓∀"&→αβ9E≤BλEBE"≠VαeλYd[Q!∀YHR∧"JJ@HK8i∃∃≥Dλ∃∀~ ZU≥αλ(R¬≤β03 H4H∃ λ3C"A∀⊂U3*λq(∃
E⊂p)Z∧]@∪"g#j∩⊂#c⊂∀bagg⊃⊗⊂$bU⊂#'gdεEGATIVE
λCXB∪3:↓WTA [BAD @@+9⊗A&t"⊗aεhh ⊂L**5"αT∧jλe εEεBαCXBLht&lzP∀(⊃⊗∃*∧D]QhεE@%e)⊃β≥≤A∪&A¬!!β%∃_
R2Jα0≤\≠⊃P@M)zB∧"β _CE ADDI D(B)
HRRZ T _Q⊂R∩%\2⊗@$9∧9βb`⊂OL@≥(↓∪⊂→αα~T-≥I→t`@ ¬∧iRdh#bH"εE∧H$&)-λ*⊂(D)
∀∪
β∪≤APXZb∩$p∞⊗J∀zIαε2αε9ααYe-≤X@∧9q0∪iHαg*εB∧P%)∀h⊂!l∀→YFEαe))jλ∀#∀FBβ≥Ral∀⊂∩al∀→⊂∩i∀,⊂∩i∀,→⊂∩R*g%@1 !HNK2A %HUJK2K⊃+≥,f@K⊃9⊗`∩¬α*"V:XεBα i5∀
∧Y∧`)m∀C!↓α@
;≠8ε∪∪
8A⊃:\b0≤8Q!PC[50∧;∀H∀IZαj$g⊃P#'iλ!cfh∩d"b⊂βKDE. @ENK AN↓αPA∪9 !∧J1αR"p4(Q$T
E'!∃∀⎇D
E"bV⊃⊂K]~Y∀ZλYe%∃∀λd`:H⊂siZ⊂3⊃(D⊂p3 Jc"B(_⊃∩(
J
⊂%⊃ B2JY4⊃q$
∃ (≠∀LC!↓2∪∀K∧⊂+
J
#"A→TTu∧¬∃
#!! I0k
LNB)
TVHλ∃λ⊃∃¬⊃ B2J*uλ
E εEεB≥]]@∀( ACX ROUTINE FOR CMH!∪1λAπ= ∃8hQ`≠[4 ¬,t4 ∀b∧∃D∧$
JYR∧Ldλ"b∧→hD-B →b¬%EaPS[70¬$DTλD
¬YP∧M~λzT
∀→jD,,D d⎇αλIr∧∀Tλ∩¬∧ID¬
03U ~⊗+C!! I4J∞B4Izα⊂**⊗XDDNβHUNK SUBSCRIPT IS PASSED IN TT
α ADD@∩AQ(XAα$~∀&U*6B≡*αRQ⊃-∩BaHhP&"Jdiα 1E"Q$∀PJ*JN"↓"Q$hP4)⊗∃αaIHLBJJ5∧⊃1"R H4(εU∩NQ↓E!$4(hQmmmα*"V:[ 1↓⊗E*:-Ib↓⊗"VtYM!αr⊃↓⊗E*:-Q¬∩>FRLr⊗Mα4zIα∞|jB&2,!α∞>$)84)[YeαRD*N∃αb2>∞
"∃α",r.Mα|1αN&T)↓E1β⊃1↓Mbα6I↓ αNVB-⊃6FVL~.2eph)mmZαεJ≡,j⊗:R~α& 2λ⊃B∧∩Dλ2b∧~&∩b∧zX∃∀jHT," iu"¬It∧∀(⊂λ"∪⊂(j`S*$j$QiSεEβE∩d*S%X]∧Tedh'λ+&`eR*g%FB∧P%)∀j⊂∩g⊂eg!FB∧fgk⊃dP!⊗
TDDNRd*g∩XP$iH∩d*g∩Y⊗⊂+Rh λ ON@
A,rVN⊗ α≤|Z td3U↓Q@∧fgU dP K⊗XDDNβ BUT UNFORTUNATELY MUST SHUFFLA ARGS
JRST%HUNK2
%HNK2A:↓HRRZS FFH ;HUNK4 IS TH@
A∪5!∨%)¬≥(Aπ¬'
~∀%!+'⊃(A Yβ≥ε~∀@A¬β↔A%≡~∀∃⊃+≥⊗Hpλ&N\JB9α4jε.",r,$4PIα*J≥!↓⊗∞|rL4(M~.&B8α~~ hP%α*∃~Q↓⊗Dr-J∧hP&"Jbα 2∧hP&⊗b≤Aα 2∧2~ 4R↓↓αb≥"BJ<hP&⊗b≤Aα 242 4λL*b∞!∧ 2λ4R↓↓α:⎇αJ<4PJ*JN ↓"Q$hP4(∀R*"V:[→h&6⎇2⊗%α
⊃E1λ5⊂HK9
Tt[4 ∃~∧*Z5"∧λYd["D
tM$αλ∪ihαP"g∃ibb⊂⊂βOEPON@≥(4∀∪≠∨Y∩Aε0Zb∩∩lA¬+(↓+≥
∨I)+≥βQ→2A5+'(AM⊃+
1
Aβ%≥&~∀∪)%'(@∃⊃+≥⊗P~∀
∀4⊂K⊃≥,iαt∪!%%5&↓
⊂VD∩∩w⊃U≥⊗hA%&A)⊃∀A∪≠↓=%)β≥PAπβ'∀~∀∪!U'⊃∧A@Yβ∂ε4∀@@A β↔!%<~∀K⊃U≥⊗ht%'↔∪!≤A
⊂,b~∀∩↓∃%'(K⊃≥⊗Qα~∀∪!%_AβHbQα~(∪1π Aβ$b1↓
⊂,b~∀@A1π)A%≡~∀%1π⊂↓β$bY→
⊂Vb4∀∪1
⊂AαY¬$b~∀%⊃%%54A∧Xb!αR~∀%⊃%→~↓εXbQ∧R~∀@A≥∨!I≡~∀∪)%'(@!(R~∀4∀vvA→←dAm¬eS←kLA[SgAQCG-fA←L↓%&↓C]HAI/⊗\@↓qGQ¬]OJA!k]VA¬]HAα8~∀fv↓≠]Yr↓[CWKβ→βO↔w≠∃β'pβ[↔KJβOSK∞s∨∃βF;⊃7≤¬v&*aQ$L4d
U≤,HZ5~e1Q hRY d]∀↔!∀E∃+*2∧∀i↓3λHα(λ∧πpY(∞><Y(∞≥9{@-=λ⊂∀\β ofF
∪!U'⊃∧A@Yβ∂ε4∀@@A β↔!%<~∀K⊃9⊗a$t%'↔∪!≤A¬
⊂,b~∧∩A∃%'P@K⊃≥-%α
∀%1π⊂↓αY↓
→⊂Vb∩$@@@WASGVAU`Agi%GWf~(@@A⊃
)!%≡4∀∪⊃
⊂AαY→
⊂FB$∩@@@mα@J\↓⊃`↔≠X∧π>OMε}fDλλm⎇]→;NNh≠qDλ!"H∧∧∪St
)c"B)*Tu¬
#"KQ @↓Gr∪Rj;Lλ∩
YRtr+(αP$'∩im_P∩'%imP ∃NKP MHUNKE MAKHULK MHUNK7MHUNK4 MHULK5 HUNK
3 6l∪∪
≤↓⊃≥↔→=∞~∀~)⊃≥↔'h`t∪/QαA7≥=(AαA!+≥⊗@4A⊃+≥-'∪ **
t4λLRJNQ∧B2.NSλ4*",r.N&T)`$∧KZNV
⊂↓E↓T dIH∀∀dQQ M¬X9α¬αH8dMC⊃Q$Dt:;#Pα33j@ ¬I T,(A)
λ LSH T$-SEGDOG
↓SKIPD T,ST(T)
α JRST↓⊃≥↔'h`∩(Lj>@4Y∀¬%"F!P@MIId*¬EI∧dXQ!∩∧U*:Bαr6AP@J∧∧¬≤\~ b¬4X→4E,i1P@J∧∧α¬∧z "¬αβα"'i g"∪d¬ COL¬'&↓β%
A=A'∪i
@d~(∩@@A)%'(A!_
.NS4(→Yu$E
α JRST TRUE
~∀4⊃≠⊃9↔
t∪])αA\jVNQ∧∩∃αI~5"∧z$∧4Mα∪U)TλεP&Pe` ∃NK!P~~)≠β↔⊃U_
-hM~. =J@λλ∃⊃Rα!↔tp
a∀⊂_FEαP!))U⊂"d*SαK5
S@↔∪A_A)(αa"¬$hP%α
∃~Qα~bN∀4PJ6 =hT¬"eJAP@Mλ¬4i H⊂λ⊗⊂d λ@+9⊗∩αw%_
&RL
2&@(XB¬$βh∪I→β"S)
3R`≠Nα LSH@εA(X4b∩%\b⊗εZ-→αRλTα)q⊃∀∧⊂!$jλ$g⊂)Rc`∞ OF TT
λ∧∪⊃∀b0≤Jλ¬⊗XT ∀ 0↔≤*∃αλ→4l,Tλd`:H⊂
$∩iP"hUαI HAK
EQP
∩APXQαR4⊂λ&Rdr0∩¬EESλhαB( *Tq⊂∪d*g%Mαλ
(M~⊗Bjh∧αE"α#"A_3pRI@⊂*⊗↔X@
MHUNKXpλ&N\JB<T
E @ ¬∧P∩& ZS (T)
λ∧∪!∨A∀A X4⊂λ (αC"AQS2∃)@%ZP~ JUM@GE TT1≠⊃+≥-
∩]≤*∃αJ1P@L*:α¬%EH∃β⊂α".j:α aeH& ST O@≤AA _@1αjε =YjB∧Ld
@hTλ¬3I7@∧fgUαN @)PY(∩∩m→'+¬H~∀&z*:λ@λh3∀q!⊃,¬ai⊃`j"P∩*g%@ @¬∪∞A∃≥∨+∂ A)<hP&&>4*%α⊃e
"V:XH%mαDz2↓αb1α≡M2⊗ 2λ~$=XYe%~ββ"A_p23λT∃∃⊗,πHNKLOG
SOJA T,WLALOSE
α PUS@J FXP,ALHFKL ; AND ANSTALL THEM
λ POPJ P,
λ;ALHNK@_A¬→⊃≥→∧Aβ→⊃9→λAβ1⊃≥→2↓β→↓≥10Aβ→!+≥⊗A¬→⊃≥↔⊂Aβ→⊃9↔~∀4∀vvv%∪
≤A!≥↔2|84(Q'3[Z
TtZλ→Dd|8~DL|βH∀Izαj$g⊃iFEεBεEεE∞]]P&PebP H$*g%H⊗P∀*∃∀P$ TP' ∃MBAR OF ITEMS WANTED.
3+≠ THEL∧Aβ≥M)β→_↓)⊃'∀A∪)5&A
%=~A! 0A¬ %¬α6BBLr≥α≡404*εdB:.⊃PJBVN@α~bAe"P4!~¬-≤ $¬αd→I¬,t1⊃∪L≥(X∃$*λ⊂∧5∀X9α∧EYi2b∧→hB∧Lj:Ddβλ⊂*(th⊃J)s(∀λIβ"B)YuQ2$λK
⊂%⊃ .th~Q0hλ∀λεP S)cP*Tbb⊂!⊗P# iS'`bεB∧h'hλ(⊗ DBDW)bQP""&∩'%PεB∧e)hλ*⊗("∪'&eDB]a`g j⊂(*U⊂("&λ(j`g∃$j,P∩dεTO A H@+9⊗~∀∪!%%∨~↓αXQ∧$∩∩w→¬'(A1⊂⊗⊗u!α≡≡-→α&9¬α>N&$J6)↓h(&N⎇~9αR"a"~BαH4(¬∧RJNQ∧
2"~eH4(→J4D~
JBbk⊃⊃∪@93H⊃¬D∀r1id⊂R5∧ sH∂'WH⊃5HYH∪U)XQ0 ∪c⊂"f⊃d¬ENTS
MOREI T,(B)
↓ADDI T0Q)(R4∀∪⊃
⊂AλYP∩∩`.tzP~∧α3@⊂⊃⊂⊗P&⊂ij⊂+SβRD ILTO WHICHTO POP α JUMPGE T$ALHNLD
ALHNLA: PMP P,A ;LOGP TO INSTALL ARGS IN HUNK
JSP T,PDLLMK
HRLM A,(D)
ALHNLD: SOJL TT,ALHNLX
POP P,A
↓JSP T,PDLNMK
HRRM A,(D!
SOJA D,ALHNLA
ALHNLY: SKIPN VMAKHUNK
↓ HRLZS (B)
AL@NLX: POPI FXP,1
EXCH A,B
POPJ FXP,
;+; ALLOCATE A H@+9⊗A∨↓'∪5
↓∪∃ ∪
β)λ↓∪≤@QQ(R~∀lvv@A¬≥λA∪9∪)&b&j∃¬"=αRD)↓
Vu*N⊗⊃⊂αB>&u"⊗I↓B→]]];9U$4T
2"VtYh&*,jB2∃¬"Q2εdB:.∀KZBJ⊗≤*JZ⊗~αεIEd
IJ¬αiαN⊗*αNV
≥ 4(ε≤
&"∃¬"Q1J|B:.IxpK\X¬4jD∀⊂Q*84UQ$
β"B$ TTu∧λ3∩∪I8#"B*:0R(
J#!!2QQIT∃∃βλ→∩∪RhA".thY⊃0u∧λssThZH⊃Sj$⊂stJ(0u
96Q(
3Rc!!(∩TJ:λ⊂3 RqC!(3∩∪I8∞B2J*uλ⊂)I∪RqEVm+JλE".q ~t⊂5λ→λ∃∪d 3Q∩*@$b*`S⊂$*g∩P!gg∀bi)P⊂ f'kCE⊂⊂)⊂b$l⊂X↔εEαi"h"Pj⊂$'∩f'cFλ%))jλ!gg!H f$'∩V.≡$∪%`OG-*RPCLT>
RADIX 8
λALHNKF: SKIPE VMAKHUNK 91 OR 2 @)!∪⊂~≡~↓5αR-~Qα~⎇⊃αVN*α>→α≤z2L4PIα*J≥!αε2Dr-@4PJ*J¬∧ 2ε∞|rL4(hQemm∧BV:-dK;∪↔Cqα&M¬""¬α≤z:N⊗⊂α~>I∧BV:.~α>→α≤Jj¬↓∃qs'≠&+a`2λyu∀%5aPS[70εNvL[αεvuc"αβ∧∧β
αε αβ~∧∧β"α∧εRααεdαααεpαααπαααπ∀hS532εvu`λ∞⎇|Y≤g∧λ ∧εHλ
∧∧∞λλ∧ε-Hλε6Hλ
FDλλ&'λλFVHλ
&⊗A"Ng]P77Kα items: 2 4@p@@Dh ↓↓≠⊃↓↓Y ∧αβ'αβ∪Vdαβ+⊗$αβε
↓QA"Ng↔h⊂`T'$g#HP⊂"$⊃ibP!SdεSERS E@+M(A!¬∃'%-∀A(@~(Y'
↓≠⊃+≥,n~∀~)%!¬(A⊃≥-→∨∞VDY6~∀@A'↓∃β!%≡↓∪⊂~RT
`$
∀
∩&@∧ε∪αpQ(4l@Ph⊃i Rk↔¬@)(!g∃⊗≥εEαP λ@%I0
Mα42!-~α*∧≤UA↔44eX∧r∧
p∧cgλ!$j⊂P ∞EED A HUJK NMP∞~∀$A'.Mα0∩∧∃Hd4BαkTJλsP
∧NβINITIATE GC DUE TO HUNKS
∩@↓∃' A∧Yβ∂εP~∃π∨9
αεdB2-KEe∃∧9jBcPα".j@ i$gUiP$*SαK COL¬'∃→a↓αE*0∀[¬D∧E,i0%Dλπ↔.
∪'-∪!∞A∧Y~~@¬2`*T⊂sJAα@
JRS@(αα≤@pπ!P⊃d ∞K18]%!
_
P4PJ"JJRαRQEλ∩Hh*(∀$Mαλ∞↓QHλλλu∀∀I@FA∧fSβP
~ααRQHhdBZβP (⊂dεT
SE@)=~@@"λ¬∩H↔9U-≥DλdL@⊂ε⊂$Sα COMPO@≥9)&A<JR!ααI∧*α*Ye-≤X@λD
⊂πdg∃ ¬R
IFLE ,¬%!π9(ZdX↓%β!¬(@xc|X
JB≤rQi5λ¬B¬≤X¬∪iT P (⊂βH
(Vβ "¬$hR&~≥αrJB∞u!5I2Xh ⊂LYzd,JλAC
D∃⊃P@!2∀S ∀⊃
λ∃ εE∧PαLT D,8λc>9%!π≥P|ZbQ∧R~¬:4⊂@A≥=!%≡~(∪!∨!(A @0hRt$¬\*0∀λ∪qD
Q0λ"Ph⊂$'∩d#cFB∧¬α] ;END OF IFN HNKH ∂∞4⊂λ1nε$z5αH~D`9αP ∪PAP@∨~ααNBε ε∩¬¬* E≤*λ∧∪ ~uλ∀
*⊂π$fλ)(&$V⊂)bj∀& ijλ)(!g∩d⊂ ∪TEH
(AYβ⊃2≤)αZεdb0≤~λ¬P)I⊂h
@&!g$S∧@
SP¬)Q_∪β)=~PA∧b&NQbαN⊗R∧b&NQbαεNN|→αε: ∧∧5∀_Yd%_Q!P@HαP5 @d¬2 LSH A0['∂1_∞≤$KZ≤dλD`4⊂ε)dλ$"`∩E BECAUSE DMHO(αα0∀11⊂⊂i#FEαiadh⊃bP ∪T(A) 8π
β→M
A>tbeα~⎇⊃α:>p¬T
∧βs2(FA∧P∃ - @ A( α∩$p
α~α(T*@4p
'T cbP∀'` NTERS
MOT¬⊗%∧ 2RJ-" (αB4 Z⊂¬⊂(∧@
LATLπ⊂∃@!⊃⊂HK8∧ri~λ∩1Dλ4(∃λZuλ∩*4∀p
c⊃$adbSαT FOR E@#Uβ⊂∩~K⊂hU8∧⊂*IpεU∧R*f`"H V_T∃∀@ ;SK@∪ ↓∪A≥%_@A<B&∞∧ ∃~¬8ε3( q
#!)h j] SKMP (A∧Y'2∩$p∞ $X~d-~λ¬⊗*λαP!$U)P$gλ**εEαP!))U⊂⊂ ∀$~∀&U∩NA↓묬"HQ!P@@ ¬()∀&)b]αe*fh⊃P V(∀(#$fβE JRST FALSE
PLAST8∧∪'↔=)(Aα1'2W→L∩∩w≥*αI↓λ∧αj∧hZDBλ
$`:⊃0U∀⊂ε$iU∧A∧P∩))j PRPLSE
∀∪!%%$A∧XQαR4∀∪!∨A∀A X4⊂⊂∀
¬∩B:&cP&"J∃Qα¬2tJ2BJ⎇αL$%]~B,9_∀b∧λ_4Z∧iz"∧t→AP@M z∧R¬¬APPH!Q%∃∧β∩6G↓2U3*λ(⊂#
*∀sR)A ¬∧RUh∧A NASEB
λ¬'%α2&N π hPα4rizα*⊂ K)lUf∀DX@'U
I↓α λ¬T∀q5∧
∀StλZU⊗( I4qβ!↓(∩TJ:α⊂!(∪$iεEαd))&H!⊗∀ JF@
MMRE A,B¬
POPJ P,
λRPCNIH: HRRM B,NILPROPC ;S@!∃∞&εbα"ε∞Xα~>I∧r&04PJB>BRαA04Ph($
≥"⊗ 5G!∀l]hY∩¬%EE∧
H⊃↔4<-D
5"∧YjE∃Jλiu∩∧∀ ∀r¬JAPPLJ9α¬%EEU≤,yIt8H↔8d`:H⊃4hT∃r⊃*((⊂ h⊂abP&Si"P$Sh'i*⊂g*⊂*∩ g⊂*∩d¬E
MOVE TT,ST(TT
∪∃I'(@QPR~∧~))β→→
tβ/QαA7≥=_ 6NLj
>1αiαZεe*∃&∞,b162|~εRε|qεt∀PJ*JN αRε2d→D4*4
22≡≠P&BV≤AαA∩≤2&aDhRRε2d→Eh→*Tm∧Tλ∩e4H9dL`Q!∀U≥∧
Be≥λ~D`9#"B$ TTu∧
P3∪λ8#"B) ∀VH
J
⊂%⊃ B2
*T¬⊂*∃⊗⊂**
FE∧aPdg⊂*∃⊗)`∃NBOUND
∩AM)4AQ(X~∀%!∨!∀↓ X~∀4⊃-→π9∪_t∪5∨ ~⊗JαRQ24r&04PJB>BRαA04Ph 1nN
~NEαα8∃≥≤βphλ~tspdλ4p hH εALSE @∪βM'⊂≡
∧JεNNα⊂λ _4p aL⊂ ASSC3 IASSC7 IASS@π0A∪¬''εHαα&εNdzMα_~5≥∧ ∀
≥8∧1D 04ui→β⊂"$Th 0 DIS@!1βπ
A⊃∪'!_HA∩~:∧cλβ"C!∧¬
SASSQ: SKAPA T →βM'"$KZ`≤L~:5
hβ"Th~tspg∧fgk⊃dP ∀1∪β'≤z_h!~¬-≤α∩H
¬λ∧")
∪π¬→→@@XQεR4⊂λ&B⎇α)αA`h ⊂@ ¬ iTdπC 4%'↔β!∧A(@2≤
NNx1⊂K]9_∃≥≤βpw!QP4tj↔@∧fgUα@∩APY∪β'M"~∧∪A+'"RαA1
@
!⊃,¬W)QbP ∪SGCP "α↓5αX¬4jD∀⊂ "Tbi+"HTAILS OF LIST
IASSC7: SKOTT TT,LS
JRST IASSC4
MOVS T,@(P)
SKOTT T,LS
JRST IASSC3 ; "NIL" ENTRIES GET BYPASSED HERE
HLRZ B,(T)
AAMN @,-1(P)↓ ;-1(P) HGLDS ITEM BEIN@∞A'=+∂⊃(4∀∩A∃I'(A∪¬''π04∀∪'↔%!≤@ZHQ @$HIe +%
αJ∧iH∀:βT¬αJ∧iz"∧
::∩b∧iybjB∀λdm∩λ~5≤|1Q J∧**5"∧_~5≤≠1Q LlzhR∧
EV∩Eα⊃Q M¬Z9∧R¬¬HU
→APPLYze~¬EHαEα⊃Q LUYZ∧*∧∃I∀
≥860hT_~5≤≥π!∃∧⎇∧
αd⊂Q!∃∧⎇ ∀¬αc1Q LU*:B∧L~:tLpQ!PTL~:4≠#!~4\M dαEα⊃Q LU*:B∧L~9D⎇_Q!∀U≥∧
BdlYZ∀-⊂Q!∀U∃:D∧L
:83_h)_∃≤dz7 M∧z ∩¬αFAPPM z∧R¬¬APPh!Q$L
::∪βP→ E∃Rλ%E h)_∃≥≥_g LUYZ∧*∧%H5∧⎇ !⊂K\h~5"¬hZ%≤Lyd∧|2λ~5≥
λy∃$B ir∧≤λX4\LhqPPLYze~¬EE∧∩Hα".d∧λ∪5*:λ∀∀HZq0UHT⊂4DH∀ (∀hX(⊃P*9⊂4β!!2∪∀K∧∃∃¬
""'P⊂⊂'∪j"P⊗H&jijλ''j⊂∃ibP'U$"i∃$ g⊂V⊂!ελ*∩⊂*∃ε@
CAIE A,(TT ; BECAUSE OF ASSQ'S FMR BEAD CHAR MACROS
JRST IASSQ0
TRNN T,-1 ↓;SPURIOUS MATCH OF "() WITH NULL SLOT
α JRSTIASSQ0 ; E*G. ( A , 1) () (() & 5))
IASWIN: POP P,T
↓HLRZ A,(B) 8π¬+(↓1∪(↓
eα≤Z&BBLr≥αε2αV&9bα2⊗ε4J::λi∀tAQ LU*:Bβ
E⊂HK4∧¬$→D∧L@H
⊂E∀λ ∧¬Tq1$
tqpjε!"B!Q@εEεB∧AεEβEαEεB≥T""Q*g⊂"∩ih& PbP∀,λ,TFE∞P⊂⊂⊂λ⊂⊂∀ S ∧ (ATO@~A`R@@"-∩J>Iα;r:> α¬α∩M~Q↓∃∧"&NBd
ε↔q¬A%$∀SY↓↓↓α↓↓↓α≤z2"¬↓∧
$βs ⊂⊗T@
; (RPLACA X 'PROGN$~∀`,J↓↓↓↓α↓↓"J∧bε∞⊃¬A↓"h9t`*h⊗*%∃!"Na∀λλλ∧¬ u⊂
)(& P`P _Qπβ$ααe%$hQd$∀¬¬∃∧β⊂0hD⊗λ
λ8∀H⊗%∃***!QQ∩4j λ
∧UβP αAm→∨(A∧A→β'P@ZA %'! β
C 4hR∩&N∧bε∞∃Ph &6⎇2⊗%ααJBbD∃⊃⊂K\α3TjZQ(⊃I~Tq⊂⊂i#P$TP P&∩ijεEαd)d TT$-SEG@→∨≤~∀&≤Z&B⊃¬~Q"R ¬⊂HKαr4d 5∂c!↓(∩TJ:λ⊃∩*:⊃β!↓33uHY(⊂
*∀!∀DB]ad"PβK @/!!"-⊃αN⊗≤z:"λ~$:∧α4h I4p
Lπ$A≥=(∩(LbN!α%!16N,:2>≤hP&N∞Mα1αN ¬¬%"α""'d∧AST?
JRSD↓ ∪'∧aD$↔9d`:⊃+λ
:⊃0r(→α⊂ ∀REATMEL¬(~∃⊃∪'!_Hpλ&"e∩`∩∧~ %E⊂J"!↔pp4D εE∧R)&&@ AR1,(A)∩∩m%!2~¬α`hP&"J∃QαεIλ¬BD∩⊃⊃∪@8q∀@⊂⊗F@
HRRM AR1,(A) ∩wI!→βπ⊂A0~∀%!∨!∀↓ X∩∩$p∞J⊗αJU∀rλεβ! ∧ISPL10∀∪5_∞@4Y∀∧5α(h)∪βG@≤~(∪⊃%→4Aε@1D $$↔0
*⊂ε aPP≡_iU⊗`i#O⊂∪h)∪βGF)
λ∧∪!-~!αAdλ$%@9iu 4λ∧'!SβH
&@pe≥λA¬%≥yHh ⊂LYzd,Jλ⊂¬λJ#"A~∃0 d∩⊂(⊗∩∪αC@∨≥L~∀&E∩J5αλ¬DαE¬⊃⊂KZα⊂ (∪ ab <1S@(αjεJ≥p∧αDt9ye~βF)d"l~(srJ⊃Q M∧βtλ
¬⊂""!↔tQ5
ZSH⊃I~Tp
0i#FEαh ∂PJ P _~(~∀_vI∂∃(A∂PfA∂P`A∂PbA'βI∂(A¬%≡⊗α@λλ~Qq5ε∀∀∪QhZα⊂ ⊂NGPλbAA_
=F↓P@!α@
SU@¬))_%∂(X↓∂)_0A!+%αJ>AbαJε6α
$`:λ⊃U)@!j$gSαS
λ∧@∩≡-!`⊂M99u%$βH⊂%I∀jtk⊃ ¬∧P∩))`∀GET1
λ¬≡⊗α@g∧e*fT'⊂ @,FALSE
∪≠=(
,∀λ∩dt→J¬∀⎇λ∧c!∧e))U⊂#bjF@
GET0: HRRZ A,(TT)∩wU'&A=≥→2A∧Y∧Y)P~∀&U*6B∃∧ 2∞B⎇α( ((xU#αB2
*T¬⊂*∃⊗⊂λA$∩w6αZ5"¬λ∧Q*84UQ$λKλ⊂eD⊂4@_K⊂*⊗⊂⊃∧¬∀∪)+∪!
↓)(@24
2N∀KY"N⊗*α⊗@4→D∧
λ⊃5F5α⊂&eSαAM &0A'$1F 1αrJ,~*$
JDλ∀`(α⊂ i∀,XTFBα HLRX∧AαX!)(@$KZε %9t¬¬∀X∧q**Q(∀ED∀q1$
53rε⊃ ¬∧aPdbP K∀!∀DNβALSO AR2A AND↓XA≤*∃α~
~2>ε h ⊂L**5"∧xZC@ ¬∧d∀)(
TT, ⊃ PR~∧∪!→% )∧ 1"R ¬⊂hPα4∪j H⊂λ⊗βE
SARGET8∧∪≠∨Y∩A%!1"¬Hh ⊂LJ9α¬%EEU≤,yIt8h!→TmQ(∃
E∀p
(TT ∩~(∪ ∩IhR¬%EJ4λhαB4 @h
P, ∃βI∂(t%∃' APY'!βQ_∞ (↔8t-λ⊂4J(4∧P(∀'h"i∃,P#)∪βH
AβQ_∞ (β"B)*tλ∃¬J⊂π#bLF@
ARGET1h∪∪∨-∃∩A∧YEβ%%βd~∀&U∩NAα<*QDQ!PE∧βQq*G@2Tj∧∃∀jλ5∪s!↔p3UλZSP3∧
u0TIZαj$g⊃P⊂
GET PNAME @RLπ A
I∨⊂∃α
"0≤@!"T hβj_Mαe)h⊂∃⊗('#QFE('⊃h_⊂~ SKIPN A↓ ;SAVES B¬
SCIPA TTXεHHI9∪→:~(∩@A⊃1%4A PXQαR$s⊂⊗V≥!α∩≥∧JQα&u"0~¬JD¬≤zλ~2¬$βh∩λ~Q#"A→∀TVDλ+*
Jλ".dλqsU →β*gjTP#aP∀)'j"PβPION
↓POPJ @,
↓.SEE CRSR40
;GETL GETLA GETL5 GET@_b↓∂)_@A∂)0cαA∂∃)_h~(~∃∂Q_t∪'-∪!≤AXY%'P~∀αA)%'(A≥)1(h &N\zRQα⊂b2L4PIα*Vmα1α d:⊗RHQPTq1∪λ↔@∧fgUα@∩AQ(XAα$~∀&e~!αR ¬Bm≤XyD`8c"B)Yβk"P∃*∩)j
**∀FB∧j&'⊃P**,LS ↔≥H4(∀ %∃≥Dλt-⊂ε_FB∧e*fT'⊂ @,FALSE 0↔
¬→_A∪9)≡A∂∃)_j@4A/>p∧u"∧λZ% hαQq*I
(
∧R*f`'λ V#bU&_FEαdgk"RP V'∩d∧P@%=!&~∃≥!1P&*Vmα∃α d2ε"N(H%n~e*N!α$*≡⊗:-∩εB∃∧~εN∃∧z→α~zαBJ>¬_4(→*%≥αλxU$c_⊃P@(βb`∀L0:↓HRRZ A(A) 8π ⊗N-→α¬2⊂¬D
@∃∃
A ¬∧e∃dh"P⊂T!`'T%
GEP 1 `&"∃∩`∩∧∃E∧
H⊃↔4<-D d-ED t4∩λ∧∀IZ⊃0 *⊗P IST ∀∪)+∪!
↓αQπ↓=!∀4PJ"2JRαQ1αλH4(→Yu (αP!V⊂∧¬∃∂∃)_ht%⊃→%4↓)(HQR∩%\j⊗&E∧JQα∩⎇:0∩∧β∩4jD⊃qH
St∀aQ@∧a`Re⊂",(TT)
λ @!=!∀Aα`4(→
%∃Rλ5BD~α#"A→U34 @⊂!V#Qh∧@_h4⊂∪∃%M(A∂Q_`~∀_w!-"BJ>αα≥≤X¬_⊂β C@'∃(a"A
'(`↓∞N⊗ ε∧
∧*(U$Rλ∧t
)ql@⊂⊂βSED\Aπ'PdAπ≤*QJ¬α"≤J λ∧Hp4@⊂⊂β$CAR CSET4 C@'∃(iαAI⊂⊗Bα)uα¬(YUβαλ∧Q)Z(∀HYαh⊂∩@A%≠@h
α∞α8U#$4
$,@4λ P∀ f`→PF@
8εvvA¬%≡Vl*0∃%4λ∃∀(⊂ ⊂∀lfa'S⊗⊂ @∃αALUE, AND AN IL¬∩_8∃$⎇%aPC[50¬$DT ∀`(α a`U'i⊂&Uij⊂'∪h∧ BE A @!⊃_A#+¬→)∪)d@Q%
β⊂∩D
DD
D
DD εE≥Nβ; EQL¬⊗N~α0≤2λ∧u(d⊂ ⊃UAH
)∪Q∪&A%&A+≥⊃
∪≥∃λA&p∧¬$DT D@Qu0(x(⊂3K~β`lTKαλ
)Xπ3@4∃∩⊃$
P3∃(T⊂∧iP∀ ∧@→≥5⊗OλA%A:,~⊗NN
∩e 2∧
DD(⊂ lSa'f⊂∪`h BE A LIST
8εvv@!↔∃∨/8Aβ&A∧@E ∪M⊂⊗
|"&⊗⊃¬αJ>B-∩ReαdJN@"'0λ
I⊃(⊂hJH∩4d
⊂∧"P∀& ST)(4SY`≠Z _b¬$α⊃(
St⊃**⊗(⊂)JQ01∀⊃0$Th∧S, THE NEP∞A4
2V∃∧JMα→j5$IHT"¬IλU∀+C"G]]P'U$"`∩WISE A NEG↓!%∨!∃%)2A%&A&u~Rε2d*⊃αε ∧¬$DTλe∀|h¬⊂∪βF @)!
~∧vβY`~¬λ∧Sjλαi*,H& ST,∧@A∪_A)"*αBJ>∧*JRe∧
2J⊗"eα⊗DJN@%4 ∀`$⊂(∀ @i*$gS∧¬α;≠8εA>2αR"∃¬αJ>B-∩ReαdJN@"λI∧
α ~2¬¬X∧Q%D⊃3SjXp∧⊂'Q⊂*$"H(*`∩E PART
0⊗@YYα&M∧~0≥∧α11∧λ4h∩)Z∃0 "H& ijλ)j)*Ph∧U@%∀A)=¬α⊗J6M!αRα*αBVR¬∩0≥αβC"G]]P$Q⊂*$"H+ f*QP ∂F *PU@%∀A∪&A9_∞ 2Yi∀bbλ¬∩λYβ⊂ ∀HE VALUE IS PU@%
_∞Be< 4)@4εfdλ3Q⊂∃$"P'⊃hπ @!I_∞B⊗∃"eαI~5"∧8YDe~βλ∩(d⊂3V%D⊂4Q$
∃0 "Ka`∂NSED ≤~(~∃!Q!%∨ h~∀&≤Z>@%Dλ∩de5:5HH↔9DM≥J4∧TD
5LL)yE~∧~(R∧|8≠⊂hPα(∩J*uλ⊂j85
c!λtq5ελnB0h→3λ⊂EIT⊃∪ A".s(→q(⊂$
520i4∃⊃4jD∪s@⊂∃$"P)Qa`∂ND ARGUMENT
CAML B,L¬! → ∩∩w≤B&A6|16Rα*j∩⊗N-∩QαR-~Q↓"%:5α∞j1≡MHh(%↓∧RJNQ∧~N⊗Q¬λ4(&-Bε!α∩b∧$%\b6N∃αiα6V≥!αB∩dr6-α$B∃αZbV∀4PJ*NA¬!2B∩dr6,4PJ⊗b∞Bα↓2∧hR∞N⊗#αEhεlzR⊗%¬!1"¬Hh*∞N-!Ah&E∩Jiα a"Q$HIf&V≥!αNε4)αεIλbI2→∧2>Iα4
N2>!↓5α≤*∃α∩$*:P4PJ*V6∧)αQ∩≥~⊗QHHIfN⊗
∩≤Bλiu∩∧→`∧-D~:DLTt
¬∀⎇λZ%%HQ!∀De+$¬%"E
BHh!→¬∃∃$
BbEE⊃PPL8→∀*¬JABD~⊃Q J∧**5"∧:8U#Q(5≤-Fλ∪PH⊃⊃∪@91H∀
)t⊃4JK(⊃SjYQλλ→∪pPHZH∩3AQT∃4JJP4λλ~q5~*∩$)∪&P!ε
*⊂FE⊂)"`∀J8λ
¬'A%∨∞dh∪≠∨-∃∩AαX!R$KZJ⊗R-∩9αZbV∀∀PJB>BRαA04Ph*∞N-!]hεU*6B9∧ 2BJ⎇α⊗H4PJ6>Z,Iα¬2tJ2BJ⎇αL4(LRJNQ∧~N⊗Q∧_4(4Ph*∞N-!Ih&¬*N!ααb∧$%\">⊗Nr:Qα"
2∃αN,~!ᬬαJ>B-∩Re1¬~=α∞|rMα>t)αV@hP&N.Mα∃αYuαVJ∀hP%α*∃~Qα∞≤*RADHIf&εL∩∃α↑rQαRzαBVJ*j∞>~_h*∞N-!J¬hLBJJi∧ 1"¬HH%nBd
&9α4
:&2d α∞>u~⊗L4PJBVNDQαA2D~0≤U1Q LE*+"∧∩H1P@L*:α¬"DZ∧$eλ1⊂K\α3@⊂⊂βASE SO@≠=→∃ααJ$L-4
Dz¬X∧q$λ(⊂λ"∪'*fFB∧h'hλ(∩!FB∧d))∪P V∀⊂T@D]Tbj(&∩ij⊂*∪P ∞EW T@⊃∪9∞~∀I
β $t%⊃%%4↓αX@"λ¬⊂HKαp "U*i'∃αALUE (@∩]∀X α≡-!α&Q∧∩ε∞5⊃PB⊂p4G∧d&)⊗α A,(A)~∃Iπβ$βP&B>∧QαADH4
⊂Q!P@@ PthZα~≥∧T*id∀⊗ DDNβFOOL PROPERTY IS IN A PURA @!¬∂
~∀%!+'⊂↓ Y∧~(∪≠∨-∃∩A(X!αR
∃
'(i∧t∪⊃¬I0A)(0Q(B∩$p∞∞≡¬Iα⊗:⎇*≡!α|1αR"*αBJ>∧*JRe∧b&NPhP&BV≤B)αAd~N⊗Q$_$%m¬"=αB-∩6&Q¬""*λ∧∃*J∀St↓Q@∧d&∀-⊂ F
**∀FB∧a`dQP V∀⊂G THE ATOM
P@+I)%β ↓%⊗6αε2dλε∧d∀)&P*∃⊗⊂λD$~∀&lzP∀2(⊂%E∃
#!∧h'h∩⊂(⊗εBαλ
∃%∃≠ nt%∃+≠∧qα¬2∀jB-&↓P@!33uHY(⊂ ⊗∪αILPRLπ!&~(∪∃%'PA%≠@`⊂∀!Q hT8∧q*F⊂h
∧T*id%λ(⊂.,b∩`.D
&J@∀
t
Jλ¬∪dλα ∂ A @ >,∩2*λ9u¬J⊃Q LE*+"∧
E
BHhαB3)@hεE B,(A)
λ∧∪!-~")αα¬D9β`∞@&D~∀&E∩J5αλ¬BE"α#"A→αgk"RP*⊗∀⊂T@
POPJ P,
λ∧⊂∀*∀*6AMβ!∃¬-9λ
¬⊂""'a`∂ME HE@%∀A∨9¬αVJ∃¬αε≡∃¬"Jε@hP&BVα9α¬αβ⊂B!↔p(∪i@⊂("&λ πC PROTECTS ATLπ⊂∀Q!∀l@uQ2$
λε∀ JF@
REMP3Ah∪!+≤B)αAd~N⊗Q$_$%@89u¬JλYd`:αcd LπA¬∩0≥∧X∧U∀⊂ε$iU∧¬∀∪!%% )¬"Q1λ@
!⊃,¬P*∪β DO RAM@RLπ ~∀%⊃→%4↓αP⊃λ¬∃¬⊃ ¬∧aPd¬E A,(P)
λ∧∩A∃I' ⊃αα(Tmβ8⊃P@!2⊂ )⊗α A,(TT!
HRRZ TT,(A)~∀%⊃%%~ααRQE
BHhαB2J*uλ∀ ZRC!∧¬α;@≥∨Q→∨(A9_∞@"∧Ie,Dβλ∃
*1(⊂iIuλ∪λ~uλ∪λ~u
( H4q~λ& ASTC@⊗A1β')π,A→β'PbA2
~QIα∀zV 4J∧α%∃YjDL@1(∀I@*"P⊃
λλ
*≥*αRR`J0∀⎇ED∧`*3∪∧ ⊂4u¬D⊂Su)Hα(⊗⊂∀*g"$Sb@
λ∧⊂∀)iu$tzC LUYZ∧*∧∃H5∧⎇ !⊂K](Z∧d8Z2∧
it`%3R3∧
P3∃(T⊂V(
Aα@
JRST TRUE
~∃9_∞@#!Q"$uYIC@!2U3* H⊂ ⊗⊃ f)bCE*)*Q] MOT¬⊗%∧ 2RJ-" (αPsI@h∧: PMP@∀A@Y≥∨(4⊂λ$!Q$d
8@∞A~∃0 d∩⊂(⊗&∪ i`∀CK ↓;SUBR 1 - GET @→βM(Aπ∨9&A>2α¬αI~5 HαB( *Tq⊂∪ ib4
LAST52 MMP
A∧Y~∀%!∨!∀↓ X~∀$~∃→βM(ht∪
β∪
A_XZb~(∩A*∃~QαH~5#(α".d∧λ∧ @ @∧Aε@8X 9↓αq↓αiJ↓α∞ε≤(4(~94m∃∪@⊂⊂T∧@→&$∩w'≡↓(∞∃ααIt`9h∪Sdλq∀Td⊃ ¬∧P∩))`∀↓→β' εPHKαhλ¬λ(@⊂⊗α) CASE
HRRZ TT,C2 ↓;FLπ⊂≥¬∧
22zpλ
(3Q∪iT∀⊂
)H* ∂ PDL _A→_∞Iαα8∀\(Q!∀823⊃$λ+
∃
E ∧D]H⊂ ∂F THAT↓↔⊂∩V$:⊗eα≤z∩* zU%¬X¬⊂⊂αY @)!
~(L~ε&2*α¬ "α⊂λ∀BDX @π⊂≡⊗α E∩∧iz"∧l~λ4@H⊃5λTε~∀%∃%'λαα2εNαHU∩Q!∃≤\~ b¬%EE∧
Hβ"B* t∩H
¬β"B)YuQ2$λ+
∃
E εE∧R))b LASD
λ∧∩*dbεNR≤Y`&6⎇2⊗%α2a5D¬Z∩2>~8⊃α2ε≥!α∞α,~,4(HH$%M¬∩⊗@%X∧SJ4∂MF&-kEW⊂π'Wλ'c⊂!Q))P*⊂ebg>> AN↓∩∧v↓≠#'λααBJ⊗α8U∃4T
Be∩d∧¬≤,Tλ∃¬∧YhBb¬(Zd-∃8UB∧uIλ4%⊂β"Sλ~u⊂rg↓ 4ri~⊃H⊃¬H .ti94λ∀HZα*`∩N O@≤A9_∞J6a6~>∀iα2ε≥ 4(→*%≥λ⊂λ'T%_DDNβ LEAP
~αBRI¬"0~∧β⊂4jD⊂π'b⊃P N↓λX@~(∪'.⎇"Qα⊃dbL$↔0
¬∀⊂∧iP∪βK _A¬_
" ~2∧MJ4∧`:β`∞ "LAS@)9≠
D4⊂∩A∧zB)αα¬@HKαhλλ
5λ∪jI⊃0@⊂⊂h∧@∨≠LA→>≤(4(→*Tm∧β⊃(λe∀∪t & ∧D]H& MIT@λAQ_
↓λe∩∧≤J*0hTH~5#αB2
*T¬⊂*∃⊗⊂λD$~∀&≤Z6@%D
E"dβ∀c!↓(∩TJ:λ∪⊂*:α→εEαd))-λ ⊂(D)
∀∪M_∞*≥∧122ε≥!D4!→%∃≥D
∧m∧&⊃P@! ¬& Th∧2: HRRZ TT _Q⊂R~(LRV -λT¬%"J u∧S⊃Q M∧z "¬αβα"!↔q3QλXλ⊂dU$⊂''Sα-NELL ATOM
α
~∃ ≠ ⊗:%↓`&*,jB¬αλ¬E%∃XQ⊂K]8¬0J$#"A→Ttλ
E∀pλ U'`
8π ∩J,)α&~2αR"∃¬~f ,)yB∧
(zTl,j@∧M~λ)u,@Qβ"A∀⊂¬)hλ*∩('⊃bXDDNβERROR FOR NON5'3≠¬=→&~∀%⊃→%4↓(X@"λ¬⊂HKαqq*D∃P3
X(⊂q)Iβ"B)
TVHλ∃α⊂λ@(αH$%@8Ir∧MD ∀`*⊂πP*λ* ∂ PROTECT F@%=~A∂ε4⊂λ&"α*%@$∃
λ∃ εE∧PβAIN↓(Y#+9
>Vt 4(∀
D%T∀λ∩dλβ"B$∧⊂εgk⊃dP @,TRU@) ~∀&∧zB)αα¬@hPβ"Ng]P ∩ETURNRUN@)%≠
AβLAαA
%1≥+~αα& 2 Y∀:Stq(dπ@≥λ4⊂ mmX∧¬,@R5∀d¬⊂π'jλ'"abTi`i$S,P ∀HAPλAβ
∞@-(~D*¬I u,<α
+AQ@εE∩∀*g"$SbX
PU@' A @2≤2&aDKZNF
⊂∧βα∧h8∀dd_)D(hαR5∧A+P jTbj⊂-KαRRUNT,$TT] 0↔∃*:R&l)α&9β!6&&≥∩0≥≤X9tdλ⊃3I~α)FEX∩∧iQj-⊂*∃⊗εE_L⊂∧ RUNTAM↓)(H∩$p∞JVu"& ,T ∀b∧Y→DdM8X4|@Q∀c! 1S@λFL⊗aQ@∧f'Pe`DDB]f`∃ST DOCKI OVER ALL JSYS'S
MOVEI 1,.FHSLF 0↔∂∃(A%+9)∪≠
↓
∨$AM⊃~(∪%+≥Q~~∧∪5∨ ~∃¬"Q1DHI`≥∃YjDL@1(∩)d⊃23 I4q0iYβ")FB∧ibj⊗!⊂_@,3 ↓;1 ANDfA↓βY
A β9∂%∨U&Aπ¬Uλ~(M*:2>≤Z$4*hH%n⊗t!α>→∧J~9α!⊃@ (*)e$k↔!⊂HK89tu4X*B∧uYX$-∩λj$l@(∩3JH4SP)D∃3R*Jh⊃∪d
4q0j1"R5∧A3∀r∧
∃AQR5 !→353 ∀∃∃ε⊗AQ@4∪j H∀↓⊃".p)juq4D 3H∪)_tSthXpπg"∀FEβ≥R*$SbP*$SbYP*∩db\⊂⊗--⊂-⊗-εEεB)ja*∃&∧j$SbP#*S!j$gSεEεE∞]]P)⊃j*i'λ P*$SbP)j⊂g" i⊃⊂ iP⊂P#&'S*fP$S⊂)baSe")WβE≥]]H+bP"S ∧EAVOR TO MAKE THIS INCREASE MONOTONICALLY AND TO MEASURE
;;; THA @ASSAGE OF REAL TIIE. IN PRACTICE, WE MAY NOT MEASURE
;;; REAL TIME GHIHE THA @)%≠
['!β%∪≥≤A'3'Q⊂∃αM→αR⊗mα>Jε∀J2eα≥"6BB,!04 YY`~∧→hB¬<T
∧-∀Y~B∧
λyDM⊂r¬
Q0 bU⊂*'P∀P jλ&db'∩c`* MF EACH DE@π≠¬∃$@fbαp4(Q$E$LXW M¬Z9α¬αH8dd|~F⊂HK8∧u(*Hλλ Hp3∪λ_S⊃#!)1SH ~α)V-CEW)⊃*$fbH**⊗∧B]cbjλ fgjS*⊂'cλ*$fbH)lij⊃d¬ HAS BEEN U@
; CAMGE TT,[30,*3600.*24,*28.] 0↔
=+$A/∃↔&A=@b↑L`A'A)βπL~∀`,LRJNQαq-L4SX&NV∩αRQ2[→A9)≠1AAe"r&'α`+#"Na→TTu∧¬K,c!!2Tt∧
∩1IIp5β!!1Q∃J)(⊂
*∀→P↔∀BE.BD]bg⊃⊂'c⊂∩c'⊂$U)FE$Q'⊂"_L⊗-FE∩c"P)Pdf⊗-CEfgU P*ε⊗Rag"∃&nDDNβINTERNAL DATE/TIME STANDARD,
GETTAB T, ; AS DATE,,FRACDIOJ OF DAY
JRST TIME3 8ε@b[=%∪∂∪9λA∨8A≥∨-∃≠¬$α↓EaDε∪C+↓Q LH@λ
E⊗lJF6M+Jf∃αZ→W⊗.D]Pd*"iλ*#P_ei$cRe⊂'gλ% g*Pi,P_K_X∩[βEdb∩k⊂*ε⊗β365.*4+1,] ;GEP THIS MOD A FOQR-YEAR INTERVAL
JSP T,IFLOAT
FMPR T,[.OP <FSC %22>,86400.0,0Y ;CONVERT TO SECONDS
POPJ P,
TIME3: MSTIME TT, 9PHIS PRODUCES GLITCHAS AT MIDNIGHT
↓JSP T,IFLOAT
↓FDVRI TT,(1⊂00& )
U 9END OF IFE SAIL
αIFN SAIL,[
ACCTII @)PX~∧∪!→%4A⊂Y)(~(∪∪ ∪Y∩AλXDd\TfD\∩∩weβ$ZDrlhA%_Aλ~(∪∪ ∪Y∩A$XLb\$KZ6>~$A5EαLqαI1∧"εe5λα& 2λaP@L_HB∧∩JI∀l+¬
"HH↔8∀$λ∩3D U30HZH∪qDλ⊂64d
∀Q0hX⊂∧g#H!ja)⊃dεT MOH
)⊂4∀∪)→9_AλXL∩∩g≤Z&AαL1α:> α2εεααf⊗ε⊂h(%α≤
&!α⊂aH$%]~.&A∧J→α
rVεJJα>Iα4*∃∃X~%Hh!∀α¬≥X)∩∧2F⊃⊂K\_I%-≥Dλd⎇∩λ:$-$→iu-~ HT
α_T
∃1Q LLZYDJ∧eF#"r&6cβαβB.h→sUQ**λ∃∪d
q0sihα)P#∀'fP&⊂ij⊂&Rb'$cR*⊂*'H&db'∩cd* LAST DAC 31
TLZ DT,-1
ADDTT,F ;ADD IN SECGNDS SINCE MIDNIGHT LAST
JSP T,IFLOAT
] ;END OF IFN SAIL
] ;END OF IFN D10
IFN D20,[
LGCKI ∩∩m≠+'(↓→∨π↔$Aβ%∨U≥A)!
A*≥JL4(M"& ,Q⊃⊂K\xZB¬$→XR¬≤→h4*¬9~5$,T D
≥D
$-≥H~%$,D ∀b∧X8T
_Q!∀l⎇hT¬%"F⊃P@M8ZEBβ∃A⊂HK8εQ*)h⊂tJXβ"B*YS∪pi9#"B)*tλ∃¬I1S∪h~β"B(h∃PR$
∃
ε⊗λF¬".piyUQ4JD∃∪h
80ssHJc"W!⊃.q3HD∪qH _SH⊃ε&β"B* t∩H
¬β"C!)1SH
823⊃"U∩)X.∞C!+VVO'V"""!↔ur3 D∀u0JJP0u∧
∩∩4dε(⊂P(9h⊃6λ84∃λλitH⊂(j⊃4Hλh0HG∀tc"I~Tλ⊗¬E⊗ll%eNEFl+Cε6Kf∃Kl¬el#EFl+Kε6Kf∃Kl¬el#KQ"B6K+C"VK+O/6K+Jvβ!*⊃4S)→A"R(iH⊗VK%,mMEeλ∃p*)H⊗uλ_S⊃( xH⊂u)Z3⊂5 ~β"P"⊂liP$S⊂&gg∃$)P&∪ibinCE"d(∃e#bP⊗--εE↔D@]bS ⊂'cλ$c'∀`dfεBβ≥bhjPf⊂"hU`f_⊂⊃hj`fP"hf`P"hS_a⊂"Td")jλ"hf*⊂&⊂"hS'&Z⊂⊃hf'&L⊂"hf∪*fP"Td∧GSE EQLBIG EQLHFKEQLHN3 EALHN1 EQH@⊃≤HAβ#→!≤hAE→⊂iααα⊗F2A"aα⊗b"9U¬*NJN⊃αVN∀
↓αVα:$E¬∧
D4J8R¬-8)∧eQ!PE≥X*E$`_Z∃,Dλe,T8¬∩)@eαEεB ¬QUAL:↓CAIN A(B) 9EQ THINGS ARE EQUAL
∩A)%'(AQ%+
∩$p
↓↓u~⊗∃α
~N.
αi↓α6-~QαB∀*N⊗J4)α_Q!∀l⎇QH >≤(4*&4qα"i9D`8k⊗c!↓4rr*λαP ⊗HUJK@
λ∧∩A∃I' AE_cα~(∪!2tqαRQdbL$↔9∀2¬i
T`)tλ⊂iyβ* dSαS NIL, @)!⊂→ααx∀u"λIphPα(λ *Tu⊂⊃hf'iQD@ ; TREAT ALL HUNKS AS IF THEY WERE @→∪M(Aπ1→&~∀%'↔∨)PAαY→L~∀%∧RJNQ∧*F $βtq!Q@∧e)∀j⊂"hS&)`∀
λAQL1A:↓SKIPN USRHNK 0↔∪LA)↓
↓+'%⊃U→⊗@>≤*2$∀λd,
JZ$*∧Yh∀∀dXCphPα(λ *Tu⊂⊃hf'iQFA∧j∪'"P*∃⊗ '%BDYdcλ+$*g∩h⊂!gS* dg∀P*⊗⊂∃$"g∃βANDTO CEL¬⊂4PIα*J≥!αεFc
⊂H↔4¬$DT∧$-
X→B$⊃14j81q( _H⊃2*I⊃4@⊂⊂i#P$TP λ@+9⊗~∀∪M↔⊂≡R ∧∧
dα∪RaQ@∧P%∀)j⊂"Td∧@∨'∀~∀β'-∪!α~)#_cλp∪D~!α¬d⊂$%@9ZU≥αλ→E 84∧iP∀bg" TO FIRST ARC
JRSD↓#→⊂β"∧4!Q%hH↔8T`(α⊂'cλ$c'∩'%f'QFE"hS&)`∀h∪!+≤AαA⊃D $4λMαVN∧
αbD%⊃P@L J%B∧∃E∧
HQ!∀De+$∧αbλ
!Q@∧h*Td
P,AQUAL0 ;CH∂≠∧
J¬α≤
JL4PJ"JJRα¬1T⊂
¬ εE∧R))-⊂⊂⊗_∀(
FA∧iUa⊂ ⊂,R70+∩
∪∃I'(AE+β_`$∩wπ∨5!β%
↓β %&4⊂∩¬E→)¬_h∪#→1'(∩∩m→∪'(4∀∪β1_
V4HIf~&DrV4∀PJ⊗F2u*4$%\22>~,h4*∩⊂∧@L-→Idk⊂⊃↔4$⎇X)D(h(;α LX→D`),B"'a`∂MPLEP⊂~) 0H∪∃#⊂∩iR@HK8JU∧dY↓PD∀tA∀-H)∀8H↔8$L<βU3!Q@∧bhS'ibDB]h' SbP j∪βH&A5+'(A
A"ααR=α∀)αεF,
04
Dq⊃αJ-α⊗εQ∧B0∀\β∪qe6+λ⊃*→α λNK ;@@+9↔&A∀*F@,~(R¬∀X:U∃≤α3sD ⊂∧ebH& STS
EQH >≤($%Nα(∀d∧yZ2∧h@λ @$f⊂&Uij⊂!⊃P"h@ TO BE AQUAL
α EQH ∂'∀∩∩`.
∩JεE¬α>&:$*JMαm*NQα∀)α⊗E¬"=α
*α⊗FV`4*&4q↓96-
2R
bj:Rf∧*M1α<
J9α]:J>::α2⊗:="!αR∩2⊗ThP4*&4qα∩b4bε≥2Xh*⊗Fdr5QhhR.∧εlzR*λAC∩D∃⊃PT\⊃→T⎇4T
E"c5λ∩Hh)9∀\`_IT⎇∀T
Bc∩λ⊃⊂hPα0p)YH⊂
⊗∀!∀FB∧P!`SbP**→P!∧CE JRSTEQLOSE
] ;END OF IFN DXFLAG
IFN DBFLAG+CHFLAG,[
E@#1_
5IPJ6.Z*αQ1ED $4λJα≤XT¬"c∃λ"Hh!∀α∧U*:B∧-→Iu≤(Q+PHKαq3HD⊃qH _SH⊃λ(S⊂1e8v⊃Sλ_c"Q*→⊂π*fN∧fgk⊃P*⊗∀⊂TBE∧PβAMNT,(B 3COMPARE VALUES OF NUMBERS
POPJ P,
AQLOSE: MORE P,EQLP ;@)!
A+→Q∪⊂⊗ε$)α
εe~&Reαiα⊗N≤
B∃α∀
∞,4PJ*JN α~ε2≤($%M¬"=αR⎇↓α2⊗4*1α>2α⊗ 5J+∩¬$tλU
→D¬<MI∧∧4J8PhPQ)∀4rλ)∀<uYUEHh(Z∀d∀_w LDJ+"¬"Eλ∩Hh!→∧e∃$
E"bλ%⊂hP_8∀L*λABE%E⊃⊂K\Z~Tbλ)∀<UYZ2∧D~hR∧-∀
4L<j1PPJ *%≥"λZ∀d⎇8Q⊂KZλ→d"∧8J%~∧~(R∧-~X∀b∧I~5%~ xb∧4≠ e,M1Q LE*+"∧
Eλ∩HH↔84D0r` Yβ&,P⊃hj`fλ!b))CE HRRZ B(B)
JRST AQUAL0
] 0↔9λA>2α&~9∧∩&≡~,h4(Q)∀4r d\@∪q`⊗⊗β
EQLHFKh∪'π∪A_ αZE*2.@hP%α
∃~Qα⊗α→De≥AQ M≤9~∧*¬X∧tI Rc"A∀⊂TTjD⊃0λf∩'~εE⊃hf$']h*Td⊂ ⊗⊂F@
PUS@ P,B~∀%≠⊂≡ZtIαQ⊃λh!↓↓β∩∩&→¬Z2N∧
BbEJA∃kαJ→¬,t6↓∪@:Q03 K(⊂ d∪hf"⊂ ¬ ASH, BUT LSH IS FASTER OF KL10
HRLI B,(T)
α PUS@ P,A¬
PUSHP,B
EQLHN1:∪⊃1%4Aα1ZbQ@R~∧∪!%% )∧⊃1"AHh &"e∩aα bB↓$Q!∃¬-9 "¬αHZ∃,F↓P@Lλ*%@$⊂+⊂¬V*∀
!Q@∧d)∀-⊂!ε
(⊂
HRRZ B,(B)
α PUS@J P,E@#Uβ⊂`~(∪⊂⊗>4)αQE
αHhαB0)@a%(⊂∃⊗"`⊃LHN2
H∨-∃~A(X! R4PJε =4¬S
E¬⊃P@!2TTjD⊃0λf∩'_FEβE"`⊃LHN2: SP∧A@Y$n`,h∩(Mα0≥∧αH∀¬Aα@
EQLHN4:↓SKIP@≤AU'%⊃≥,∩∩@@p∞'M∧εFF*λ¬4j)∃3Re@ibg"∩P32`!tpeJ↓K]CE1KH}~(∩@A∃I' ⊃α-
2"d∧b!∀λλ∞d∧≠[k∧z→0⊃Zβ the pa`%Q`4
-
2!Rλπ M¬X∧r∧λβ(λ@ 1#→ $∩@@@m∂←iI∧ACgVαβS#∃¬+G/$λ∞9~0⊃Xz2FEαh*`∪H @
!αbRP4PJBVNDQα
@λ∧
85H
FB∧h ∃SHJ @ 1+'%⊃9 ∩%α↓↓n∂F+∂-β4¬w$≥<p∩\α-`uNines@L~∀&U*6B∃¬!2εFdB1T$J↓↓↓nL∧bε@Xπp∀0AO↑AαCπ∂-∧¬↔"εmxM\9≠⊗!Q@∧h*Td⊂ ⊗⊗βEQLH4X]
PU@' A @2λh &B-~!αAeZF⊗F,
2dQ!∃¬-9λ
¬⊂C"A→αgk'∩P*⊗→CE XCT SENDI∩∩@@w≤+;⊃β&C∃β?⊗S↔∂Q∧∧∩ε@9<p→Xpπe
EQLHQ0t&¬*N"$λeEαβ∀TjF3(λFBα POP @
"α¬E% Q!∃∧⎇∧λeEαβ⊃4)Jβ"B)*30λ"H V"hS'ibFBα JRST POP@¬∀4Ph ∀43∩ @~Y∧h∃i`λJ FXP,RSPλj~(∪!>αα~bAe"P (αB4 @h⊂#,∀⊗"`⊃LPλ
(LRJNQ∧*F $α∪@→CE
;8εA'Kαs⊃β¬∧¬V/∨<≤v*πMtε
ε∞XMP;t`4h object @%\AαAα;⊃βn+@∨≡≤|RεNβH⊂AQU0 i∀`a≥∧T*id%λ εP⊃αbNεYαYS⊂J∧∧β@:x8 % AC's
∪!U'⊂Aαb`≥∃8¬~SY(
USRAB8∧∪!-~!αAdλ$%↓α↓`≤&⎇` nD≤x=LT⊂0inP4s⊂_ppl@∃HAQKβ∪∀4!~¬-≤αλ∀¬H@εE∧V!j⊂)QdεDI
λ∧∩4SY`~∧=V≡Zλ⊂λ@4πr @ KS@;8∧ε
∧α⊂
g∩P0w2λ0P ∃SRHUNK, re@Qke@9∧;O←,ε"εNβH∃↓Q@εE*Ti$ (∞α MOVEI @(αa"¬$hP& %9λ
EλεabQd ∂G
λ∧∪≠∨Y
A(YM(Q(R$p∞∨↔ ∧π<αsvr[8∧ tabh JAα+;@',ε#!∧j&'⊃P*⊗$∪αK ;IpεAS@ ∧ε
ε∞XMP0p∀↓CYX}4⊂λ%↓∧RJNQ¬*NJ"u%m↓¬K↔MDλλl≥≠λ⊂~\β`dOLAQ←←αY0⊂@ ¬*#⊂d∧SE: SE@)hA(@0HI`≤@Xπp⊂@∀X 99ph ⊂M z∧R¬¬AP@!α@
;lA∪LAβ;∃βπα,Rπ<z0↔→β the US@%!_
-Dλλ.yzvt[3P;rH0p`%∃C@∪@∀λ
mmβ{P )t ∂fAα β#WvY0⊂HαC"JZtR∪Jπ@4ri~⊃(∃*:R∪Ra⊃(λλπd¬us@PAQC@4∧Rε⊗βx
4λ0P ∃SRHUNK a`≥Hαβ¬αN,r∩$Q!∩α¬99∃∧rλ∧q)@ ∧A +AS@9∧¬w,→<@⊂≥4π mai`
AkMJA←L↓KSiQ∃`λ (αB(∧∧λ∩TJ:α⊂ ∀FAH '
4⊂λ&BαZ4DRλk¬αe8~c(hαB4
Zp∧⊂#⊗(⊂R
λ∧∪ "≥!αVNα)∧`)b"(∧∧∞pp∀→quP )t o`+β 4(~ uα∧hε∀¬J@εE∧SdπVE T,A 7IKike8A`≠πdεV*ε≥`λ
Eλ≠[nD⊂#"A~∃0 d∩⊂# _P,RS@(β(4(~ u∧Rλ∧↓Q@εE.BDXEND @∨↓∪
≤A!_
.IxphPc\βPsi@!P h∀ ¬ND↓β! @⊂∧∧
¬∧4α`)PssHP⊂∞NCL¬εb@9_
∞h6"αth9d6hP*
⊃3Q∧λ4⊂λ_H i_i⊃h∧@∀AM+¬&@ ∧¬∀5Q4J8(⊂ "Uα1 APRVCK↓%⊗Y ∧∧`*Q0"T)bP'∀ ¬CON@εA:α(U &(⊃q)@)lf@ GENCY0 GENSY2 GEH
'K→α<Yj5K
λxT`*v-`⊂⊃bg ∪Y4∧A∂9'2j~(~∃',∩RRA→d9βg!Vλ∃'!gSαC _A¬!!≥⊂X@@*
αB,h@∧
Q0"T)bV⊂∪αRE@-∃%'
X↓_
J⊗≤z0∀_Q!P@)PssH] TDX¬αA⊂¬E⊂Hα.s
:αa) - DESTRUCTIP
→dAπβ)∃_
εR*α2&NαJ0hT~
∧,@Q∞B)Yβk"dH)⊗↔ T("g"U'!gSαC ;LSP¬$α↓5α∞
"⊗ 4~HR∧∃α(⊂i@h,dg⊃FA∧e∃dh"P∃⊗# f∀bBE∧T'h⊂(!
APP2: AK@∃
↓(Y¬%∃)∀4PJB>A¬↓2∧Q!∀U,XλR∧
H~¬β⊂β"B*9p4⊃$
KPThZβ"B$
∃0 d∩⊂(⊗ T)+!eBDBE T(→P~ PUSHJ P _]9β⊂≡h53
E%⊃∪@8R4TjD⊂∧g)U⊂ ∂F ,NCON@εA&~↓∀UYZ∧*∧∃H%∀5∩HAQ@∧fgUα@
A∧αb∧4λLRJNQ∧
BAHhP4(Q%dd≤βsPg∧e*fT ¬ A@¬%$P$%:α8T*∧~
β_h%id@Phλ@: IOVEI TT0QαR∩$p∞NV∃⊃↓I↓@¬$`(pπg!JF@
.NAH
ε@⊂π LE*+"∧αβ
∃
E εE∧R*f`⊂E @ _]9∞ 44∧c!∧d ∩RX∧A)(αa""α#"A→U34 D∃∃⊗αNCNC2λ
∧∪!%%~AλXQλR4⊂λ&B⎇α)αA`h ⊂@ ¬↔'⊂dεC &h∪⊃%%4A∧XQQ(R4PJB>BRαA04Ph ⊂@ ¬↔ T("g"∞α JUMP@
Aααb∃∀X¬∩A↔tp
a∀⊂→⊂∀
h "Sα@λB~(∪≠∨-∃∩AεY¬$bα∩m
∪%'PA∪≥πPA≠+≥!α
∃∧RV&B*α¬"
∀*R(Q!∀l@uQ(λ~LP ⊗⊂D@]fUij⊂)PhεE T,@ -↓'
A5β↔∂¬1∪'(~)β! BβP&"2∃Qα¬1D
IJ¬Hh &BαZ4DRλ¬D≤@sP FB∧d!)⊗α B,(A)¬
HRRM↓αPAε$~∀&lzR*λ5Dλh!→¬∃∃$λ∃∪∀∃E∧
∪(⊃⊂hPα2U)Z∪H⊂*&P+⊂*
#"H~L4Q*ILC"J:αa)Z∞∧fgk⊃dP F
i_DCE POPJ @,
~∀4⊃%4*JN∃PJN.&∧)αY:∃~⊗@%]~V
Iβ ↓5ααZ4-~λ⊃D%⊂k∃¬H@εE∧H(*`∪HJ P,APRVCK
∪≠=(
ε%∧→1"¬Hh &6⎇2⊗%αλb0∀LA⊃∪@:Q0"T)biP⊂P IST BY CH∂≥≤J2:λZα∧
λ9u¬Hβ"THZβ_]∧R*fh"H!PCPMPJ 8εA>2αR"∃¬"6Aαd*Z,D ∀b¬(Zd-∃8T∧m∀HZ hP→ E∃Rλ%BD~⊃Q M¬X9∧R¬¬K∧≤@sP FB∧d))⊗⊂!V∀⊂TFE∧R))j∀"k_FBεA h∀+!e]αh*id∩⊂(⊗)Pk(→DB]`h(⊃g"↔i⊃i"a)QP i#Ufbg*λ!d"aRdg#FB)"k~∞∧h*iR%⊂(⊗∪& ij⊂eDD]Sjij⊂∀`k"P∃*⊗"ε∀⊂#'iλ&`g,H(" aQiP+d∩a`λ
JRST REVER ; CALL REFERSE/NREVERSE
JRSTRSTX3
¬
NREVERSE: MOVEI @,NIL ;S@+ $@b@4A%4*JN∃∧ α2&≥!αVNLr≥αJ∧bε∞⊃=_4*:∀*ε <h7 LUYZ∧*∧∃H%∀-I!∪M≥X*"β∩¬TαDu(X4|@Ph⊗∧*/* hqsPd¬∪P "U ¬RSE X) Y)
SKIPE V.RSET ; -USES A,B,C,T$F
λ PUS@J P,APRVC@⊗~)→%3 `⊂Lλ*%@$⊂k
λ∃"".iYβ&,PP NSTRUCTIK@≥&↓!⊗I∧~⊗"D⊂λ'gf@!
∪⊃I%~A∧0QαR~(∪∃+≠A
AεY
!∨!∀4⊂∪⊃%I0 α bB
$4PJ"JJhα¬1α~H4(εU*6B∃∧⊃2∞J-"(4(LBJJi∧ 1" Hh(&"∃∩5α
bB $Q!∀U,Z b∧
Ij$-L#"A→TTu∧λTQ5 !"C"AQC"C!!"C"J:0U∃ A1q3J;3(⊃JYPq∩)YC"C!(q3Tk→,B2JY4∪H
E⊃q3J;,#"Hx3Tv&πB33jh(⊃∃¬Kl$εvλyU37!↔tp
S" i"λ#bg)Vfb`∩
MOVEI B, ∧`∩∩m/∪→_↓∪⊂~∞α(Tl,jD∧e,XZ$L≤,0]
CAMGE T,[310000,,]
λ JRST GENSY6
JRST GENSY3
CENSY52 TLNN TT,S@24∀∪∃+5!≤Aα1∂≥'dp~(LRNAα"bε"~3
⊂$λL"B ααJBe[4Vβ;β¬ED<uY[PhPα2TJ:λ⊃q)@)lXεBβ≥fbfP i⊂)Sbfa"T⊂)fbShP&bShY⊂&QdhYP∪bfhJλ&bfa∀⊂"bfP→⊂&bSa→P T→ i"U%⊂&bSa~⊂)Ua)j SP¬&AαA',∩MEα≥*αNR@∧¬≥*9βα¬8¬0J:∞λ∀jXTu~H)ja)U≠⊂!i⊃h!⊂)T)'cICE
SUBTTL IEMBER, MEIQ, SQBST, DELQ(λA ∃→)
0@U 1"P⊃↓T"⊗2⊗$(4(∀Tj⊗&
-⊃`⊂H⊃⊃∪M4q4dλ+⊂Cλ~L+⊂*&P+∃¬J∃β"J9130HZNNB)YuQ2$λ4L ⊗
TDDNβ FOR BENEFIT OF DELEP
@4⊂∪≠∨Y∩AβHeαXQλR~∧∪)' A(αb2εR|h4(∀ %∃≥D T,L*!PE≤β13*↔@∧ibU-&P&Qdk∧DNh¬SES A,B1(Y6-~QαBα(U≤-*hR∧
&⊂λ~LP ≥TbbP#U)h!YCE PUSH @,@∧⊂∀)XTm'!∃≤\zJB∧∩IJ0hPα(∩J*uλ∪(YαhZεB∧d&)⊗α T,(@∧R4PJ≤Y`λλ∃α*εEαP
RST EEMQ3
HRRM↓ 26,jP (αB2
*T¬⊂!∀!∀FB∧e))U⊂"bfTY
MEH"fh∪!∨!$A @1λh ⊂L**5"¬8∧∀IXlC"IX34%π∧e*fT P!,MEMQ∪
∪∃M A(Y5⊂⊗F-⊂4(→*%≥α XTm!Q hTXYT*L¬∧iQh-&@ MEMV
λ PESH P,B
MEM@20∀∪M↔⊂≡R αεIJλb2L4PIα*J≥!α6⊗l⊃P$λLj>@4Tλ∩d
&⊃PPL J%B∧%E∧
∪(⊃⊂hPα4∃*9⊂¬⊂("hj`S∧@
JUIPN↓αQ6,j∪_Q!∀E∃)Pλλ~LP ⊗∪bfcεBα HBRX∧Aβ$β∩¬ "α⊂4F(*#"A→TTu∧ 130F!αA&bSa→P~ POPI P,1
AR2AREP )Ph ⊂LYzd,Jλ⊂¬λ4LP%⊃ ¬∧h∪βP@∀A@X⊂∀)XTl∪G!∀U,X∧⊃$λ4LP%I130F1 B2J:λ⊃⊗∪bf`⊃ERλ
(Lj0≥Q(⊂*&P+⊂AQ@∧e)∀h∧ MEMB2
~∀lp
mαα:T*u∩5
Zα"P H εOR↓#+β0A∨ππU%%≥
&A∨_A∧A∪8Aε@8hP4*NαX%≥∞B2J:λ⊂
,P@ 2tj,$¬]~V
Iβ_4(_[∧9λ⊂ ⊗⊂β
α JSP D1!∩IiTXh!_UD≤αλ⊂%Hc"B*9p4⊂$λ4L ⊗⊂F@
SU@¬&aαh∩A'↔%!αAααbεIDhP%↓α≤Z&B¬∧
IJ¬d⊂4(∀∧α∧lzhR∧∩H~#∀λβ"B*
4r⊂∀⊗!FEαdgk"H V!FBα P@+M⊃∀Aαb⊗FV`4(~ uᬬH0hPα2U)Z⊂π⊂ K i_i⊃h∧@∀~)' ⊗
≠ `⊂M99u%"λ5De_⊃↔44|βkλ
I⊂∧iP∩dεCLUD@&A!+⊂~.~λ4(∀ %∃≥D
5¬∀xpaQ@∧h*Td⊂ ⊂,@ε~*L20∩∧α∪RiIqk⊗aQ@∧j&∪α@
A%!2"i1P@!(∩TJ:α⊂ ∪U@¬')⊂4⊂
`+αh⊃)@ ∧ o@_A∪
≤αα":.dz≥ Q!∀De+$∧5α⊂λC) 0↔αα↓∃∧→~"$⊂q3 Aα@
PUS@⊃∀↓ Y',∩MB∧hP&⊗@λ9α∧
E
αHhαB2
*T¬⊂!K∀ TFBα P@+M⊃∀AαbN@,*6∧λhαB4 @h⊂ ⊗⊂αλ
(LRJNQ¬B≤@qP FB∧¬∃∪→_ α i4d|uK0hPβ"TjXTp
$∞∧fgk⊃dP F
!P
PUCHJ P,USRHNP 8ππQKα≠ ~εmxDY:0↔→β a USER Exp K]⊃K@AQU]V~∀%∃+≠!∀A(Y'U¬'(p4∀∪!∨@A Iα4∀∪'βY
Aβ$DAβ$e∧~∀β!U'⊂A 10∞NV∃~!BthP&BV≤AαA2λh(&B-~!αAeZFNV∃~Rt∀PJBVNBαA2ε∪λ4(~
U≤B
¬D
∪(⊃PPLYzddJ
@εA ¬∧l⊂h∧ CEL¬↓∩∩$@@@WMK]HAQQJAMβ∪? βλ∧¬≥0Tu∧
9<|l≤βrFE∀ha)d≥∧i)U)⊂ i P iFA∧h∪h
P, ∀~)' ⊗
≥!ah→Yu (αdP)_@ ;R GETS @≠β`A'∪5∀A∪≤A]≠% &4⊂@@@I ∪Am→'!¬⊃1"R ¬∃kαJ→¬,t6↓P@Mλ¬4i∧⊃R∀¬J@".h9β*)∃βH@∪→∀Aπ∨!e∪∃∞~(∪!+≤AαA2∪9@$%]"⊗ -∧
¬%∩λ¬r →⊃(⊂iz⊗23Hq"B3)zQ(∃
E∀C"A→∀r
J#!↓4∃4i H⊂λ→⊂⊃3I1 .th~Q0 P⊂i_V T→ FEαh*adλ(∩ FB)ja)U~]∧iSicbP∀⊗∀#,∀∀BE∧H%))jλ)ja)U≠αE∧Pb"⊂)⊗Y∀(
FE∧fSi"P)∀)∀DB]cbjλ+gi"λ'c⊂'T$cdg⊂f⊂$*S%FE∧R))-&H)⊗⊗HJ(⊂ 8εAβ≥⊂A%≠∃≠¬⊂∧¬∀B xb∧MAQ LDJ+"∧~J!PPL8→∀`$⊂k&⊃"B(
4r∩D
∀u(*l⊂"!↔pst∀⊃∩β!!10!R⊂!V⊗LT(∀FB∧a`dSα C,-1
PUSHJ P,SUBS0A ;COPY RH
MOVE R,(FXP)
λ ADD R,(P) ;POINTER TO N@.A
≠!2~(∪⊃%%4AεXQHR∩αw%_
NRb1αJ@h(&6⎇2∃α biE"AHh(&"∀b5α bBI$$KZ& 5:H∀db IhPα2TJ:λ∀u(*u
#!!"C"J:0TuεgB4∪j∧∀⊂aQB4∪j (⊂ε!"B4 z∩(⊃K
#!+,h⊃-lλ≠yD 1SH Rs∪huβ"C!(tQ5 'C"Tj
Sqlg!33uHT⊂+⊂aQB4∪j H⊂↓QC"@↓Gq⊃3
∀⊃⊃3λZ⊃(⊃ Jh⊃ JH⊃ J(HH3∀(¬h⊃3⊃*H(∪1)Z(∪1)Z,#"AQQ⊃3
↔B4ri~⊂(⊂EKts1)Z7".jZq4hλ∃⊂K⊂eJ∃∃¬D∪54jD∀p5HT⊂4LH∀(∀j900tIQ"Q⊃)H5⊃.A→3uQ)∀⊂K∀iX30Q*!.u4hZh⊂+λ¬⊂k⊂*&+⊂4F(+∃
Jβ"B)YuQ2$
∃&⊃,s5*:λ∀p*h(∀C∧
q1(λxt Rε⊃"B0h→3H∃¬K⊂k,AQ@(∩J*uλ⊃ Jc"A_p31$
⊗⊂eVc"B$ TTu∧λ∪∃⊃*!"B4 zλ∀λ⊃"B2J:λ∃λi∃∀rj↓ B( *TuλλI∃c!!2Tt∧
∩1I≠β"Q JnB)YuQ3$
∃⊃ J⊂c"A→3uQ)∀∃∃¬
#"A→3uQ$λ ⊂C!!4rr*λ(⊂K¬
λ#"HI∃NA→∀TS$λK
∃
E#"B)YuQ3$
∃∃λ_S∃,!QB33jh(⊂+¬V*∀
!QB4sj8q(⊃ J⊂c"A→TTu∧λ⊃∃!Q@4∃*9∩H∀¬E⊃
"'9αbfa⊃i⊂'iλ&bfhCEe*Sh"P K"&*_CEd)∀-⊂!⊗
TFEαiedh∪⊂**⊗∪bfkεB∧fgk⊃P**ε∃ a&*LFE∧e∀)j⊂"∪*→εEβE"&*]∧h'T⊂(⊗ CEe)∀j⊂('T_eεEβE↔""S(]∧iRdh P⊃⊗-ifQfhnFB↔""f⊃h"]εB∧P&gU"dP"&bfa⊃iεE∧T*id⊂∀⊗ FEαh*adλ(⊗!εB∧fgk⊃dP"*⊗XFEαfgk"H!⊗"εB∧e))U⊂"&*FEεE∪bfh]αiedh⊃P+↔)∀bjεEαP%))U⊂)fbShFE&QdhX]αe*fh⊃P!⊗#⊂f)bPλ⊂⊂⊂↔∀bbP*∩)!`aα]i"hUdi"iH&bfhLP(!"Tbi+"TP**εB∧d&)⊗⊂*⊗∀⊂∀@
AAINT,(A)
∩A)%'(A %)∀4∀∪⊃%I0 α bB $Q!∀U∃:@∧l,Z⊗⊂hPQ!P@c\h¬3*∧∃⊗4λZλ⊂
,T'$f⊂ ilfa∪d∧P NMCC ↓_
V6≤B-αB$b0∀\αH∀λI⊃S2d
⊃∪∪IVλ∪S)6(⊂λ'∪eY⊂!T ∧@→≥-∀⊂∀(hRN@,*JD`LiIt
∀λλi4∧ ⊗λ'*fa⊃i(⊗⊂∃,h"h⊂ g"λ("&'∪eP!'Uj NE
~∃%% A≥U≠ @1eZ~&Bα¬D4dx~EαdβQ3(λ4T↔( 5∀k¬KqRαh K⊃S¬HT∧∃c∪∃a'.CE' ∃MP: SKOP (A∧Y¬∪)L~∀&U∩NQα4
2N∀KZJ⊗R-∩1α~Laα&→∧r>Aα|1αα⊗≤JJε⊃¬"fB∀hP&&>4)αRQbB¬$%]∩⊗@%X∧SD
λ∩1D
p⊂5∧
q(∃h→U@⊂⊂d∧SO, TT GEP &AQ⊃∃αu*6
⊗α AQ@∧e)∀h∧ DRUE ;IF NEM@ARP GETS A BIGLUM, TT GETS DHE CORRAC@(ααN&≡p¬B∧i~t
Hβ"UλZS23AQ@εE*⊗h"h≥αe*fh⊃P V*⊗h'$fαDY`∪U@R 1ZA+≤*Mα≡tbeα∧hP&J>"α¬1⊗≤*≡2>8h &"∃∩`∩∧∃J5"D∃⊃PPM z∧R¬¬APU%~ dLC!→T⎇∀Y∀∧
@∀4v)XSsβ!∧h'h∩⊂(⊗εB∧¬∀KM3⊂⊗
|bAh∧HI`≥≥X*"βλβ"B)*tλ∃¬Jt⊂5 @d¬¬
JRST BALSE
∀∪)%'(AQ%+
~(~∀4Ph ⊂@ ¬εE∪αMCK⊂8∧∪!∨@A @2λh":Vl~"-hHH%n∞D*≤Zλ¬∪d
q1(
I⊂5⊂∃βE HAT@
Aααα0∃,X(U∩bλ¬∩λYβ⊂"l∩h∧
IF@
A≥¬%∪)⊂αb`_h((r(L*:α¬"β⊃S
Jp¬`⊂
묬∞H%∃' APY≥-≤Z&@4T∩≥⊂%¬α6B$
α`hαB( (Psα!⊃,¬c S&)P$SαTO PDLFKJ
P~∩$p∞⊗: α0≤2 _d*∧βP4I~⊂∧εE∩c'⊂'⊂i$j$⊂+`i∪α [NUMC@K∨ PDLNMK?]
λPDLNKJ2 CAML A,NPDLL ;PDLNKJ 9 @!⊃→≥≠⊗0A)↓8A!∨!(A @0hP%α∞j2¬αλb0∃∧IIhPα(λ
t∩H
¬β"B)YuQ2$
⊂t z⊂C"Jλ⊃∪S)7@0p)Yλ⊂# @("&&αDXFIRST A QUICK AND @IRTY CHE@π⊗~∀$Aπβ≠1
AαY9! 2@h %↓∧RJNQαBQ$∀Uα∩2~k↓`&J⎇!α¬1m~⊗≡∩|8$%NtzP~¬It∧DX92¬$λT¬≥"λYe%∃⊃Q"ααλ:∧,≥λ∧Sd 3Q∀I@h∧
HL@_APY'(Q∧R~∧∪I≠ ⊃αλ¬E≤,yIt8h$∧α∧tz
$hh!~Ddtd
Bb¬λIDdh⊃↔5≤\~∧∧L4d
∧$b jTl∀X∧C!↓(∩TJ:λ
∃¬⊃ B4
Zrλ∀¬Jβ"SIYl.B)Yβk"fH**⊗(∪&eXDB]bd(⊃aj)P∃,h"P⊂$j)P∩e⊂ ∀
MOVE TT(A)
HRRI T,PNMK2 ;IUST SAVE TT
TDNN T,FL ;FIGURE OUT WHICH KIND OF CONS TO DO
JRST FXCONS ; % FIXN@+4~∀β∃I'(A
1π⊂≡:_H%m↓jα~2>u*44(hRB:6[⊃`⊂LYzd*¬JEE∧tY6⊂HK8(U≥$z(R¬%Dλd⎇∩
λDdtY1PT≥λID`)rNB* t∩H
¬∀⊃∪ IpC"@;GCPRO %G@π!%≡↓∂π!⊂ε∩∧ppλ)⊂⊂∞GCPRO .GCP@$β)α<8∧∀F4⊃pt
&λ⊃pj)(⊃hi"f⊂⊃a`OOK S@1!β'!∧
R6"≤Aα
:E~!αεE~!EαBN!I∧r& $α⊂ dλ)l$)R_⊂ ∪XHS@→&4⊂λ (αTu(**&∧Qah ∩O AND↓'1"
~ (αC"Hxt⊂ 'Nα JUMP@
A∧αb≡∞J,`4(_8∀L@H⊂@⊗∀d¬∩∩m'π∨9λAβ%≤@p∃↓βt∧l,→j2∧|βS⊗$λβaf'SβK
JRS@(αα≡∞IytXhαI1hh)']αd¬OVEI ARDXb$KZ6@-8¬⊂∀`k"P∀⊗#⊂⊗H εOR↓
β'→=βλ~∃≥∞BIλπ L≤→→B∧
I→cαmα∪∪i@*fFEαP!`dS ¬ A1∪⊂→A]B"&:αYRkλβ"B$∧∀rr*λ εE∧H⊂⊂ ⊂OPJ @ 0~∀&≤Z0≥∃λ⊂%Jv#"A∀⊂¬))U⊂#ah∀→
JUM@!1
Aβ$β 2∞B⎇α( (!→∧e∃αH∃¬E⊂*#!∧fgk∀dP ∀T,SY.C@π⊂~@J;∩d⎇H1∪@8pπfh∩d∧ED↓∞ <HT∧`(αbb)H&bP!∩hεE∧SdπV@'$A⊃J;∩`*∃0 ∧B]h ∃RE S@35↓∨λA →∨π⊗αα∀MAQ M⊃∪SDλλε∀*
F@
IH∂%~ααRQE
BHhαB4 @h
P,λ
*<~BIIPJ6 =hT∧
∪(⊂λ⊃ ∧]iPhεE AR@∞~∀%!+'⊃(A @2≥B"N∧∧α!↔pε"`Uα@&A!β'"\*eα→`λλAα@
MLπ ~∃∧ 2εI∀λ4(→Yu (αP ∀1β$b∩$p∞@#T∧λπWH⊂ "S ¬ASE, ELSE P@%=)⊗∞αAPBtx:¬∀{!→%,@4⊃(λ∃α!`⊂OPJ~∀%→∨π↔$~∀&¬*N!ααb∧%@8∧∪λ_q0h @i$c@ ARG OL∧A! 0~∀&¬*N"$
αe≤~kβ(Kαp `Uα@&A9+⊂∃α~L4(M~.&B*α↓2≡≥αNεHhP%α**5"αhx5¬∪QQ LLzhTJ∧∃IdL@Q!∀l@uQ(
Jλε&'TbcεEα`b"$H**⊗_CE LSH TT-1¬
PUSHJ P →≠-→'β$4⊂∪≠∨Y
AλX4dQ
⊃@R∩αwI')∨I
A⊃βM⊃↔2↓∪⊂→α h(&6⎇2⊗%α⊂b≡∞Bα8∃⊂H%ht
¬&W LlzhR¬"HA⊂K\~(r∧|d
αb∧→hB¬≤~hU~∧h¬3$λ0th yβ⊂#,∀∧@
LSH T-1¬
IDAV T,DOSEF~∀%!+'⊂αα~bAe"P4!→T⎇∀Y∀∧
bλk¬αHβ"B*
4r∩D
⊂⊂*84J⊂E⊃"B4jXH⊃V
¬∀Ml¬6 εE∧SdπVEM R,-LQ¬ "αH4(→Yu (αP!,A
α MOP
A∧XQ R$∩w∂%%∞Aβ%≤A∨≤A@~∀&¬*N!ααb⊂H↔:4
Q(∀
)s∩4jD⊂U0i85β"A~pr4 D )∀⊃,(∀FB∧P%)∀h⊂#aT&_DDNcgP)⊃d∧EASE @∪↓
→β∞↓'≡A'∃(\~∀%!+'⊃(A I≠∃≠¬⊂h(&*,jB9αλb≡∞B⊃_$%NM"⊗ *λ→E∀_K∩∧Ld
¬∀⎇HX5$MhT∧∃,98U h!∀¬≤\~λrαkEλeEα⊃Q LU*:B∧<:
# h!→T⎇4Tλ∩bk∃
αHH↔9u∀Ly→dbλ~$8h!→T⎇∀Tλ"bE¬⊃⊂K\9ye≤,D tu$t
¬∀|I~5"∧*Y4- Q!∃¬-9 "¬αH9t`*c"B)YuQ(
%(jλk∀
#!↓2∀TK∧⊃⊃h:∀p4AQ@∧e)T⊂*⊗↔∀j'i_βE#ah∀→]∧d∪))⊂ K∀ TFB!ah)
≥∧h*Td!⊂())j,
FE∧iUa⊂ ⊗∀≠X∃YβEjg∪%h'h∩∧EεEβE
λ ¬
GARL1: CALLF 2,QDALETE ↓;GARELEASE
IOVE R,-LQ¬ "αH4(→
%∃RλAD<≥λ∧p*!"B2J:λ⊃⊗αSTOR0λ
(LRJNQ∧:εBI h ⊂hαQpj(3∞B*H⊗P ⊂⊂i_V T_@
GAH@∨∨,t∪≠∨Y_
%α
⊃E #⊃Q M≤9~∧b∧x:¬≤
!Q LU*:B∧∀→J4(h!→%∃≥Dλt
¬&⊃P@HαC"AQ@εEεB)l$ Td≥∧h∃i`⊂(!c$lDY`∪U@¬$@Bα↓5αh8∀dd_)D(h!~¬-≤∧
αdB.th~Q(⊃D¬(⊂ bQP""c∃e
PUSHJ P$SXHS@ 4⊂∪≠∨Y
A)(αb⊂ (αB4 Zλ⊂λa ¬∧h∪h
P, ∀~)β!6E~!h∧HI`≤D~9α∧
λ
$L@Uλ∪H→αbFE⊂αNHCH8 SETX∧A(X$∩w"
~!α¬∧∩&≡hYRαE8→T*∧→Htm∀~I∧jHβ"B*9p4⊂$λK⊂#!λ2⊂rε↔@∧P$∀)(
B,(B)
λ∧∪∃+5!∃α⊂¬DE9AQ@∧d&∀-⊂!V
!∀FEαl ∂RT, ⊃ε$~∀&U∩N@"λ→¬≤C⊃Q$E9G∧f)dλ*⊂-D∩w
∨HAβ)∨5&P⊃ααI∧M~ →e≥4Q4d
⊂∧ jλ* λE HASHKEY IS P@∨'%)∪-
4⊂λ&*∃~Q↓ααJBHhαC"I@$f$)R≥ MOT¬∃α ¬E@7⊂4pi→(⊂∞'∩d∧\>←-1P~∩m⊃β'⊂αα0∀LDλd
≥IK⊂hPα4∪j H⊂λ⊗βE
SXHSH@pλ&*,jB*λ⊂ @$f$)R∧@]i⊃h∧U@%9&A&[∃1!$OLA⊃β'!↔"A%_ α⊂hP&"J∃QαRQdλ4(→J4B¬J@¬Zq1s @cFE∧SdπVE TT,ST(TT)
λ∧e ∪_A∃%'PAA%!% %8ε∩
9∞+∀)I4qα%@)bbP∀h"$iT∧¬∃'a⊃'2≠P&"J∃Qα 1D $4!~¬-≤αλ∀¬H@εE∧R&)-⊂⊂T⊂λA$~∀&¬*N"$
αe≥
4CQ!∃∀⎇DλBbk⊃Q M¬X∧r∧λT∧ ⊂,Dλ
(Mα0≥αλ¬DλhαB4
Zp∧%⊂∀⊗)`_HSH0
PGP FXP,T
∪β⊃λAλYP~∀&∧zB)αα¬@hPβ"@↓Gtp$∀d≤⊂)V$)d7 SXHSH4 @'e≠⊃'⊂ααNbλ∧rεT∀p$∀d≠⊂)V$)d9 SXHSD1 @'a⊃'λdααNbλ∧pf∀∀p$∀m_P)V$)P⊃A SXHHS0 @'a⊃&bAM1⊃&@⊃αNbE→F_Q!P@*v∩∀iπ∞B3)@hεM D,(A) 8π
→∨9+∩4PJB>BRαA04Ph ∃≥
4C;!→T⎇Q(⊃¬E⊂*"'c$l'∃d@
POPJ P,
λ¬∪
≤αα∀LyjTjE1Q%≥Dα⊂ d
≥ HRRZ A0QαR∩m
&≡u*44!→%≥αλ¬∃¬HSR∀i↓α@
MMP
A⊂Y(~∀%!∨!∀↓ X~∃t∩∩`.,r⊃αxd∧L4dλ$L<h¬3!Q@εEεBαSYMHSH:
SX@⊃≤AUh→ E∃Rλ@¬λ*".j;30SiAα@
HRRP∀A∧XbQλ$~∀&U~AαR ¬D
∧β2∀i↓α@
SKIPA↓λY(~)'1"α9β#Pα33j@ ¬I D,(A)
λ∧∪!∨A∀A X$∩w%β9 ∨5bαεJJ
H4(Q!P@*v∩∀iπ,B4k ∀s∀a⊃,¬f$ThεE∧Tl λ@' h$↔8dMDβP
fCE SXHS@⊂@@H%n~dz0∃,QQ$$∩A~5DE8@!⊃,¬b'Ua&"FBαCX$ SX@⊃≤→D$↔84`9αh&"V∧@
DX$ S@1!'4b∩$p∞∩Vα D-@Q($: ~;∧E≤∧¬α!↔pR1iJ3#"A~v∩∀iε ".j;30SiA ¬$' ⊂⊂!"T ¬ATHNKLOG+1, SX@⊃≠
∧%@9
Td]1Q M≥
4C0α".j(3Q∪iQ B4k ∀r
A⊃,p4J(4#"I_SHEZv∩∀iπ+3U~⊃4k∧
p4SDutSi@ π LEL@∂)⊂ααRε
d*t4λhP4*&4qαα
4bε≥∩Xh"NbE~⊃E@!→T⎇Q(⊃¬F*⊂ ∀CE%`DPi`⊂"_XεE↔D@ ;EL¬⊃α|1α&~p∧∧$∀iH∀8h)_db∧H(ddu85D4H_reXQ*5DE8B#@!01⊃∧λλε∀ JF@
PMP@∀A@X⊂∀+Q⊂K\YhB∧|d ∀4rλH$4d_q4;⊃S⊂(q"C"I_SH⊂kλS⊂1eKc"Tk ∀pl'∧fgk∀P"⊗_J TFEαe))jλ)l$)Q→
] 0↔9λA∂↓∪
≤A
1
→β≤~∀4TJ~9α%B~2ε8bl4*≥B"NiP&6>4)α⊃F5∧
HQ)4λL~9α∧"F⊗hP~:T∩∧EF"D
⊃Q$\λ→Yu$
AC
D∃⊃PT\⊃_∃≤B
ECQ)4λM z"∧"JAPT\α2s↓≠∪tHλE*⊂%⊃"B2J*uλ∀k ∀qAQTεDDNbg"⊂∪c⊂$c∪⊂",#∪ cFEβE$c'λ$'%f∪cV-FB)l$)L`X
PUSH P,A
PUSHJ P,USRHP@ ;Is this aUSEBHUNK?
JUMPE DSXHC1
↓PUSH P,YSXHHS0]
PUCH P$A
PUSH P,[QSXHASH]
MOVNI T,2
↓XCT SENDI~∃M1⊃↓≠↓h&6⎇2∃α⊃bB¬$∀PJ*JN ∧¬∧⎇λ→ hPβ"Tk ∀hλ@: IOVSI T,-1
α 2DIF [LSH T$(TT)U 1#⊃+≥,`∩(LBJJ%¬!1"¬Hh &B-~!αAe 4(ε¬*N!α5BA2I;4*NDBMF PJ"2JRα¬1α ¬⊂hPα4∃*9⊂H∀¬Jv∩∀iεβ"B*)uλ⊃¬F!"B(_⊃∪ λE
⊃V
¬ εE∧Sek"P∃⊗⊂(∀CE HRRZ A(T)
PUCHJ P,SXHSH⊂
∪β⊃λAλX!
1 R4⊂∪%∨PA@1⊂h &6⎇2⊗%α"a"5λ¬⊂hPα33jHαP",(P ∩~(∪β∨¬) A(YM1⊃&@04(→Yu$3(∃¬E∀
#!!2TTjD∀r∩
60C"AQTr∩
61JB*:0H∀¬JMl
f!"B2J*uλ∀ Z⊗⊃∩AQTεDDNβENDLπA∪→_A"tZ2>≤hP4(1nX~∧
∧βs4d 04⊂*F(∪0*λ5@⊂∪`h j∞F@
SP¬)Q_∪≠βA!∪≥∞αα~V:≥"& <βPc!↓α@
;;8εA6
αεByZ2∧U3PjI3sC!πnj`¬ 04⊂*Iq4hλiJ(⊂h→⊂ε)P⊃'⊂ ∩EP@β)∃ →2X↓
β %_
: ~B¬≥X84-≥9~d(hαN`≥Nβ ATOMS FROH
A$B∃α∞-∩Jε: α0≤∀~*$
Jd∧∧`:∃∩3i@ f⊂)Qa`∂ND ARG
λ;;+↓'!π%
∪~α0≤∀~*$
J¬ U-≥Dλ$*∧∀
4
∩∃∃bα¬(ZE-∀h∧h @$f↔εBα ∃≠¬!β)∨5&t4PJ6 =hY∩∧λε(fPh j'SiFE∧Pdπ@∃∞ααQ2Mα~t`(3∪thQ B0)@e&⊂*)Y+g⊂d ∂SE
∪'-∪!
AP∩∩%]~⊗∞yhB∧
(pλλHαc jS*)P*∪β
α PUSH↓ Y-∨ β%%βd∩vAπU%%≥PA∨¬βI%β $hP&&>4*%αR ¬BD≤→IBβ
E⊃P@!2⊂S T∃∃⊗XT ∀CE PUSH @,R70
PU@' A¬ "α¬E@9βa*)Rm(
;L¬+≠¬∃$A>2ααV∞\*RL4TjεBε ε∪@!4sthx(⊂
*∀# _P) ∩wQ(A∂Q&A¬+
↔(A9+⊂⊗
-⊂4(∀ %∃≥D T
∧~@∞!Q@∧d)∀-⊂ iT∧ ~BαBA$Q!∃∀⎇D
E"bV⊃P@L J%B∧∃H¬%%8~"D
&⊂
!↔qQ5λ→λ⊂U(9q1β!↓4rr*λβbP*∃∧@
HRRZ A,@DTSAR(AR1)
IOVEM A,(P)∩∩m'β-
↓¬+π↔∃(~*l
BεQ⊃P&N.Mα1α bBA$⊃↔4l
λ8∃∩∧Izt`$⊂U0i85β"A∀⊂TTjD⊃04λ~#"A→∪∀VDλ+
⊂E⊃ ¬∧d∀)(
B,(B)
λ MOVEH
A∧αa"A⊃Q MD8@λ¬VJ⊂
!⊃,¬a`S&⊂ ∪UPP@→∪∃λA
,r≥⊂∧ggβE JRSPλA≠¬!β(d4⊂λ$)X∃∧
G↔ M≥X λλk∀∀F@X⊂! ;E@1%(XA∀*RVJtJ0∀h∪R)A ¬∧iUa⊂ ⊂,R70+L~∀&U∩NAα4
2N∀hP1nX~∧dM8@λ X4⊂p*$ ∪0*∧⊂ε`h⊂β @≠βA∞ <βH X4⊂p)@⊂
APL0 MAPL1 MAPD1B
~∀lp
mααλDb¬8¬∀JXu∃4HT⊃StD 04λ
84R1*1"NfgDV⊗)⊃h∧U@%8∩∩`.d*~QαD
22LOBBER THIS WITH A JRST
9;; ;AF L@-HA∂>Lr≥αRzαα*λε⊂jDq1β∧ Pp3 D∪Q1(D⊃Su∧λQ(∃ λαi"FB∧A&`T& ij∞α JSP TT,MAPL0 8ππ>$)↓@4TjεB∞
⊃`⊂L*:α¬%EIT
∧F↓⊂K\9xD*β⊃Q"$l~π LU8∧¬%"β∪0* α"'a`∂DE 2~∃5β!ε@PJ*NA¬"Q2⊗
α1@$KZε <HTβ_h)X∃∧≤y`∞A→Ttλ
Jλε&`T&_∧DNβC@∨ ∀@h~∀⊃≠β!π¬_ h→*5α¬J@ X4∪↓⊃,¬agQ ¬ *4⊃≠β!0`t&z*<T
Bdl~
t`( ∧D]S'ibP∩c⊂'g∪,P'g⊃P i#CE MOT¬∃α ¬E @ ¬∧`Q D,1(@ $∩∩`. ∧∧D
4λ∀$∀Q4j4⊂πc⊂∪$i`∀DA∨9¬~Rε∞Xh ⊂Lλ∧S ∀⊃
E εE∧T*id P,D
%⊃∪A\j0≥Tr(
Jλε∀*∃∀h
-DY≠β!1∪'(~(∪!+≤AαAJJ@HKαp `Uα@
Aπ= ∃↓h∧∧4LzZ$*∧βu5∧ 3q⊃$ ⊂5⊃*!α@
TLNE TT,2 8π'.M↓α&→¬:∃≡ID∧(αP ∪AT¬∪≥∞ααVAαα(U≥3∃∀aQ@∧P)Rdh @ A(λ@" ¬⊂HKαq3
8(⊂bId JUST REP +∀qα4~*5"∧β∩4jD⊂4h
@ f*bCE MH∂-≤Iα¬1hε∩Dλ∧FEαbhλCH A,-DQ⊃⊃⊃∪@93R5∧λαk"g∃*`f⊂∃αALUE S@→∨P@ZAααα0∀⎇t ∧
~λi∃∃≥Dλ∃∀h
⊃I@∀@
JSP T,SPATLπ⊂∀Q!∩∧U*:B∧l~ C(Hα.qI@dπE@20A∪(OLA≥∨(αα¬αNβ→T)qβ"A→∀TVDλhε∀ JF@
MAPL1: JUM@!∀Aε@2l
B1THI`≤4yxUJ@λ∩5∧zh⊂ ⊂∀lfa'S⊂+dj∩⊂ ∞O FUNCTIH∂9¬αJ>B-∩RdQ!∀De+$∧%λ∧!TCE HRRZ C,(C ∩~(∪⊃%%hAε@1D→$4!_4LDλ"e~*$
Hα".j(αfbfPα@$X↓'3≠¬=→&A ∃_
>RLr≥α~αYd:α ON PROPS
∀∩↓∞ε&d)α 22⊗bBα!⊂KZλ~$*∧9ye≤,8¬5 ~β"P$Sα S@35
>D
5∧8QP@!(λ∩J*uλ∪(~⊂ε_FBα CAIE B,QARRAY
∩A
β∪≤AλY#',∩H (αB(∧ TTu∧ 04∪εX ∧D]Qdπ FIGP%
↓_∞@-D $83∪λλitH⊂$
u0TD tH⊂**P6#!∧a`dQP!⊗(S)ja)βE JRST MAPD5 ;FOOEY, IT ∂&AM≠⊂⊗⊗αI∧L@Qh∃hT⊂p3Dzλ∪∩)@%P ∀O WELL
∪!U'⊂A1∞ ,~ C_h!→¬∀d∀λ∩bD(8∀db∧∧%EE εE∧SdπVEI B,MAPL23
λMAPL1B0∀∪!%%~AλXZbQ@R∩%\⊃α"ε~α6.∩*↓5αN
2∃α~AP@Mλ¬4i∧∀⊂!⊃,p `U ¬ FN (EAY@@
A<JR!αT~ε"D 2b∧α3@⊂∪ ¬F@(αα"ε22H4(→*%≥λ∪0* C"@↓Gs04 Fh⊂s(~∪
H X4∪h∀∪04 FH∪0*
P( X4∪
d 04∪εX(∪0* H∪(~∪L$ 04∪εFλ∪0*
λ⊂iX4∪d 04∪ε&H∪0* Lh X4∪FA C"IX4∪g!33uHT⊃
¬ ∧D]Qbj⊂#∃e!`∀IMHAπ¬→_A
I∨⊂∃αα:D≤αc"A~⊂ε'"H ⊂7⊂000 $∩w'↔% A&2α&@"λI∀$rz@λλx5λ⊂iIpPQ*(αbεEαP
RST EAPL3A
IOVEI D,MAPD2∀ 0↔∨ XA/1_BA≠%∂⊃(A¬&A/1_A+π∀A≠∨ ∀~∀&E∩J5α ¬Bk∩λ¬⊂HKαh⊃IZH⊃3H→⊂πa!⊃i a&⊃P#')CE!f`T&≠⊂~
MAPL3A0∀∪5≠ ~⊗Jα⊃2⊗
α1XQ!∀l@uQ3$λλε⊗@1(P ∩∩$p∞@<T tde∀ d,,D
D`4⊃∪hλ∀⊂ε`h∪→P!d⊃a` OL¬π
~)≠β!_Xp∪≠∨Y
AλX4fQ R$∩wλAA≠∪≥ LA)=∧b&NQλ∧∧l@H⊂ j⊂a`
HLRZ C$-DQλ@$HI`≤~λxU%~λ tL@U⊃4D
⊃h∪λ~uλ∪hd∃P3
X!"B)*34⊃$λi∪0*
b"'h∧@⊃∪LA∪&AIβ→→dAαA≠¬ A∨$↓≠β!ε4⊂∪⊃→10A∧X4dQ R$∩w∂PAπ∂ ∀A∪≤A1
(A!β→A=A∧~(∪!2t)α 1 h %αU∩NAαl
B1`HIf ,~λ4@H∪tD 04⊂i@dε~∀%!+'⊃(A @2≤z0∃_⊃↔4l
λ8∃∩∧βt@ X4∪∩*:α⊂⊗@ L¬∨)
↓)⊃β(αα∩∧α4h @$fεEαd))&H V∀!JD@ ;CLOBBER @∪≥Q_
α⊗t!α>→∧b&NPhR6εBc2¬h→
$djλ⊂¬V*⊃∀BDY`∪AT@
A≥∃(
αH~5"¬ y∀e$X!PTl~ C 7@∧fgUα@
A%!1"⊃Hh*6ε∧aP≤αB2
*T¬⊂ K∀**) 3@)¬↔
Aπ⊃$A∂↓β→1∧b&NR_h &6⎇2⊗%αλa""α#"A~pr4 D∃∃βε∃⊃
#!!(⊂3i((⊃β X4∪
h⊃"B3)zβ"P"**∧DNβH
∨.↓λA!∨%≥)&AQ~A2M~QEα|qαNR~-αε<
&(Q)T
∧F' LLzhR∧∩ER"Eαα#"A→3uQ$λk∀α!↔tp5HT⊂h⊃IZH⊂
~αdaeH!bb UβAP∩~(∪!+≤AαAEP%
λ∧DDNβP∂"-∩∃α∞b1αRzα~9αα9∧`:αf" R@)+I_λ ()X∃∧c&∪ M≤αr4λt⊂+
λE ∧D]Q⊂('dSαTS TLεA-
)∨$A=A2M~RL4PIα*J≥!α6ε∧aIH⊃↔5∀XYT(αi⊗⊂∂⊗g⊗⊗⊗,,⊂≡IS JUSPλAβ→)⊗Iβb2&NαIcp@ ¬∧fSβP
∩↓)(@1D $4!→E≤Bλ¬∃¬E4q1iIqc"A~p¬dh∪⊂)`∀!)(@$HI`≤,h@)@c⊗f$Th∧ @)∃' ~∀$A∃%'PA≠β!0h`~∀%)→:*α∩c⊃⊃∪@:p¬dhλ*g&"TiP ∀HIS IS A "CAR" KIH
λA=A6
4(∀ ∧e∃αH⊂%E⊂*#!∧h ∃SH P,A 3@!U'⊂AβI∞~∧∪¬_∞*¬∧!26ε∧aID⊃↔4L2 iu"∧YhBb∧yt∧9⊃0rd u1⊂∪α@ "α@λ I4qβ!↓ ¬&`T&~_≥αe*fh⊃P V&Ph"~εB∧f"iP-idV!$j⊂↔''g-LULL TARMIL¬β)∪=_ αxd∧dM8@λ¬T⊂ε`hλn.FE∪`h&~∞∧fgk⊃P(⊗!BDY`∀HIS @OPS OFF FASTLY ALY @+9≥⊗⊗$*⊃αNαJT4⊂Q!∀De+$¬"bV5¬αHα".hx5λ)D⊂∧g Tλ
(M~V
%¬!1P4PJ"J2JαQ1V⊂
E εE∧Pb"⊂(*∧DDNβFASTLY @!= A>41α
9bα6.∩*aαε2bα2&NαJ2b∧X¬⊂e@∧¬∀∪A_∞Aααb∧$⊃↔44Lh→B¬4→JT*∧yxU~∧α3@⊂⊂FA∧j∪-⊂ @,-1∩∩m0
-)t∧Uα(∪λXUλ∩λ→α#⊂#Pi! cQF@
CMAPD3: PGPJ P →≠¬!_f∩$p∞"yz$
J⊃Q hPβ"S(~⊃LG∧e*fT ¬ A1≠β!_P∩∩`.tJ1α&~α2>Jl
1α⊗t!6.→lb&NPhP&N⊗αK$α∧∃H HKαs0+∀⊂⊂5HT⊃p4H cbP∩dε LEFT HALVE@&4⊂∪⊃→I
A(X!λR$KZQα≡-"M↓Y`∧L@H⊂p*8(∪qD ∀p
a∀⊂!`f∪∧A∧fShεE TT,1(D) ↓;GEPλA≠= ∃↓D!αBy→e%~λIrβBβ3@⊗,,,∨λ'g⊂)U aeDCE JSP R,(TT) 8π
∨$↓'#¬%LXA∂∨∃&A)≡↓!∩H⊂EY@εE&Ph"→→N∧h!jλ→PλD$∩∩`.<yα"⊗α(R∧∀z λ Ju0TJ1"C"IX4∪FG@∧fgUα@~APY++%~P⊂H↔8t`4⊂∧"i⊃P#'iλ*g!f∪βBBERABLE @πβ→_4⊂λ&6⎇2∃αQc→""α""'i`k"H)`∂ME OF TH@
A-*0≤Bλ¬∀I@h¬BLE BP∩~(∪⊃%→$A(@1DR≤IHbβeE⊂KZλYe$4R3Ht∃∩⊃$
53h X4p P∪dπRE DIRECTLY
H∨-∃~A(XP`⊂∀!~DeRλ¬⊗X@
MH∂-$A$Xb$∩w$zβ α6⊗rMα∩≥*∃∩λ8∀d`Q!∃≤-K)R¬-YyhPα2TJ:λ⊃5)Y⊂#!β≥b`h∪~P&`T&~`@ MAPL8 MAPL8B MAPL8C MAPL8A ≥≠¬ @@:l
AEαα8U"¬8ZD9c"C! 04∪εW@∧h*Td⊂ ⊗⊂βHβ!0hλ$¬]~⊗AααZα∧∀z λ
Yβ!f'PαBE@%¬↓→
A→_ α∞b0$!→T⎇Q2(λ⊗&`h∪→~εEαe))jλ&`h&a
MAPL5A0∀∪!→%
APXZbQ@R~∀∪
β∪∂
↓(Y1ε4j∩∩w
⊃βπ⊗↓_
V6∀*Iα≡2αεJ≡~α~>I∧20 (!∀∧U∃:@∧l
FPHK8it|-∃D¬$|t Tu∀λ∃∀≥4λd⎇∩λ:T¬∩λ8∀d`Q!∃¬-9¬αd9X∃∧c1Q LlziR¬%EJ@hPα3∀i∧∃∃⊗
FA∧j∪'P F
%!`f∪∀T"*
DYf`RbP"hλ%!`f∪⊂#c⊂∀$cd*λ⊃P'cλ i#iCE MOT¬β∩AλY! →∧dQ(R$p∞ ,xHRβ@(⊂λ"∪ Y⊗@< εA>2αεJ≡≠p4(→*%≥α X∃∧c_!P@@ ¬&`T&≤≥∧R*f`"H V&`T&≠DDNβH
π∨9αO∪≥≤A≥∪_↓ ∨ε↓(
-+∀∧dMJID(hαB2
*S(⊂%E⊂j"!↔ps∪h!"i IH
)≡↓→β'λαα0≤2λ∧∀HZβ$gjTP*$$Sα@∞~∀%'↔β!∀A,]%M(~∀%∃%'(αα6εBcB∧4λLj>@4T
Bdλβ"S(~⊃∞⊂G↓2⊂TK⊂**ε
*⊂DDNβAN OP@≤[
_∞∩&t9α>→¬""*λ∧u*λαi⊗c⊂ij⊂⊃∪ ib↓βE JUMPE TT,EAPL8C
HRRZ T$(TT)~∀%∃+≠!8A(@2l
B1b⊂h &N\JB¬αλbRP4TjεB1D→`⊂J Yu (2(⊂%E∃
#!↓2TTjD⊃04 FP#"AQS04 G⊂.B)Yβk"P∃⊗"εEαh*`∪HJ P,LAST 8π
∪≥⊂A→β'PA∨AQ⊃∪&A9&A
I≠∧4PJ6 =hT∧"eAQ LU*:B∧l~ C (!"C!%S04π!2Tt∧
∃IX4λ"'→α`h!Pe
JSP TT,&MAP1↓;MAPCON
∪∃M A)(0X
6εβλ%nX~∧λh!→%≥αλ¬∃¬ES04ε⊃,¬f`T∧¬∀∪)' A%!1:6
↓D%@9X∃∧≤~!P@!2Tt∧
∃IX4λ"'d¬APLIST
,MAP18∧∪∃+5!∃αλ¬D:⊃t∩AQ@∧j&∪α@
Aααa5D%]∩&∩_:Td⎇X4∧9⊃0rdλSt@ tTR(&"FEαP∪ ⊗ALUE 8εAπ∨5!∪→HA→∨'M&~∀%!+'⊂↓ Y∧∩m→∪'λαα& 2λ⊃B∧∃Yh5$Ly`λ →β⊂!,
∪!U'⊂A1α∩g≥U≠¬⊂∧∧L@H⊂
*λ$iP$S ∧EH
λ MOVL¬∩A ¬C⊂@ L$∧A4p
a∩P**,,¬≠β -α∩`.dzN&:8∧∧#∧⊂∩λh&∩α LYzd`*h⊂
*α]`∞O L@∂βQ∪ ~∃¬∩⊗ $βphλ→⊂ε'kQb⊂FEα@→'∀∪∪∨-9∩A)(αa5:6
↓6¬"αJBHhαB2J*uλ X4⊂p)@∀**∧CE
λ¬' π LU8∧∧"e8ZD9b".j:αa) 2λ
∧∪∃1π!∧⊃2∧⊃↔44⎇*JT`(5⊃3∃α⊂''U⊂*`∪ED BY AH∂∧J2,Dλ4l$QQ LU8∧¬"eλID`)2c"A_4∧!dλ!⊗ FB;$BREAK $@¬%⊗`↓∞ α≤q2
¬*∩4$
T∃4$
u$$
T=⊂H∃i@ a⊂#Pd!⊂(⊃&!⊂#Pea⊂$Sd∧B FACB BKCGM@¬↔π∨4`A¬↔
≠⊂∃I∧∩.∞≡hεB∧≤)84kαλ)4≤@s( λ%agfLFEεE∀h¬BTTL VARIH∂+ε↓
J⊗YαJ>-"& 4X∧c!! I⊂J(02`≥αe*fh⊃P V!T'h%∧B]U!)⊃`eP⊗H)ja)λ→αE∩⊂)%X≥αfgk"RP V∀⊂∀@ ;A = BRAAKP, B = BREAKID
HRRZ B,V.
∪⊃I%4AβHbP∩ZMα2VLhP&"J∃QαεI∀ 2Z&$J~_4PJ*NA¬!2NB,~∀LhA⊂K\ItαTtzA"∧∀→hB¬U!Q HMH~¬∀1α"'o(FEαDj*,Sc#∧DNβ↑W
VEVAH@⊃∨=⊗∩`.-2ε" ytXh!∀ααα∧∧∧αeea⊂KZαC"A∀λλλε∧⊂4@_K+$h&∃iD]UCE 0 AR2A,VIDAFF ; ~~(∪∪∨-∃∩A∧X⊃ ⊗ZL~∀4λLj>@4Y∀∧~@∃3U→!"B)YuQ2$λ4LP%J∀U5 ↓ ¬∧e∀h⊂*,SPECBIH
λ~(∩@@@@A∧Y)e∪∪β≤4⊂∩@@`AεYU≥)3∪5β≤
∀$@@@`↓β$eα1(C)I!%∩~(∪')%P@bnYm'∪1¬%(A9=4s¬↔!P@C9:4∀∪⊃%I0Aβ$DY-≠'≥
∪→L~∀β)1_
αε∪ 1IAβ↓A@4PJBVNDQαA1%αJ&:_h(&N%∩Q↓E:bNBJ$~H4(Lj>Z∃∧ 2Z&$J~~⊗∀*0∀≤QQ LlzhTj∧∃JdM∧JZ0hP→Yu$,∀λBd∃)JK\jYd≥$→yb¬$tλUD,8ZD(h!~¬-≤ $¬αd*(t,p↔84
$9∧∧tDλU∃∃8ZB∧
)zTtαλ∀¬∀,_AT-∀→EU¬∀→jB∧dyzαh!→%≥αλeDdLiXEHαB(
4r∩D
∩5λZT⊂R!QB4∃*9⊂H∀¬J3PR)@ εE∧R))j UJBIND
∀~)β∧`(M~.&BpαP∩u*8U K88∀dbλ*$,4¬RαU*8U"∧X∧TIZA"B* t∩H
¬β"B*9p4⊂$λK⊗t%@)↔*(↔F@
CN.BB: MKVEI B,QCL∧]∧∩mβ⊂≡:αJ$`9α∩a⊂αREAK
∪!U'⊃)¬↓2&><∩24PJ*JN ∧∧)pss&!"C"JX⊃PFA→3uQ)∀⊂K∀*X⊃B.jYQ⊃1I→β"b⊃*g!j∩e`∞ BRAAK
JRST BKCMH
~∀4∃+¬-λt∪≠∨Y∩A∧1# ⊗
0I`≥h)u,tD
d
∀__$d
λ*$,1Q LU*:B∧∀89thh!Q%=⊂0FA→3uQ)∀⊂K∀*zα D]Ui'g#H*,h"H'c⊂ T!jfbS*⊂!)⊃`eFEαe))jλ!%agSFAεE∃cj!: MOVEI B,QUGT ;UNSEEL GO TAG BRAAK
JRST BKCMI
WNAB: MOVEI BQS@≥α$w ≡J|r≥↓
∧
J∞M∧∩J,→1P@L**5"∧)84l@#"C!(βaf!∞∧fgk⊃dP!⊗∀caf∧NβFAILED DO GARBAGE-CLπ→
(A≥=+∂AM!βπ
↓↓%β,~∀&U∩NQα∀Zε <QQ hUλID'@∧fgUα@∩AλY#! 0∩w! 0A∨-I
→∨.↓
J⊗X4(→*%≥αλ)4@q#"AQQpshπ@33j@ dP!(cagB]caP∪βP
∀22>]∧∩JεεXh(&*∃~Qα
\~6 (Q!PDLyH#@LYzd,Jλ!ELyA∪@9+sh Itp `QbP!)⊃`eFEαe))jλ!%agSFEεE⊃ aa≥αdgk"RP!⊗(Q aD]Q df"Q⊂ aj∩e`∞ REQUEST BREAK
BKCGMh~∀&¬*N" ¬↓2&><∩:4PJNεZ*α¬αλhP&BVα9α¬αH8$\≤T∧β!!4⊃4i∧∀∀Fvβ"B*
4r
¬∃S4hxR3⊃*1"B3)ZSR(
EC"A→TTu∧λ4TT
)3Uβ!(RpsiV∞C"A→Ttλ
%∀Tu
&@εE!∩acf@28∧A∨Y
Aβ$IαP∩Z*r :∀HI`≤-*)u∩l*(TZXYe$M)ydl,jAP@M99u%"λ~#∀
IJ0hPα(∩J*uλ⊂I8pπf@3
∪⊃I%4AβHbP⊃λ~#∀
⊃⊃⊂KZα∪pH~TP6$¬H⊂Q(_∃⊂0IH*#"A→∪∀VDλ4LP%E⊂4@→⊂T@FEαi`OTT AR⊃,SA
BRST BKCMH
f~(∪'π∨Q(Aβ$IαP∩Nλh %αU∩NAα∀Zε <T∧c!(RpsiV∞B2J:λ∃⊗∀h"aa∩e"εEαX⊂ F∃αARGS ;@'Aπ&aαZεe*∃α∞,b1α≡2αεJ≡_h %A∧
IE25∩⊗ε∩$
2∀hP%Aα
⊃J¬24zαεJ∀
d4
≤∩.∞∃απ M≤X¬⊗Dλ+⊂Rh→pεP⊂
λ PESHJ @ 1→∨∪≥Q%%+A(∩∧∪5≠%∩↓αP∩R∃*R 4PJBVNDQαADH%∀02c!λRpsiV,B4
Zp∧%⊂∀⊗*g!∩dεD
JRST UNBIL¬⊂4Ph ∀∀89tk≠!~¬-≤αλ∀¬KpRpi@d¬2]
λ∧∪!-~!αAdλ4(~
U≤Bλ¬D:⊂πh R∧¬α MLπ ~⊗Jα¬ $α1th+αE∧Ql!d A( -
9 :∀hP&~ε~α`≤@⊂πidSα@∞A4
2V∃∧20≥∩λZ%∀⎇%X%∀02`⊗QdεVIRLπ⊂~6,rQε@QQ hPc\→jD-∀d ∀e%)`d 3P
)∪α1 INTRN IL¬)%≤β!α6ε\1α6ε\1EαX→3∩∧β02fD⊂ε`eLFAεE∀h¬BTTL INTERN FUH
π$J0≤@H⊂3HD∀Q3λ~α"b ROU@)%_
-1Q hT→jD-∀dεB*
4r⊂∀⊗ DDNβH∂:eIα&:M!αε:$*JMαLrR-)`λλ~α⊂$g∃)'⊂⊂
λ¬∪≥%∩0∪≠!~¬-≤α∩H
¬∀∪QhZα∧D]Sh¬S@(ααNεZ*α→↓T
4,*λh∃≤@∪p1↓Q@∧ibU'`
LPNF
IH
)%8bt&≤*Rj5¬∩& 4aQ LU8∧λ
Jλε j∪d)d∧B]`EAT¬⊗M∧
R>Tz2∧D~9∧\-α(∩)@⊂*εEαd¬OVEI ARIαP⊃λ⊂
!Q@∧d&∀-⊂!V
TFE∩dεTRN8∧∪)→hA(@1 εβββ∧∧β!∧db$UαI @(αb0≤∃J9∃@!α@
HRLE TT, ⊃$~∃∪≥Q%≤ht%→∨π↔$∩∩αwM_
αRD
Qα~zα& 5HZ%∃-λ@λ
9β"`eTP)gfQh λING @∨≤ααR"∀hP&N9~∧`$⊃∃I@a i)⊂l@ ;Lπ¬→∪M(A¬+M(Aβ
Q$A<)α$X9∀$(∩5∧ 4sU∧
⊂∧"i⊃PεE∧H%))jλ$g ∀N@π⊂≤4PJ6 =hY∩∧~β
⊃¬⊃ ¬∧f∀d⊂!Vibcf∪βG
MH∂-
↓
%8¬∀⊂β)~∀%)→:p∧∧5α)`FBα JRSPλA∪9)≥π≡4⊂λ&6⎇2∃αQd
NεID!$4!~Ddtd
Bd
4π∪h X∞
@∃%M(A&u"0∀≤βc"A~Su⊂∃*⊂-D∩∩`.<*Qα
,~.⊗PhP&*Vmα1αR ¬B`%lc"A→⊂ε)-λ V *∃)`i(D)~∀%'↔&∧λ4(∀ ¬∃∃αH⊂%H∃∃∀h~J⊃∀CE PUSH FXP,TT
λ∧∪∃+5!∃αλ¬Dl8⊂↓Q@∧fgUα@∩AYα4Tjε.→β!∀l@uQ(λ~L+⊂aQ@∧d)∀-⊂!V
!P
JUMPE C,MAKA
HDRZ AR10Qε@$hP&N9~∧`$⊂4@_CE TROA AR1,$⊂I≥∪_$∩w¬]β%
AQ⊃∃αα94Mα⊃Q$l8f∪@!(λ∩ JT¬⊂ T_V∀ T_TFEαd))-λ i_@,1(ARDR~∧∪M↔∪!≤ααQ2JLr_$¬]∩& 4d ∧
~λεQ*)h⊂d⊃dε IN REGULAR IL¬)∀p4(∀ TmQ2(
Eλ⊂4F(*#"IX2h
αe*fh⊃P i1,MAKD~∀&U*6B∃¬!26ε\04(→ E∃Rλ ¬λ4L ∀CE MOT¬∃α⊂¬BD∩⊃Q M≤9~∧`$∀R3HaαA∧P∩))b MAK (4⊂λ&∞j∃α dαJ:Rpε K[HYd"∧βqH
P31'e∃
#!∧P%)∀h∧ MAKF↓;CLπ⊂⊗B
∩∃α~⎇⊃αJ&u"⊗J8hP&ε>T αQIX∀[_Q)T[G!∀De+$∧"bα⊃∀B]agfT i"P⊃'i⊂)⊃cjf T⊂ NTERN
CAME B,(D)
∀∩↓∃%' ∧∧l8aP@!2⊂ )⊗α T,(T)~∃5β⊗f@PJ"JJRαεIEbBεIEHh ⊂L**5"∧β02f!αAβ≥b`ePYP&`R`Ya MAKAMαA6Z¬Aαl
.¬αl
.¬I∧jε.¬*α6ε.λεB∧l→0!Q@εEεB&`e`L] HRRZ A0Q @$J↓↓↓↓β9T\T d-h⊃3JJT∧P$SαTG O@¬β%%¬2A
∀z5α∞b1αRzα& 5HZ$`!α@
MLπ ~⊗Jα↓2E,JN (α(λ∧∧∞h⊂*4⊂πh(∪βSED↓)≡A∀J0∃$X∧SAQ@∧h*Td
P,@∂ ε⊂hPα2U)Z⊃(⊂%I02p&8@εE∧R))-⊂⊂T∧ ⊃αH4(→Yu (αdP!'$fεBα P@+M⊃∀Aαb≤@t⊂iVd¬BOL
∪⊃I%~Aααa"A⊃Q$l8⊂h≥⊂$)∀-⊂ @,(P ∩~(∪'.Mα≡∃αeα20β"B$ TTu∧ 02p&! ¬∧iRdh"P⊂⊗+↔(∃i"DPλ⊂⊂⊂≠IL¬)∀qα6ε\*MαBαZ$*¬8ε,D 1H
J
4Q/*D⊂3Q∧ Su⊂∀lfa'S∧@
@πβ∪≤αα∩e~;∀l∀yAP@J∧ %∃≥D T\⊗8⊂hPα4∃*9⊂¬⊂(()`→CLπ⊂~LhP&*J≥!α6ε\ H ()X∀\8∪ M¬X∧r $∀∀k_pπg)CE JRSP MAKA2
MAKA0: TDZA D,@ ;D=0 -xA¬+π- A<
Mα⊗mαReα∀*~>J*αR"~4∧83∪β! 02p'∧P&gUα@∩A⊂Xb4PJ6 =i`λλT∧RINF 0↔≠¬↔
[-↓α:⊗8∧∧
∧βs#!∧e*fT ¬ C,MAKAL~∀&¬*N"$
αe∧hydXh)X∀\'!∃¬-9 "¬αβ∪Pi@dεS
IOVE TT,(FXP)
λ∧∪∃+5!∃α ¬Dl8⊂
!Q@∧d)∀&P F
i_@) ;@≥π=_
α|rR=α,r⊃α≡2ααV∞\*P$!→%∃≥D T\⊗APTl→8∪+Pα2∀J+H⊃β
@'a i∀ hFEαe*fh∪⊂**,,∧Vf~(∪⊃%→4AαY↓Q)'β$!λR4PJN.&∧λ4(∀ ¬∃∀Tλ∩d¬JJ4
∩λA⊂hTX→4#!~4\Mλ⊂∧5⊂#"IX2h.A∀∩U3* H⊃β X2qB'`j'fH#'jg⊃⊂'g∪a&$iUε@
HLRR A,(C)
POP BP@,TT ;SHOULD EPIT WITH OBTBL BUCKET # IN TT
α SUB @,R70+1
↓UNLKPOPJ
;RINTERN↓%∪≥)8`Aβ≥Q%≤dAI∪⊂~Rpε⊂hPβ"Ng]P!gSbP$"T ¬ @)<A∪≥ ∃%≤Aβ8Aβ)∨4A/"⎇~∃αBα)∀`*λ∪P)X(∩4d 3H∀ hU1KAQ@εE)∩dεTERL:~∀%∞ε6p∧∧5⊗lm&εlλ¬J⊂π!*Q,D]iPi"`∪ F α JRSDRINTN1
RIL¬)≤@h∪!+π A
!1(~(
∪β⊃ ∩A PXy∂¬Q'∪4Vβ y=HKY¬
∧z
RNMQα6V≥!α
∃∧z∩4PJ6.Z*α⊃2Z|∩εJJ
H4(→*Tm∧D
E"be20hPα2∪
+H⊂#λε*⊃α!Q@4ri~⊂#"A∀⊂⊂ )⊗α A,@1(D)
JUMPN A@π!∨!(~∀β!U'⊂A
a Y)(4∀∪!+M⊃∀A1%∪≥)8`∩(Mα6Aα5BA2R h &6⎇2∃α⊃e2>
ε∃∩εd∀PJ*V6∧aαRQbq-L4PJ"J2h∧∧
D∧⊃∧"Hβ"B* t∩H
¬β"B)
TS λ∃⊂"λE εE∧T'h%⊂∀⊗εEεBβ≥`fh∪'b"P∪`eg SP!a$SαTEBN MKNM1 @≠↔9~dA¬⊃_bdA5↔∃~h↓β⊃
,E0Aπ⊃9,bAπ!≥,cλ↓∞"~3
¬α∞DrP∪$λ4Dud_0hPβ"C! 34∪ x⊃*C!↓4rr*λ(∃⊗⊂βRINTERN ;SQBR1
αMAKJAM~ MOVEI T,PN@∂
⊗D∩∩w≥*αI↓α⊃PPL*YU∧
λ⊃Dl\iR@hPα4∃*9λ∀
A B4
Zrλ∀¬JQ∪⊂*(c"B)
TVS$λ+∀Q H4Qc!!33uHY(⊃⊗∪eg&HCE PUSHB FXP →≠-→$mε4∀∪!∨@A Y%⊃→β%∞4∃π%∪9)%≤h~∀&∧zB)ααbJ&:$*J84Ph*6.tiEhε≤Z&B9∧ 2J∩d
J4PJB>BRαA04PJ"JJRα 1"λH4(→Yu (αfP!)"& T!FE∧R&)-⊂⊂V⊂λA
MKNM22 JSP TAHFV1
∪∃I' A↓=!∀b~(~∀4U∩∩1E∪P&6>4*%αQe∩& 5HZ$`@"S2ii-∞B*85⊗S$
⊃PU(a B2J:λ⊃∃¬I4Q⊂!Q@∧e)∀h⊂∀*
DY`⊂NGNK1Lπ$A∀J0∃$X)bb¬IλT`$∀∪t $∀β!↓ C"AQLjfdλq5λd i Ph"i LUMERIC VALUE
CHNT1P⊂T%)→∞APXb4T~":YP&N.⎇"Qα¬e~e.~@h(%αU∩NQα≤B:YF_h(&Rdr9αR"bNd∀PIα*J≥!α∞"u1F∧Q(4Dud_CPL J%R¬JEBD
⊃Q LE*+"¬%EF∩E%E⊃PPL J%B¬JEBE%E⊃PPLHH"¬%EK3≠+εrβαbE
E"MQQ LU*:B∧≤ jc⊂β"C!(r∪UF_,¬∧fSk"P*∃⊗∀ TCEj&∪'⊂*,1
αCHNV1B~
SA% TDNN TT,[-200]
SA$ TDNN TT,[-1000]
α JRST(T!
AHFF1A:↓WTA [NOT ASCII CHARACTER!]
λ JRST CHNT1~∀4⊂_w →!%∨ ↓ ⊗→λα∩,d∧0Dλ⊃1N$λ⊃P∀F$⊃⊃T
&!"C!
u0U
Iα1⊃(j∀St∧λ3Q⊂⊃ ¬F@+8~∀4SY`≠Zλ¬∩λT⊂P4i_h∩1λX(∪qDλ⊃1T
)tλ∩*7@εE≥Nβ; (DEFUND@
¬∩0≥αλhUE¬$¬¬BHβ"Ng]DP⊂λ⊂⊂⊂⊂
∧@≡@ R@@!DrV"D¬¬∀X
$`:λ
⊂h~H⊗∀H∀!`b⊃)⊂ _$RRRR4⊂vvV$@@@@@@Q¬*RBJ⎇↓↓"∞
⊃αa¬αBεε∩⊂∧¬BJ¬λ4$J ¬BJ∃⊃PC[70¬$D~@λ ~hε⊂)⊃d¬OVE *ALL* GCCURRENCES OF THE PROPERTY B@
∨I
~)YY`~¬λ¬5
I3Q`⊂∪βHA$B∃αhZr¬4→JT*Pβ"C!λα"c(∀'h∃∧BDYc"V()εE∀ h"`U⊂→⊗∧T*id∀⊗ FEαe)h⊂∃⊗"#(∀→
JS@ T,DFPR1~∀$@A∃%M(A
A$4PJ"JJRαRQEλ2HhαB2JY4∪@⊂∃*⊂DFP@$~(∪⊃ %hAαXQ∧R~(LB2J@$λ∃∪
Eλ"HhαB2 JT¬⊂!∀!TFBα MOVEI C,(B)
8π'3≠ _∞ " →b∧αh∀
)t⊃4JK(∪P)X(∩3DλH
P)@ ∧ ∀Ap
αBα)u∧4U⊗$
P3∃(T⊂∧g AR1.
λ@ Dpλ&6⎇2⊗%α
⊃J¬1D $$↔8D,5Y`λλdπ@≠LA∪≤A!%
~) ⊗→α_#@!4⊂
iR%⊂ ⊂,RAM@RLπ ∩∩m%β≠!I_∞Aα≤
R-4λ2b∧~ %D⊂4@→⊂F@
MOP
∩↓XQβHbR
∀%∃+≠!8AαY ∃c∧∩$p∞J⊗lzR*λ→Db∧x85-∃(Yd≤-4 t2¬IλR¬¬)z∧-∃K⊃PPLYzd,Jλ∃BD
&(∩Hh!~¬-≤ $¬αeλZE¬∀z↓PT⊃1N'↓4∪t∧
⊂"!⊃,pλ*U⊂#"kH+ f*QP#'iλ()'h⊃i*,FB∧h'h∩P(⊗_CE JRSPλ@I
β$
∀4⊃∩~¬⊃Ih→ E∃Rλ ¬λ*""'i`∂ME HAIRY CHE@π↔&A→_∞Iα$*~BJ⎇↓αε: ∧∧$1P
gβE SKMP (AλY'2∩$p∞N9~¬~∧βs@⊂
εAILURE* TO GET A VAH@∪λααNf6∀z0 (αB2JY4∪@⊂⊂α,1(T)
∀∪)%'(@!(R4Ph ∀⊃Pλ)] JUMPE A,(T) ;@≠∨I
A"JJeα≤B⊗∞8∧hλitH⊃λXT⊂ 'T⊂ g"λ "c*S∧@
HRRP∀AλXQαR$∩w'↔%!&A∨8@U'+
β'&(~∀&U*6B∃∧⊃1"QHH%nHX∃4
4
5%,hd¬≥¬(X∀"∧zZB∧Ldλ∩b∧%D∧_h!→¬∃∃$λ2bD%⊃PPL*YU∧*λ5BE"⊃Q LU*:Bβ
E⊂hPc\HXe,rλHT3:λHT3~λHT3≤$λD,3;∧∧$d∧s∧λ⊃1Lh∀⊃⊃1FD⊃⊃1FT⊃⊃1FA ¬εE∞]]P∀⊃"c"gλ≡)`⊂EA> ,FLAG> <ARGS> & <BODY>) DEFIH
ε↓αA
+9β)β∨8\∩)[Y`~α∧πD4d_sb∧l≠∀∧∀(∪s)~α*"b⊂'i⊂∪`hP!⊃P⊃"l∀)⊃⊗⊂λ εE@1A$DXA=$@E≠¬π%≡D8~∀`-YY↓↓↓e~Bε
pα6ε@∀λ$*∧∀
5Ll)yBαEIλR∧t→XR∧|d
DD(⊃U)hu∩3iE+λ∪j$⊂(∪ ~uλ∪ha"NngP∧j+Sβ TO FOURSYMBOLS (IL WHI@π⊂Aπ¬'
A)!
A
→¬∞@E≠¬π%≡D↓∪&A∪1→∂β0R\
∀lrv@@yβ%∂L|A∪&↓αA
∨8[≥∪_↓'3≠¬=_A∨$↓αA→∪M(A∨↓'3≠¬=→&vAQ⊃∃α4zJ6⊗⊂α&*∩L~εR⊗~4)m[X&ε9∧b⊗bB⊂↓"&:≤z6Bε$Jα2∃¬:&B↓¬""¬↓∀jε∞Jz⊃αε:"↓α~⊗EαI α4bε≡MJp4)M[X&>RD*Iα~⎇∩6εR~α~>IβbεJ≡≠q1α&t~2V∩Lr≥αε¬α⊗εJr∞∃α|1↓→α\*f↑>∀"M04SYml&≤
VN⊗~αR"∃∧jε∞Jz↓
∩⊗5*9→ ¬"=α
*αJV9∧J:NR,
⊃8∀SYml4SYemαL1αR"*αZε2,)α>→¬""¬α≥:&R∞Bα∩⊗~,qα&M¬!1αRD*9αRD)α⊗b¬⊃6"ε≤Aα"ε≤X4)m[Yα&M∧*:ε
d*⊃9↓∧J9αRDJMα∞
~∃1α$*~V9∧
Z>&%→α6ε\J:≥α$B∃α&u"⊗JB∀*R&Z(h)mmZα∩ε~Lr&Rε|qα&→∧BεN"Lr≥αRD)α∩⊗4J:&RLz9α&t"&∞ε$*MαRD
Qα&"α&L4SYmmα$B∃αNj∃αε~αR"∃∧~VJJ,rQ1α¬∩⊗NVl
2e∧~>6BLb⊗⊃1∧"⊗~&tJR&>rp4)m[YαR"*αZεJLzVMα≤
N⊗M∧
J∃hhQmmm∧2>J5∧z→↓r≥α⊗
yPh)mmXJ~><HI"~>zα
εIHI"~>zα
εI∧∩εi$JB~>=∧∩εIα∀
iαF-*a$4SYmmα-BBI6D
N!α¬∩>B⊗∃"eα&~α>9α$B∃αε$z5h4SYml&4z<$%D:⊗Q↓<2>=↓<∩εI$J↓↓5αtz:∃↓hJ~><hQmmlHH&n&2αR"&~α&Mα
αNf6∀z2t4SYmmα-BBI6D
N!α¬∩>B⊗∃"eα&t"&∞ε$zIα&≠P4)m[X&⊗b¬⊃6"ε≤@&⊗b¬⊃6"ε≤@%↓↓jα:>:*↓4&F-*`4)[Ymα∩,2V9α¬*RMα$B∃α~,r∞R&|qα∩⊗4J:&RLz9α>rα~>=¬*:∩⊗∩αR"∃¬αJ>B-∩RehhQmmlL*bBI|2⊗bB∩z6ε∞∀y↓↓α∀
H$&∀
H$&∀
H4)[Ymα∞|jB&2-⊃αBV%→αR"*α~V:≥"&>9∧"⊗~&tJR&>rα>9α4z=αVt"⊗Iα$B∃αB∀zB⊗J%Ih4)[Yl&N,∩I>~≥*
I>e~V
Iα↓α
ε∩↓(&
P$&
P4)m[Y↓)α$B∃αB∀zB⊗J%Iα↑&daα
∃∧ αNfl∩>1βd2>=α∀
Kqα<B&∞!∧J9αR-∩84)[Ymα↑Lb1α"
2∃αRD)αεB¬∩>BJL
R∃α≥*
I>5~V
I|bNV
∩αBJ>∧*JReph(4*$*~V9Ph*J⊗∧*εQ↓∩aαBV≤AαA2λh*∩⊗39h&"∃∩iα¬bB¬$4PJ"2JRαεIEbB¬$4PJεε&rαεIEe
⊗bB⊂h(%αU∩NQα$*→L4PJ∞ε&*αεIEe
~⊗b¬⊂4(%∧~ε&9∧
IE2jε∞Jxh(%↓∧RJNQ∧"⊗→LHIe"∩,2V9↓e~B⊗
r↓r~29y↓9rq$4(Lj>Z⊗JαεIEe
⊗bB⊂H%m"$*~V9βbNB⊗≠q↓99rIm↓r4bε≥y∧"⊗~ε,bRMα$yα⊗b¬⊂4(&lzZ∃α
a"A$hQmr~d
≥yαM→α&9∧
IEm¬""∃α≤"Iα>2α¬α&~↓!rε∀:My↓rq9%m¬""∃α≤
Iα>2↓"A%∧JM↓r≥α⊗
yph*∩⊗3→h&*≥↓αQ2$2BIDHIn6ε\)αNV∀)α↑∃∧BεZ∃∧
Qα2,
NQα%:=αRDJ:≡LhP%α*∃~Qα∩,2:⊗HhP&"2∃QαRQbB $4PJN.>%!αRQdbL4(Jα*JN"α∩⊗→≤`4(εDbJiα
⊃J¬1D⊃$$%\jεf
*α"εMα1α.⊗Jα↑.J%→|4*$*→N PJ"2JRαQ1"
⊃J¬$hP&*Vmα∃αQd"⊗→N@H%n:Laβ∪?/≠9∨Q¬∪↔GWM∪∃α∩,2V9→α ∧4(M~..R"αQ2NHh(%αU∩NQα$*→P$KZBεR$*J9αl
R∞"Lr≡Mα∀*FF&∀)α∩⊗5*9_4PJεε&bαQ2E,zBRε|rε0%\Z⊗f↑⎇∩∩Mα∀*FF&∀)α∩⊗5*9_4PI↓α∞J2∃α"bE⊗J≥"X%m4zBR&|rε11α2J⊗N"a↓~ε-A1↓~∀*NRYb↓~J⊗≥"04(J↓↓↓α≤
&∧4PI↓↓↓α↓α*J≥!α∩⊗3 4*∩,1NahLBJJi∧
IJ¬bBεIJ
H4(εU*6B9∧
IJ¬d"⊗→N⊂h*∩⊗3~1h&lzZ⊗%∧ 2F2j
∩∧HIf∞J,
R∃αqαεB¬∩>BJL
R∃αd
6
∩
j⊗bB∀*NN&|p4(ε¬*N")¬↓2∞>u_4(εlzR⊗%∧→1"¬Hh(&"∃∩aα¬bBA$∧KZR"∃∧~εIα|1αR"M→α&MβbNB⊗≠p4(εlzRε%∧
IJ¬e
bBJE~ 4!→%≥α
ED$∃
" HK89∧,≤αh∃ T∀q1$ 1H⊂*Is(
9r4∀d
3S⊃*:h∀v)XSs
!Q@∧P%∀)j⊂"⊃c→`FB∧fgk⊃fP!⊗
(⊂DDNβSAVE THIS FUNNY DIST
α CAIN AR1,QMACRO
JRST DEFNER ;FUNNY FORMAT AND MACRO FLAG DON'T MIX
HRRZ B,(B)↓ ;PECELIAR FORMAT8 (NAME EXPRNAME ...)
HLRZ AR1,(B)
JUMPE AR1,DEFNER
HRRZ B,(B)
SETO AR2A, ;FMR A 2-LIST, USE "EXPR-HASH" FMR EXPR-HASH PRMPERTY,
JUMPE B,DEF3A 9 BUT MUST ALSO LGOK IN A DAFFERENT PDACE
HRRR B,(B)
JUMPE BDAF *$∩vf[1∪')&↓ ∨OPA+'
↓1!∧αj"εNBα~⊗ε%*J∀4PJ"2JRαεIJλa" $HI`≠αYI∃≥%4
U≤*
I∧*∧izU∃$∧ ∃$,QQ#L-
"lD~9ᬬ)zα∧t→XR∧LZ A,@(P)
JUMPGE AR2A,DEF6 ;JUMP UNLESS 2-LIST FORMAT
MOVEI B,(AR1) ;MUST GET VALUE OF EXISTING PROPERTY
PUSHJ P,GET1 ; AND SEARAH IT FOR THE EXPR-HASH PROPERTY
JUMPE A,DEF5 ;IF NONE, LOSE
JSP T,STENT
TLNN TT,SY ;NO EXPR-HASH IF NOT A SYMBOL
JRST DEF5
MOVEI AR2A,QXPRHSH
;A HAS THA ATOM CONTAINING THA EXPR-HASH PRMPERTY, IF ANY.
3AR2A HAS AN ACTUAL EXPR-HASH PROPERTY NAME,
DEF6: MOVEI B,(AR2A)
MOVEI AR2A,(A) ;CAVE ATOI INVOLVED α PUSHJ P,GET1 ;GET EXPR-HASH PROPERTY
JUMPE A,DEF5 ;DO DEFUN IF NONE
MOVE F,(A) ;EXPR-HASH PROPERTY VALUE BETTER BE FIXNUM!
PUSHJ FXP,SAV5M1
MOVEI A,(C) ;CANONICAL LAMBDA FORM
PUSHJ P,SXHASH+1 ;JCALL 1,.FUNCTIKF SXHASH
↓PUSHJ FXP,RST5M1
CAMN TT,F
JRSTDAF 2$∩wβ⊃∧BA⊃βM⊃⊗M∧jεR∞B α~>∀:⊗@" ~Bp@ B3)zQ2(λ∃λ⊂4F(*""'d id⊃iP&`U!d⊗⊂∀gP#&∃id⊂*∩ ¬ EXPR-HASH @RLπ!¬Q2~∀∪A+'↓∀↓ Y%5!%∨ $∩vAβ9λA)⊃∃_A!I
∨%~ααR"∃∧"⊗~&tJR&>ph)nRD)α∞ε⊂α0≤2¬
αJ∧α4h
I⊃(⊂*Is(∃ T∀⊃5
Stλ yU∪ndλ4L( ~h∃∩λT∀⊂Sjλ4U⊗$ P31'P!P$TP*$"H+ f*QW
DEF5* HLRZ A,@(P)
α EXC@ C,AR1
λ MOVEI B,(C)
JRST DEF1 0↔∂<A ∞AQ⊃∃αα
U%¬)zhPβ"QλXM∞B* t∩(
¬#"A~∪tλ
¬⊂C"A→3uQ)∀⊂+∀$X⊃1U)a".hHH1P
g ⊃αE∧T*id%λ(∩!gSαS ;TRP∩A¬∂β∪≤ααP≤MIλ¬λα"c*S⊂#'gH↔↔↔) RE@!1βπλ↓
d∀PJ*JN ∧∧-Lα"'P⊂∀"⊃c*g& FOO ,∧\\R4⊂λ ( c]K→∃∧12`∧Dα("bRP*,h∩XP",T%XaP∃,h%XQ⊂*,h∩Xd⊂*⊗h%YP∃,h%YPP*,h∩Z⊂*,T%ZP*⊗h%[⊂∃,h%\H*,h%N`FEεB)ja*∃&∧j,Rh"beH#*g!U$ggεBεEεE∃,dh"Qe]∧DB]f)jP)⊂∀_λ↔⊂→TH'!`f∪ a&"CE∧ieRh P#!c$lFA∧P∪ek"dH#⊗!h∪h%εEαfgk"RP"⊗(U,dh"QeFE∧P`fcbH*⊗,!KYFE∧H%))jλ+g f∪ibFEαiedh⊃P*∧DB]c'P⊂i#iP∂≤X∞ ON@
AβI∞A∂↓→∪_~(∩Aβ∨MαA(∩$∩w→M
A
%≠9(Aβ%≤Aπ∨+9(A
∨HA∪≥π¬→_~∀$@A!M⊂A YHj`~∀%≠↔-$AλHQ@R~∀∪¬ %∧!1"QHh(&6⎇2⊗%α
⊃J¬2≥α>B(hP&⊗b≤AαεI∀ 1"⊃Hh(&*≥↓α⊃2DJ2∞εd`$%nα
$l≤Z:2∧
(z2β∩λ→d"β1Q%≤4∀Q∩αα
~ELMλXTXH↔4αDJ9r¬¬X9∧-~λd∧|uIt¬αHQ*44
A≠5≤zh¬∩*¬↔+¬J5⊗2*λ12c!!33uHY(⊂+
∀5⊗2!QB2∀IKS(⊂%HQT∀HJβ"B)YuQ2$λ+
⊂*&P*"!↔qq5∧λ4Qhε∀∩3Hλ⊃"B2J:λ∃λz∀Q∃λ!".qhZλ∀Q(_∃⊂0IH(∩3Dλ4LP!QB2U)Z∪H⊂%J⊗4∩f⊃".sI→λ∂/Dλ0pq*
λ⊂3K∀⊂r⊂*!"I
λ12nA→∀TVD
∃∃→303A⊃.pp)Iλ∃⊗)→03H yQ(⊃(~S⊗(
Ic"B)*Tuλ¬V*∃∃¬⊃".h
:⊃0r(k(∀⊃(Yr3QaQC"U~∩l.A_p21$λ+∃∀JZ∩α"':λ∂/D
q04H9λ⊃Sj$∀Q0(H4H∀jH4Uβ!!(∩TJ:λ∃⊗* lb"'4⊂r⊂*(0u⊃*$
⊃+HuH∀⊂*(3Kλ X0tSe⊃"U⊗* l0nA~∃4r $∀ ∧J⊃12a⊃.t⊃(Yh⊂5∧λ(⊂rλ~C"B)*34∪∧
∃∃~∩n0!⊃.r∩*D⊃3qD¬(∃⊂)8(⊂(∧*sqU∧$⊃3qED∀Q5
ZSH&⊃"B3)zQ(∃¬H∃∃∀h~J⊂4F(*".jλ12h
85∀h
Zλ⊂4F(#"B*I⊂h∃¬F
↓∃Tq1$
v3Uλ≠β"B*I⊂q(
E
ε↓"B( *Tuλ
K4∩l(a"B4
Zrλ∀¬Jβ"B*
4r∩D
⊂∃→303AQB4∪j∧∀∃↓QB0p)I⊃H¬E∃
"!↔r∩5∧λ(∩∪j*R0SλT∀t∪ _r3Qd 00tIq"B2J:λ∃λz∀Q∃λ!".tL\Y=_m∧≥~→$∞Y89∧∞_8[UHλ∃.<<H_m|→(_mMxXY..c"B!⊃".p*&P+λ≥Yλ≠,∨(~_.l(∀q*J99λ
(01∃λ_S⊃#!!2TTjD∃⊗4 60b"'8sh⊂H_rh⊂)hλ∃∀K∀⊂1p)→C"C!*⊗4∩f_NB5 IQ(∃¬FMMLF⊗b+ThX(∀v)j⊂6α':Q01λZH∀uλ~Uλ⊂iλ4Tc!!(∀∪j H∀↓QU⊗4 62∞B*
4r∩D
⊂∃→303A⊃.prλ~H∪SjD⊂0phZ∃⊂0IH((λypPSλT∩5β!!2TTjD∃⊗4 60b"'9Suhλyh∃∀K∀⊂1p)→C"C!*⊗4∩f7B2Tj∧∃⊃K UL"!↔p4Qd 54u∧λQ(⊃I≠∪U3!QB2U)Z∪λ∃
E∃⊗4 6pb"'84Qhλ(5∃q(YHλλ→Qλ
fvh∂/AQB0p)_h∃∃¬Fmmb!↔h∀ph→H⊃Sj$∃∩⊂*D⊂r⊂*(0u⊃*'c"B$
∪∪p$
∃
εε↓⊃.h∪jI⊃4Ui~q(∩*4⊂(∀k→U⊂6¬D∪∀r∧x1β"JK4∩lh7B(λ Jrλ∃
E,,!⊃.h∪λXUλ⊂K∀,+∧
∪h∀hZUQ(λ~h∪0*9c"B*
4rλλk∀∃
A"U⊗* m∞B*
4r∩D
λ12b!↔t⊃1)4⊂5λλ∀⊂r⊂*!"B2JY4∪λ
J∃⊗* n""':sqU∧λ3qH¬T⊃sh
(5∃4Id,( zH∃rλ~⊃5Q*!"B4i94∪λλE
⊃V
¬"".j9r4λ _H∀tλXr1R(4⊂r⊂*(0u⊃*!"B( *Tuλ
K4∩mAQB0p)→H∃∃¬E⊃
"!↔pss*λ4Q(
Ih∪sHT∃q(λyuβ"A∀∩TTjD∀∪t
∩B"':u4⊃*$∃r3AQU⊗4 6.B4
Zr∩H
¬⊂∃⊗)→03B!↔sSu∧
∩⊃( yQ($λspPIH(⊂3HD∀Q5
+#"B)*Tuλ
K4∩m↓QC"U~∩mNA→∪∀VD
⊂∃
Jp4Jλ~LP*!∃Tq1$
v3Uλ≠β"B*H∪SH
E⊃α"'8r⊃0i4∀v3JH6λ⊂(x23TjD∪04i1"B( *Tuλ
K4∩m!QB2TJ:λ∀∪j∃∩C!!"U⊗* n.B*:0H⊃K
∀Mf¬l#"JK4∩n(↔B4ri~∪H⊃)xTU∪A⊃.hTixUλHλYqKH∧λ∪q4d Suλ →USrhQ"B( *Tuλ V5∃∀ !".h
I⊃(⊃)xQSK∧λU5λ
y3∪λ
0rh
Zβ"B)*TuλλYqN"!↔h∃∩λT⊃3qJh3λ∩(d∪Q0hZtp4K∃C"C! ↓Gt52*D∃P3
(5λ∃H→∀u∀D
S∀Uε$∃P3
6(∃P)H4TC!!"Tu(*∃∪α*~25∧
P3∀HZλ⊂)hλ∀u*:⊃3Q∧λU3PjI3sTaQC"T*Y5∞B)YuQ2$λ∀4*Y5α"'9∀u0J$
λ¬d*#!!03rID∃∀f~sP3 zq#"A~rr4λT∃β"A∀∃⊃⊗H∀⊂+⊂!⊃.sSdλ4QhπWH∃4hT∪R3↓QB(λ
tλ∀¬H#"R*D(α2J*uλ∃IJUc!)1SH ~∀k⊗aQB0p)→H⊂+
JU5∩↓⊃.uλ X03Td r3∪∧λ4h∀*Y15∪∀⊂4h
ttr()⊃#"A∀∩TTjD∃S∀JFc"B)YuQ2$λ-Fεα!↔uP3I→∪⊂+(i⊂5Sj(1λ∩i→∪β"A_p23Dλ+∀)λZTStA⊃.q4J)tH∪(X3Th
x(∀r z3⊃λ 93∪λ →T∃5∧λU1QHZC"B$
∀VHλE,εεβ"A→3uQ)∀∃∃¬λ*#"A→∀rλ
J4hXs∪qaQB33jh(∃∃¬Ju
∃
E#"B*I∪Q(
J⊃V↓QB(∪)zQ(⊃¬E⊂*"!↔qR6 j3(⊂*(h∂/D
4q(λitHH*Q02dε-Kλλ~Qc"A→TTu∧
S∀Uε8#"W!↔q3Q∧ qH∩(iH∩5
1"C"AQUP3
(5∞B)*34⊃$
∃S
*∞""'9∀u0J$
λ¬d*#!!2Tt∧
∃∪
yP0raQB(λ∧ ⊂,%E∀5P)JQ5β!!4∪t∧
⊂#!!4∃4i H∀
h3∀u
!"L,∧Q4q5 y(∀p*ztβ"A~∃4r $∀∀HZ∃P3↓⊃.uP)JQ5λ
:∀R3Ht∪sHλk∀λ∩)d⊂4∀
)t∀R(~⊃(∪(→SQ4AQL, !~q5⊗IT∀p5j:β"B* t∩H
¬β"C!!"Nng4∃⊂2hT∀v3()sλ∪j$⊃R6 j3(∩)d⊂+λ
4rλ
P31$
u∀R)hh∪tD
P3∃(T∪sU t⊃V∀¬a"Nng4∪sH
Itλ∪hd∃∩⊂*Eλ⊂4d ⊂4u∧λV∀λ
9∪u∧
∃4r∧ tR1i→P3λ
h3∃1$ qH⊃K
C"AQUP3
:∀NB)*tλ∃¬I⊂5∪iQ".tjJR3Qdλ(∀v)XSs∂aQB(∩J*uλ∃H→∀l#!)5 α*85⊗S$
P3⊃I≠α".hi⊂1h
I⊂5λ
h3∀Q*D tu
)3Qid 4h∪Izλ⊂(λi6∪U)Q"B4
Zr∩H
¬∀∪QhZβ"B)YuQ(
%⊃V∀↓QUS∀JFNB2 JVH⊂EE⊂*#!!4∃4i∧⊃V∀¬E⊂J#!!2∀TK$⊂+
λ∃#"B)*34∪Dλ+∃S
*C"A~∃4r d⊃V∀¬F"".j
4rλλ∀⊗Q4It∃stHD⊃StDλssq∧ 104jZQ#"A~∃4r∧λV∀
!"B4 z∩H∀¬A"UP)Jl.C!)1SH ~∀k⊗aQB4riz∃λ⊂%HVα"'83∪∪jt⊂(⊃I≠∪U3!QB(∩J*uλ∃H→⊃4TA⊃.q4J)tH%T∃u⊂!QB4q*Is(∃H→⊃R6↓⊃.tQ(→∪⊗(λ∀⊃R6 j3#"A→3uQ$
K⊃V
↓".th~Q(⊂$λst⊗$ qH⊃K
β"B*
4rλλk∀
λ∃"".j
4rλ
I⊃(⊃I≠∪U3!QB4∃*9λ⊃V
¬∀B"':∩⊃3D
∃4r∧
∩⊃( y⊃λ⊃K
β"B* t∩H
¬β"W!⊃.q3HD∩1SD 5∀c!*P3⊃**NC"I~ α5jH(⊗k$λ4Qh
Ih⊂Q$
P3∀HZ q1∧ 54u∧λQ(⊂$λR6∪JY(∪tDλ(∀v)XSsλ+Q"R5∧Q5u⊂$k(⊂*(h∃∪dλQ(∃H→∀Q5∧x1λ∪*Zuλ⊂HT⊂(∀k→0Ss∧≠(β"A→TTu∧
P3∀jJC"@↓GtQ5
h3λ∀HZ∀u∀D
S∀Uε∀∃S∀JF(∃S
*h∃IJU∞(
i∀Uh∀∃S∀JG(∀r(H∃∀β!!"Nng4⊂4tjY1(∃H→∀u∀D ⊂4h
4r⊃(D⊂(∃H→∀Q5∧
u∀R)hh∪sJIh⊃V
¬C"Ng7h∃P)JQ5λ
I⊂5λ
:∀R3Ht∩3H
I⊃(⊂*
∀St
)05⊃$ 00r →Q+1λZ⊃3QλYUλ∃h≠+β"G7nh⊃+λq4∃∧
∩⊂5∧λq4Uλ→3HλI~∀hH
:∀R3Hzh⊂4HT∩3UλZT∀Q*H1λ∩)d⊂3V!QNnnd 34∪λY13Uλ~∩3sD¬⊂3Hλ→P0r
)sR4iT⊃StDλss4λ~∩0R)I5⊗( yS⊗*%a"Nng4⊂1UλZH⊃∪i→Qh∃iλ5⊃5HZKλ∃ λ(∀u
)3Qh ~h⊃S
Zr⊃1∧λTSs$λV∀AQC"THZ∃P3π!"R1Id∩5∀eKc"B*9r4∪D
P3⊃I≠α".jx4h∃H→∀Q5∧
u∀R)hh∀Q(→∪⊗(λ∀⊃R6 j3/c!!(∩TJ:λ∀Q*Ju∀B!↔sSk∧ StS(→λ∩⊂)h∪∩3Hq"B2
*VH∃
E,*λk∀
"!↔v14eD∀∩0i4∃4λ
I⊃(⊃I≠∪U3!QB+PJ(02hε⊗K
∃
E#"B)Y, ;IF CONTINUING RETURN AND GO ON
RETSTR: ] ;END IFN ITS
MOVE R,(FXP)
MOVE D,1(R)
CAME D,[ASCII \:KILL\]
CAMN D,[ASCII \:kill\]
CAIA
JRST VLRT1
MOVE D,2(R)
CAME D,[ASCII \ \]
CAMN D,[ASCII \
\]
JRST VLRT3
JRST VLRT5
VLRT1: CAMN D,[ASCII \≠_.\]
JRST VLRT3
CAME D,[ASCII \≠≠U\]
CAMN D,[ASCII \≠≠u\]
JRST VLRT9
;HERE IS THE MACHINE-DEPENDENT THING TO DO TO RET THE VAL STRING
VLRT5:
IT$ .VALUE 1(R)
IFN D10,[
SA% OUTSTR 1(R)
IFN SAIL,[
SETZ D, ;D IS ZERO FOR TWO DIFFERENT REASONS!
MOVEI TT,1(R) ;THIS PIECE OF CRAP LOOKS LIKE
HRLI TT,440700 ; SOMETHING RPG WOULD WRITE (BUT GLS DID)
ILDB T,TT
JUMPN T,.-1
MOVEI T,↑M ;CRUFTY STRAY ↑M MAKES PTLOAD HAPPIER
DPB T,TT
IDPB D,TT ;THEN TERMINATE WITH A NULL
HRLI R,440700
HRRI R,1(R)
PTLOAD D ;LOAD THE STRING INTO THE LINE EDITOR
] ;END OF IFN SAIL
] ;END OF IFN D10
IFN D20,[
PUSH P,A
HRRI 1,1(R)
TLO 1,440700
RSCAN
JFCL
SETZ A,
RSCAN
JFCL
HALTF
POP P,A
] ;END OF IFN D20
MOVE FXP,(FXP)
POPJ P,
VLRT3:
IFE ITS,[
VLRT9:
10$ EXIT 1,
20$ HALTF
POPJ P,
] ;END IFE ITS
IFN ITS,[
MOVEI D,120000 ;"SILENT KILL"
VLRT3A: .LOGOUT 1, ;TRY TO LOG OUT
JSP T,SIDDTP
.VALUE
.BREAK 16,(D)
VLRT9: .LOGOUT 1, ;TRY TO LOG OUT
.VALUE [ASCIZ \:VK \] ;OH, WELL...
POPJ P, ;IN CASE LOSER DOES $P FROM IT
SIDDTP: .SUSET [.ROPTION,,TT]
TLNN TT,OPTBRK ;SKIP IF JOB INFERIOR TO DDT
JRST (T) ; (ACTUALLY, IF SUPERIOR HANDLES .BREAK)
JRST 1(T)
] ;END OF IFN ITS
;SUSPEND SUSP0C SUSP0 SUSP11 SUSP12 SUSP1 SUSP14 FLSNOT SUSP24 SUSP25 SUSP3
SUSPEND: ;LSUBR (0 . 2)
JSP TT,LWNACK
LA012,,QSUSPEND
IT$ SETZM PURDEV ;ASSUME NO DUMPING
PUSH FLP,R70 ;ASSUME WE ARE RETURNING FROM A RESTART
PUSH FLP,R70 ;ALSO ASSUME FIRST ARG IS NON-NIL
JUMPE T,SUSP0
AOJE T,SUSP0C ;JUMP IF ONE ARG
POP P,A ;2ND ARG, IF ANY, IS SAVE FILE NAME FOR HISEG
; FOR ITS, IS NAME OF PDUMP FILE
IFN D10*HISEGMENT,[
SKIPN SUSFLS
JRST SUSP0C
PUSHJ P,FIL6BT ;CONVERT FILESPEC IN A TO SIXBIT ON FXP
PUSHJ P,DMRGF ;MERGE WITH DEFAULTS
POP FXP,SGAEXT ;UNSTACK ARGS INTO PROPER SPOT
POP FXP,SGANAM
POP FXP,SGAPPN
POP FXP,SGADEV
PUSHJ P,SAVHGH ;SAVE HIGH SEGMENT
FAC [FAILED TO SAVE HIGH SEGMENT - SUSPEN@!]
] ;END OF IFN D10*HISEGMENT
IFN ITS,[
PUSHJ P,FIL6BT ;CONVERT FILESPEC IN A TO SIXBIT ON FXP
PUSHJ P,DMRGF ;MERGE WITH DEFAULTS
POP FXP,PURFN2 ;UNSTACK ARGS INTO PROPER SPOT
POP FXP,PURFN1
POP FXP,PURSNM
POP FXP,PURDEV
] ;END IFN ITS
SUSP0C: POP P,A ;POP FIRST ARGUMENT
SKIPN A ;FIRST ARG NIL?
AOSA (FLP) ;YES, NO VALRET STRING
PUSHJ P,VALSTR ;NO, PROCESS IT ONTO FXP
SKIPA
SUSP0: PUSH FXP,R70 ;ZERO WORD MEANS VALRET STRING
SETZ A,
MOVEI T,LCHNTB
SUSP11: SOJE T,SUSP12
SKIPE B,CHNTB(T)
CAMN B,V%TYI
JRST SUSP11
CAMN B,V%TYO
JRST SUSP11
MOVE TT,TTSAR(B) ;IF FILE IS CLOSED THEN IGNORE IT
TLNN TT,TTS.CL
PUSHJ P,XCONS
JRST SUSP11
SUSP12: JUMPN A,SUSPE
HRRZ A,V%TYI ;CLOSE THE TTYS LAST, SO THEY WONT CAUSE
MOVE TT,TTSAR(A) ;SPURIOUS "CANT SUSPEND -I/O IN PROGRESS"
TLNN TT,TTS.CL
PUSHJ P,$CLOSE
HRRZ A,V%TYO
MOVE TT,TTSAR(A)
TLNN TT,TTS.CL
PUSHJ P,$CLOSE
SUSP1: HRROS NOQUIT
MOVEM NIL,GCNASV+1
MOVE T,[FREEAC,,GCNASV+2]
BLT T,GCNASV+2+17-FREEAC
SETOM NOPFLS
IFN ITS*USELESS,[
MOVE T,IMASK
TRNN T,%PIMAR
JRST SUSP14
.SUSET [.RMARA,,SAVMAR]
.SUSET [.SMARA,,R70]
SUSP14:
] ;END OF IFN ITS*USELESS
IFN ITS\D20,[
IT$ SETOM SAWSP ;ITS ALWAYS WANTS TO DO A PMAP FROM FILE
MOVEI T,FLSSTARTUP
EXCH T,LISPSW
MOVEM T,GCNASV
SKIPE SUSFLS ;IF FLUSHING PURE PAGES PROCESS VALRET THEN
JRST FLSLSP
FLSNOT: PUSHJ P,PDUMPL ;PURE DUMP LISP IF APPROPRIATE
MOVEI T,SUSP3 ;FROM HERE ON IN START AT SUSP3 DIRECTLY
MOVEM T,LISPSW
SKIPE (FLP) ;NIL JCL?
JRST SUSCON ;YES, CONTINUE ON AND RETURN T
SKIPN 1,(FXP) ;ZERO WORD MEANS NO VALRET STRING
JRST SUSP24
IT$ PUSHJ P,RETVAL
20$ HRROI 1,1(1)
JRST SUSP25
] ;END OF IFN ITS\D20
IFN D10,[
HRRZ T,.JBSA"
HRL T,.JBREN"
MOVEM T,GCNASV
MOVE T,.JBREL ;GET HIGHEST ADR WE NEED TO SAVE
HRLM T,.JBSA ;AND STORE IN CORRECT PLACES SO MONITOR KNOWS
MOVEM T,.JBFF
MOVEI T,SUSP3
HS% HRRM T,.JBSA
HS$ HRRM T,RETHGH
SKIPE (FLP) ;NIL JCL?
JRST SUSCON ;YES, CONTINUE AND RETURN T
SKIPN (FXP)
JRST SUSP24
SA$ PUSHJ P,RETVAL ;PTLOAD VALRET STRING FOR SAIL
JRST SUSP25
] ;END OF IFN D10
SUSP24: MOVE T,FXP
POPI T,1
MOVEM T,(FXP)
10$ MOVEI TT,
20$ HRROI 1,FLSPA1
IT$ MOVEI TT,FLSPA1
SUSP25:
IFN ITS,[
.VALUE (TT) ;PRINT SUSPENSION MESSAGE
JRST SUSCON
] ;END OF IFN ITS
IFN D20,[
PSOUT
HALTF
] ;END OF IFN D20
IFN D10,[
OUTSTR (TT)
SETZM V.MAILINT
HS$ JRST KILHGH
IFE HISEGMENT,[
IFN SAIL,[
MOVEI A,FAKDDT ;FOO, HOW MANY WAYS CAN SAIL LOSE?
SKIPN .JBDDT ; JOBDDT MUST BE NON-ZERO TO SAVE!
SETDDT A, ; ELSE MAY FAIL TO SAVE ENTIRE LOSEG
] ;END IFN SAIL
EXIT 1,
] ;END IFE HISEGMENT
] ;END OF IFN D10
;;; HERE ON STARTUP AGAIN AFTER SUSPENSION
SUSP3: MOVE NIL,GCNASV+1 ;RESTORE IMPORTANT AC'S
MOVE T,[GCNASV+2,,FREEAC]
BLT T,17
SETZB A,B ;CLEAR OUT GARBAGE
SETZB C,AR1
SETZ AR2A,
SKIPN (FLP) ;RESTORE FXP UNLESS JCL WAS NIL
MOVE FXP,(FXP)
MOVNI T,1 ;AOBJN ON -1 LEAVES [1,,0] ON A KA10
AOBJN T,.+1 ; BUT [0] ON A KL OR KI
MOVEM T,KA10P
IFN ITS+D20,[
MOVE T,GCNASV
MOVEM T,LISPSW
JSP T,SHAREP ;RE-READ PURE PAGES IF EVERYTHING IS IN ORDER
] ;END OF IFN ITS+D20
IFN ITS,[
.SUSET [.ROPTION,,TT]
TLO TT,OPTINT+OPTOPC ;NEW-STYLE INTERRUPTS AND NO PC SCREWAGE
.SUSET [.SOPTION,,TT]
.SUSET [.SDF1,,R70]
.SUSET [.SDF2,,R70]
.SUSET [.SMASK,,IMASK]
.SUSET [.SMSK2,,IMASK2]
IFN USELESS,[
MOVE T,IMASK
TRNE T,%PIMAR
.SUSET [.SMARA,,SAVMAR]
] ;END OF IFN USELESS
] ;END OF IFN ITS
20$ JSP R,TNXSET ;MUST BE DONE BEFORE PION
IFN D10,[
MOVE T,GCNASV
HRRM T,.JBSA"
HLRM T,.JBREN
SA% JSP T,D10SET
] ;END OF IFN D10
PION
JSP T,PPNUSNSET
SETZM NOPFLS
HRRZS NOQUIT
PUSHJ P,OPNTTY ;*** TEMP CROCK?
JFCL
PUSHJ P,UDIRSET
POPI FLP,1 ;REMOVE NIL VALRET FLAG
POP FLP,A ;RESTORE RETURN VALUE
POPJ P,
;SAVHGH SAPWIN
SUBTTL HIGH SEGMENT SAVE ROUTINE
IFN D10,[
;;; THE RELEVANT FILE NAMES ARE IN SGADEV, SGAPPN, SGAEXT.
;;; THE MAIN FILE NAME IS PASSED THROUGH T, AND STORED INTO
;;; SGANAM ON SUCCESS. SKIP RETURN ON SUCCESS.
IFN HISEGMENT,[
SAVHGH: LOCKI ;LOCK OUT INTERRUPTS AROUND USE OF TEMP CHANNEL
MOVE F,SGANAM
IFN SAIL,[
SKIPL .JBHRL ;IS HISEG CURRENTLY WRITE-PROTECTED?
JRST SAPWIN ;NO, MUST PREVIOUSLY HAVE UNPURIFIED IT
SKIPN PSGNAM
JRST FASLUH
MOVEI T,.IODMP
MOVE TT,PSGDEV
SETZ D,
OPEN TMPC,T ;OPEN UP .SHR FILE DEVICE IN DUMP MODE
JRST FASLUH
MOVE T,PSGNAM
MOVE TT,PSGEXT
SETZ D,
MOVE R,PSGPPN
LOOKUP TMPC,T
JRST FASLUR
MOVS T,R
MOVNS T ;T GETS LENGTH OF .SHR FILE
ADDI T,HSGORG-1
PUSHJ P,LDRIHS ;GO READ IN HIGH SEGMENT (FROM WITHIN LOSEG!)
RELEASE TMPC, ;FLUSH TEMP CHANNEL
MOVE T,D10NAM ;USE D10NAM AS HISEG NAME TO FOIL SHARING
LSH T,-6 ;AS LONG AS WE'RE BEING RANDOM...
SETNM2 T,
JFCL
MOVE F,SGANAM ;RESTORE MAIN FILE NAME
SAPWIN:
] ;END OF IFN SAIL
SETZM SGANAM
MOVE R,SGADEV
IFN SAIL,[
;;;SAVE VALIDATION WORDS IN HISEG, HOPE THAT HISEG WRITEABLE
MOVEM R,PSGDEV
MOVE D,SGAEXT
MOVEM D,PSGEXT
MOVE D,SGAPPN
MOVEM D,PSGPPN
] ;END OF IFN SAIL
MOVEI D,.IODMP
MOVE T,F ;SGANAM WAS SAVED IN F
SETZ F,
OPEN TMPC,D
UNLKPOPJ
MOVE TT,SGAEXT
SETZ D,
MOVE R,SGAPPN
SA$ MOVEM T,PSGNAM
ENTER TMPC,T
UNLKPOPJ
MOVEI TT,HSGORG-1 ;MAKE UP IOWD
SUB TT,.JBHRL
MOVSS TT
HRRI TT,HSGORG-1
SETZ D,
OUT TMPC,TT ;OUTPUT THE HISEG
CAIA
UNLKPOPJ
CLOSE TMPC, ;FLUSH TEMP CHANNEL
RELEASE TMPC,
MOVEM T,SGANAM ;WE CAREFULLY DO NOT STORE SGANAM UNTIL
UNLOCKI ; WE HAVE CLEARLY WON (MORE OR LESS)
JRST POPJ1
] ;END IFN HISEGMENT
] ;END OF IFN D10
;ARGS ARGS1 ARGS1A ARGSCU ARGSC1 ARGS3 ARGS5 ARGS6 ARGCLB ARGCL3 ARGS0
SUBTTL ARGS FUNCTION
ARGS: JSP TT,LWNACK ;LSUBR (1 . 2) - USES A,B,C,T,TT,D,R,F
LA12,,QARGS
JSP R,PDLA2(T) ;SPREAD ARGS
ARGS1: SKOTT A,SY
JRST ARGS0 ;FIRST ARG MUST BE SYMBOL
HLRZ F,(A)
ARGS1A: AOJL T,ARGS3 ;TWO ARGS
HLRZ R,1(F) ;JUST WANT TO GET PRESENT ARGS PROP
ARGSCU: JUMPE R,FALSE ;ARGS CONS-UP
IDIVI R,1000
SKIPN B,F
JRST ARGSC1
MOVEI TT,-1(F)
JSP T,FIX1A
MOVEI B,(A)
ARGSC1: SKIPN A,R
JRST CONS
MOVEI TT,(R)
CAIE TT,777
SUBI TT,1
JSP T,FIX1A
JRST CONS
ARGS3: JUMPE A,CPOPJ
JUMPN B,ARGS5
HLRZ R,1(F) ;JUST WANT TO FLUSH ARGS PROP
JUMPE R,FALSE
SETZ R,
PUSH P,A
JSP D,ARGCLB
SUB P,R70+1
JRST TRUE
ARGS5: PUSH P,A
SETZB TT,R
HLRZ C,(B) ;MUMBLE MUMBLE - MUST FIGURE
JUMPE C,ARGS6 ; OUT WHATEVER WE WERE HANDED
JSP T,FXNV3
CAIE R,777
ADDI R,1
LSH R,11
ARGS6: HRRZ A,(B)
JSP T,FXNV1
CAIE TT,777
ADDI TT,1
ADDI R,(TT)
HLRZ TT,1(F) ;LOOK AT ARGS PROP ALREADY THERE
CAIN TT,(R) ;IF ALREADY WHAT WE WANT, JUST EXIT,
JRST POPAJ ; THEREBY AVOIDING A PURE PAGE TRAP
MOVEI D,POPAJ ;FAKE OUT A JSP D,
ARGCLB: MOVEI B,(F) ;CLOBBER IN AN ARGS PROPERTY
ARGCL3:
PURTRAP ARGCL7,B, HRLM R,1(B) ;MAY HAVE TO FUSS ABOUT PURE PAGE TRAP
JRST (D)
ARGS0: MOVEI F,$$$NIL
JUMPE A,ARGS1A
WTA [ NON-SYMBOL - ARGS!]
JRST ARGS1
;EVALFRAME FRM2A FRM3 FRM3A FRM4A FRM4 FRM5 FRM5A FRM7 FRM8 FRM2B GTPDLP GTPDL5 GTPDL2 GTPDL3 GTPDL4 GTP4A GTPX0 GTPX1
SUBTTL EVALFRAME FUNCTION, GTPDLP, AND FRETURN
EVALFRAME:
SKIPA R,[GTPDLP] ;THIS ENTRY CAUSES INTERPRETATION OF ARG AS PDLPOINTER
FRM2A: MOVEI R,GTPDL2 ;THIS ENTRY, TO ALLOW CONTINUING FROM WHERE D CURRENTLY IS
JSP R,(R)
$EVALFRAME ;GET EVALFRAME OR APPLYFRAME JUST PRIOR TO
$APPLYFRAME ; POINT ON PDL MARKED BY ARG
JRST FALSE
FRM3: SUB D,R70+1 ;DEFINE A FRAME POINTER TO BE JUST BELOW THE EVALFRAME MARKER
HRRZ TT,(D)
JUMPN F,FRM3A ;F IS INDEX OF WHICH KIND OF FRAME
MOVEI T,(TT)
LSH T,-SEGLOG
SKIPL ST(T)
JRST FRM4A
HLRZ TT,(TT)
FRM3A: CAIN TT,QEVALFRAME ;DONT ALLOW THE CALL TO EVALFRAME
JRST FRM2B ; ITSELF TO BE OUTPUT
FRM4A: PUSH P,(D)
FRM4: ;ERRFRAME COMES HERE
HLRO TT,(D) ;ONE LEFT HALF'S AS GOOD AS ANOTHER...
JSP T,FIX1A ;MAKE UP PREVIOUS SPECIAL PDL POINTER
PUSHJ P,ACONS
EXCH B,(P)
MOVE TT,1(D)
CAME TT,[$APPLYFRAME]
JRST FRM8
PUSH P,A
PUSH P,B
MOVE T,-2(D) .SEE $APPLYFRAME ;BECAUSE THERE IS A DISCUSSION
JUMPL T,FRM5 ; OF THE FRAME FORMAT THERE
MOVEI A,(T)
TLCN T,-1 ;THINK ABOUT THIS WHEN YOU LOOK!
JRST FRM7
HLRS T ;SUBTLE WAY TO GET NEGATION
ADDI T,(D)
FRM5: SETZ A,
FRM5A: HRRZ B,(T)
PUSHJ P,XCONS
AOBJN T,FRM5A
PUSHJ P,NREVERSE
FRM7: PUSHJ P,ACONS
POP P,B
PUSHJ P,XCONS
MOVEI B,(A)
POP P,A
FRM8: PUSHJ P,XCONS
MOVE B,A ;OUTPUT 4-LIST: "EVAL" OR "APPLY" OR "ERR" [A SYMBOL]
HRROI TT,(D) ; FRAME (REGPDL) POINTER [A FIXNUM]
JSP T,FIX1A ; <FORM> [EVAL] OR (<FN> <ARGS>) [APPLY]
PUSHJ P,CONS ; OR <MSG-FORM> [ERR]
MOVE TT,1(D) ; ALIST (SPECPDL) POINTER [A FIXNUM]
MOVEI B,QOEVAL
CAMN TT,[$APPLYFRAME]
MOVEI B,QAPPLY
CAMN TT,[$ERRFRAME]
MOVEI B,QERR
PUSHJ P,XCONS
JRST POPBJ
FRM2B: TLNE R,1
ADD D,R70+2 ;WHEN SEARCHING FORWARD, SKIP OVER CALL
JRST FRM2A ;TO EVALFRAME
GTPDLP: ;CALLED BY JSP R,GTPDLP; RETURNS PDL PTR IN D
MOVEI D,(P)
JUMPE A,GTPDL2 ;ARG=NIL => START SEARCH FROM CURRENT PDL POS
JSP T,FXNV1 ;NOTE: EVALFRAME LOOKS AT BIT 3.1 OF R
JUMPL TT,GTPDL5 ;BIT 3.1 OF R = 0 WHEN SEARCHING BACK THE PDL
TLO R,1 ;BIT 3.1 OF R = 1 WHEN SEARCHING FORWARD
MOVNS TT ;WANT TO SKIP OVER THE FRAME MARKER WHEN
SKIPN TT ; SEARCHING FORWARD (SINCE A PDLPOINTER WILL
SKIPA TT,C2 ; BE POINTING TO ONE BELOW A FRAME MARKER)
ADD TT,R70+2
GTPDL5: TLZ TT,-1
HRRZ T,C2
CAIGE TT,(T)
JRST GTPDL1
MOVEI T,(P)
SUBI T,(TT)
JUMPLE T,GTPDL1
MOVEI T,(TT)
CAIL T,(P)
MOVE TT,P
HRROI D,(TT)
GTPDL2: MOVE TT,(R) ;KEY ON WHICH TO SEARCH
JUMPE TT,2(R) ;MATCH 0 => NO SEARCH, JUST GIVE OUT PDL PTR
MOVE F,1(R) ;WELL, IT'S POSSIBLE TO SEARCH FOR TWO THINGS
TLNE R,1
JRST GTPDL4
HRRZ T,C2
GTPDL3: CAIL T,(D) ;A BACK SEARCH
JRST 2(R) ;SEARCHED-AND-FAILED EXIT
CAMN TT,(D)
JRST GTPX0
CAMN F,(D)
JRST GTPX1
SOJA D,GTPDL3
GTPDL4: MOVEI T,(P)
GTP4A: CAMN TT,(D)
JRST GTPX0
CAMN F,(D)
JRST GTPX1
CAIG T,(D)
JRST 2(R) ;FAILURE
AOJA D,GTP4A
GTPX0: TDZA F,F
GTPX1: MOVEI F,1
JRST 3(R)
;FRETURN FRETRY FRETR1 FRP1 FRP2 FRP2A FRP4 FRP3 FRP3QA
FRETURN: TDZA C,C ;LH OF C REMEMBERS WHICH ENTRY
FRETRY: MOVSI C,TRUTH
HRR C,B
JSP R,GTPDLP
0
JFCL
MOVEI F,(D)
MOVE TT,[$EVALFRAME]
CAMN TT,1(F)
JRST FRETR1
MOVE TT,[$APPLYFRAME]
CAME TT,1(F)
JRST FRERR
FRETR1: MOVEI D,(F)
SUBI D,(P)
HRLI D,(D)
HRRI D,(F)
MOVE TT,[$UIFRAME]
CAME TT,(D) ;SEARCH FOR A USER INTERRUPT FRAME
AOBJN D,.-1
CAMN TT,(D)
JSP TT,UIBRK
FRP1: SKIPE T,PA4 ;BREAK UP A DOMINEERING PROG
CAIL F,(T) ;[WHICH BREAKS UP INTERIOR ERRSETS AND CATCHES]
JRST FRP2
MOVEI TT,FRP1-1 ;FAKE OUT RETURN BY INSERTING A RETURN-ADDRESS
MOVEM TT,-LPRP+1(T) ;OF FRP1 ON THE PDL
JRST RETURN
FRP2: SKIPE B,ERRTN ;BREAK UP A DOMINEERING ERRSET
FRP2A: CAIL F,(B)
JRST FRP4
MOVEI T,FRP1
MOVEI TT,FRP1
JRST BKRST0
FRP4: SKIPE B,CATRTN ;BREAK UP A CATCH
CAIL F,(B)
JRST FRP3
MOVEI T,FRP1 ;IN CASE OF UNWIND-PROTECT
MOVEI TT,FRP1
JRST BKRST0
FRP3: SKIPN B,EOFRTN ;BREAK OUT OF ANY E-O-F SET READS
JRST FRP3QA
CAIGE F,(B)
JRST FRP2A
FRP3QA: MOVEI A,(C)
IFE PAGING,[
ADDI F,1 ;FIX UP PDL POINTERS
SUB F,C2
HRLS F
ADD F,C2
MOVE P,F
HRRZ F,-2(P)
SUB F,FXC2
HRLS F
ADD F,FXC2
MOVE FXP,F
HLRZ F,-2(P)
SUB F,FLC2
HRLS F
ADD F,FLC2
MOVE FLP,F
] ;END OF IFE PAGING
IFN PAGING,[ ;IN A PAGED SYSTEM, THE PDLOV HANDLER
HRROI P,1(F) ; WILL FIX UP THE LHS OF THE PDL PTRS
HLRO FLP,-2(P)
HRRO FXP,-2(P)
IFN SAIL,[
PFIXPDL TT
FLPFIXPDL TT
FXPFIXPDL TT
] ;END OF IFN SAIL
] ;END OF IFN PAGING
HLRZ TT,-1(P)
TLNN C,-1 ;FOR "FRETURN" JUST UNBIND TO MARKED
JRST UBD ; POINT, AND POP FRAME
PUSHJ P,UBD
HLRZ TT,(A) ;BUT DO MORE FOR "FRETRY", AFTER UBD
JSP T,%CADDR
POPI P,L$EVALFRAME ;GET RID OF BASIC EVALFRAME
CAIE TT,QAPPLY
JRST EVAL
HRRZ B,(A)
HLRZ B,(B)
HLRZ A,(A)
HLRE T,(P) ;GET RID OF ARGS ON APPLYFRAME
SKIPG T ;FIGURE OUT LENGTH OF ARGS PART
MOVEI T,1
HRLI T,(T)
SUB P,T
JRST .APPLY
;$GETCHARN GETCHAR GETCH1 GETCH2 GETCH3 GETCH4 GETCH8 GTCTB SUBLIS SUBLSA SUBL1 SUBL1B SUBL1A SUBLOSE SUBL3Q SUBL3Z
SUBTTL GETCHAR, GETCHARN, AND SUBLIS
$GETCHARN: PUSH P,CFIX1 ;SUBR 2 - NCALLABLE
SKIPA F,[ZPOPJ,,CPOPJ]
GETCHAR: MOVE F,[FALSE,,RDCH2] ;SUBR 2
SKIPE V.RSET
JRST GETCH8
SKIPG D,(B)
JRST GETCH4
PUSHJ P,PNGT0
GETCH1: SOJL D,(F)
IDIVI D,5 ;(Q,R) QUOTIENT,REMAINDER IN D,R
SOJL D,GETCH3
GETCH2: HRRZ A,(A) ;CDR BY Q WORDS
SOJGE D,GETCH2 ;RECALL THAT (CDR NIL) = NIL
JUMPE A,GETCH4
GETCH3: HLRZ A,(A)
LDB TT,GTCTB(R)
JUMPN TT,(F)
GETCH4: MOVS F,F
JRST (F)
GETCH8: JSP T,FXNV2
PUSHJ P,PNGET
JUMPG D,GETCH1
JRST GETCH4
GTCTB: 350700,,(A)
260700,,(A)
170700,,(A)
100700,,(A)
010700,,(A)
SUBLIS: JUMPN A,SUBLSA ;NULL SUBSTITUTION LIST?
MOVE A,B ;YES, RETURN SECOND ARG
POPJ P,
SUBLSA: PUSH P,A ;USES ONLY A,B,T,TT,D,R
PUSH P,B
MOVE D,A
HLLOS NOQUIT ;MOBY DELAYED QUIT FEATURE
SUBL1: JUMPE D,SUBL2
HLRZ T,(D) ;A SUBSTITUTION LIST IS LIKE
HLRZ B,(T) ;((U1 . S1) (U2 . S2) . . .)
SKOTT B,SY
JRST SUBLOSE
SUBL1B: HRRZ A,(B) ;SEXPRESSION S IS SUBSTITUTED FOR ATOM U
HLRZ A,(A)
CAIN A,QSUBLIS
JRST SUBL1A
HRRZ A,(T)
MOVEM B,T
HRRZ B,(B)
PUSHJ P,CONS
MOVEI B,QSUBLIS ;PUT "SUBLIS" PROPERTY ON THOSE ATOMS U IN THE
PUSHJ P,XCONS ;SUBSTITUTION LIST ((U1 . V1) . . . (UN . VN))
HRRM A,(T)
SUBL1A: HRRZ D,(D)
MOVE T,INTFLG
AOJGE T,SUBL1 ;0=> NO INT, -1=> USER INT, -2,-3=> QUIT
MOVE R,D
JRST SUBL3Q
SUBLOSE: JUMPE B,SUBL3Z
MOVEI A,(B)
MOVEI R,(D)
MOVEI T,[LER3 [SIXBIT \NON-ATOMIC ITEM - SUBLIS!\]]
MOVEM T,-2(P)
SUBL3Q: SUB P,R70+1
JRST SUBL3A
SUBL3Z: MOVEI B,NILPROPS
JRST SUBL1B
;SUBL2 SUBL3A SUBL3 SUBL4 SBL1 SBL5 SBL4 SBL2 SBL2A SBL2B
SUBL2: POP P,A
PUSHJ P,SBL1
JFCL
MOVEI R,0 ;REMOVE ALL "SUBLIS" PROPERTIES
SUBL3A: MOVE TT,(P)
SUBL3: CAIN R,(TT) ;REMOVE "SUBLIS" PROPERTY
JRST SUBL4
HLRZ T,(TT)
HLRZ T,(T)
JUMPN T,.+2
MOVEI T,NILPROPS
HRRZ B,(T)
MOVE B,(B)
HLRZ D,B
HRRZ B,(B)
CAIN D,QSUBLIS
HRRM B,(T)
HRRZ TT,(TT)
JRST SUBL3
SUBL4: SUB P,R70+1
JRST CZECHI
SBL1: SKOTT A,LS ;TRACE THROUGH STRUCTURE IN (A) SUBSTITUTING
JRST SBL2 ;(GET 'U 'SUBLIS) FOR U WHEREVER IT IS NON-NIL
PUSH P,A
HLRZ A,(A)
PUSHJ P,SBL1
JRST SBL4
EXCH A,(P)
HRRZ A,(A)
PUSHJ P,SBL1
JFCL
HRRZ B,(P)
SBL5: SUB P,R70+1
PUSHJ P,XCONS
JRST POPJ1
SBL4: HRRZ A,@(P)
PUSHJ P,SBL1
JRST POPAJ
HLRZ B,@(P)
JRST SBL5
SBL2: TLNN TT,SY
JRST SBL2B
HRRZ B,(A)
SBL2A: HLRZ T,(B)
CAIE T,QSUBLIS
POPJ P,
HRRZ A,(B)
HLRZ A,(A)
JRST POPJ1
SBL2B: JUMPN A,CPOPJ
HRRZ B,NILPROPS
JRST SBL2A
;SAMEPNAMEP ALPHALESSP ALPL3 ALPLP1 ALPL2 SYSP SYSP3 SYSP6 SYSPZ1 SYSPZ GCTWA GCTWI GCTWX
SUBTTL SAMEPNAMEP AND ALPHALESSP
SAMEPNAMEP: TDZA D,D ;USES ONLY A,B,T,TT,D
ALPHALESSP: MOVEI D,TRUTH ;MUST PRESERVE C,AR1,AR2A,R,F (SEE SORT)
PUSH P,B
PUSHJ P,PNGET
EXCH A,(P)
PUSHJ P,PNGET
POP P,B ;FROM NOW ON, A HAS PNAME OF 2ND ARG, B OF 1ST
JRST ALPLP1
ALPL3: HRRZ A,(A)
HRRZ B,(B)
ALPLP1: JUMPE B,ALPL2
JUMPE A,FALSE ;ON SAMEPN, LOSE IF 2ND ARG RUNS OUT BEFORE 1ST
HLRZ T,(A) ;ON ALPHAL, LOSE IF 2ND ARG IS SHORTER THAN 1ST
MOVE T,(T)
HLRZ TT,(B) ;FOR SAMEPN, WILL RETURN NIL IF
;TWO ARE UNEQUAL IN SOME PLACE
CAMN T,(TT) ;NO INFO IF CORRESPONDING PLACES ARE EQUAL
JRST ALPL3
JUMPE D,FALSE ;BUT NOT EQUAL IN SAMENAMEP MEANS LOSE
MOVE TT,(TT) ;MUST DO SOME HAIR FOR THE ALPHALESSP
LSHC T,-1 ; COMPARE TO WIN, SINCE PNAME WORDS ARE
CAMG T,TT ; LOGICAL DATA, NOT ARITHMETIC
JRST FALSE ;2ND ARG STRICTLY LESS THAN FIRST
JRST TRUE ;2ND ARG STRICTLY GREATER THAN FIRST
ALPL2: EXCH A,D
JUMPE D,NOT ;IF ALPHAL, WIN WHEN A NON-NUL
;[FOR 1ST ARG IS PROPER SUBSTRING OF 2ND]
POPJ P, ;IF SAMEPN, WIN WHEN A NUL
;[FOR CORRESPONDENTS HAVE BEEN EQUAL ALL ALONG]
SYSP: MOVEI B,TRUTH ;SUBR 1 - DETERMINE WHETHER SYMBOL HAS
SYSP3:
10% CAIGE A,BEGFUN ; A "SYSTEM" SUBR PROPERTY
10$ CAIL A,ENDFUN
JRST FALSE
10% CAIG A,ENDFUN
10$ CAIL A,BEGFUN
JRST BRETJ
CAIGE A,BSYSAR ; ... OR MAYBE A SYSTEM ARRAY PROPERTY
JRST SYSP6
CAIGE A,ESYSAR
JRST BRETJ ;RETURNS T FOR SUBR/SAR POINTERS
CAIE B,QAUTOLOAD
JRST SYSP6
CAIL A,BSYSAP
CAIL A,ESYSAP
JRST FALSE
JRST BRETJ
SYSP6: JSP T,SPATOM ;RETURNS FALSE FOR NON-SYMBOLS
JRST FALSE
PUSH P,A ;TRY THE AUTOLOAD PROPERTY FIRST
MOVEI B,QAUTOLOAD
PUSHJ P,$GET
JUMPN A,SYSPZ
SYSPZ1: POP P,A
MOVEI B,ASBRL
PUSHJ P,GETL1
JUMPE A,CPOPJ ;RETURNS FALSE FOR SYMBOLS WITH NO FN PROPS
HLRZ B,(A) ;RETURNS NAME OF PROPERTY OF ONE IS FOUND,
JSP T,%CADR
JRST SYSP3 ; AND THE PROPERTY VALUE PASSES THE SYSP TEST
SYSPZ: CAIL A,BSYSAP
CAIL A,ESYSAP
JRST SYSPZ1 ;AUTOLOAD PROPERTY NOT SYSTEM'S - GO ON
POP P,A ;ELSE FLUSH STACK OF A
MOVEI A,QAUTOLOAD ;AND RETURN AUTOLOAD
POPJ P,
GCTWA: JUMPE A,GCTWI
HLRZ A,(A)
PUSHJ P,NOTNOT
MOVEM A,VGCTWA
JRST GCTWX
GCTWI: SETOM IRMVF
GCTWX: MOVEI A,IN0
SKIPGE IRMVF
ADDI A,1
SKIPE VGCTWA
ADDI A,10
POPJ P,
;COPYSYMBOL CPSY3 CPSY CPSY0 CPSY1 CPSY4
SUBTTL COPYSYMBOL FUNCTION
COPYSYMBOL:
JSP T,SPATOM
JSP T,PNGE
CPSY3: JUMPN B,CPSY0 ;IF NON-NIL SECOND ARG COPY PLIST, VC AND ARGS
CPSY: PUSHJ P,PNGT0 ;COPY THE SYMBOL
JRST SYCONS
CPSY0: PUSH P,A ;SAVE OLD SYMBOL
PUSHJ P,CPSY ;GET A NEW COPY
EXCH A,(P) ;SAVE NEW COPY, GET OLD
PUSH P,A ;SAVE OLD ON TOP OF STACK
HRRZ A,(A) ;GET PLIST
JUMPE A,CPSY1 ;IF NO PLIST THEN TRY VALUE CELL
MOVEI B,NIL ;NOW GET A NEW COPY OF THE PLIST
PUSHJ FXP,SAV5M3
PUSHJ P,.APPEND
PUSHJ FXP,RST5M3
HRRM A,@-1(P) ;STORE IN NEW SYMBOL
CPSY1: SKIPN A,(P)
JRST CPSY4
HLRZ A,(A) ;POINTER TO OLD SYMBOL BLOCK
HLRZ T,1(A) ;ARGS PROPERTY
JUMPE T,.+3 ;IF NONE THEN DON'T HACK
HLRZ TT,@-1(P) ; ELSE COPY THE ARGS PROPERTY
HRLM T,1(TT)
HRRZ A,@(A) ;GET CONTENTS OF VALUE CELL
CAIN A,QUNBOUND ; IF UNBOUND DON'T BOTHER COPYING
JRST S1PAJ
CPSY4: EXCH AR1,-1(P) ;ELSE COPY VC BY DOING A (SET NEW OLD)
JSP T,.SET
EXCH AR1,-1(P)
JRST S1PAJ
;SETSYNTAX RSSYN1 RSSYN2 RSSYN3 RSSYN5 RSSYN7 RSSYN8 CTRUE RSSYN4
SUBTTL SETSYNTAX AND OTHER READER SYNTAX FUNCTIONS
;ARGS ARE CHAR (AS NUMBER OR ATOM), SYNTAX-CODE, MACRO-OR-TRANSLATION
SETSYNTAX: SETZ AR1, ;SUBR 3
MOVEI AR2A,(B)
JSP T,SPATOM
JRST RSSYN1
JSP T,CHNV1
JSP T,FIX1A
RSSYN1: CAIN AR2A,QMACRO
JRST RSSYN2
CAIE AR2A,QSPLICING
JRST RSSYN3
MOVEI AR1,[QSPLICING,,NIL]
RSSYN2: MOVE B,A
PUSH P,CTRUE
PUSH P,AR1
JRST SSMC43
RSSYN3: MOVSI AR1,40000 ;WAY TO FAKE OUT SSYN0
MOVEI B,(A)
JUMPE C,RSSYN5 ;SKIP IF NO CHTRAN STUFF
PUSHJ P,RSSYN4
HRRZM A,(FXP)
MOVEI A,(B) ;LOSING RETROFIT FOR NSTST
MOVEI B,(C)
PUSHJ P,SSCHTRAN
SUB FXP,R70+1
RSSYN5: JUMPE AR2A,TRUE ;XIT IF NO SYNTAX STUFF
CAIE AR2A,QSINGLE
JRST RSSYN7
NW% PUSH FXP,[600500]
NW$ PUSH FXP,[RS.SCS]
MOVEI C,(FXP)
JRST RSSYN8
RSSYN7: MOVE C,AR2A
PUSHJ P,RSSYN4
HLRZS (FXP)
RSSYN8:
MOVEI A,(B) ;LOSING RETROFIT FOR NSTAT
MOVEI B,(C)
PUSHJ P,SSSYNTAX
SUB FXP,R70+1
CTRUE: JRST TRUE
RSSYN4: PUSH FXP,R70
MOVEI A,(C)
JSP T,SPATOM
POPJ P,
MOVEI C,(B) ;SAVE B
JSP T,CHNV1
MOVEI A,(TT)
MOVEI B,(C) ;RESTORE B
MOVEI C,(FXP) ;SET C TO BE FIXNUM ON TOP OF PDL
JSP T,RSXST
MOVE TT,@RSXTB
MOVEM TT,(FXP)
POPJ P,
;SSCHTRAN SSSYNTAX SSSYN1 GRCTI SMACRO SMCR1 GETMAC
SSCHTRAN:
NW% SKIPA F,[HRRM R,(TT)]
NW$ SKIPA F,[DPB R,[001100+TT,,]]
SSSYNTAX:
NW% MOVSI F,(HRLM R,(TT))
NW$ MOVE F,[LDB R,[113300+TT,,]]
PUSH P,[SPROG3]
MOVSI AR1,40000 ;LOSING CROCK
SSSYN1:
MOVEI C,(B) ;LOSING CROCK
MOVEI B,(A)
PUSHJ P,GRCTI ;GET INDEX FOR RCT INTO D
TLNE AR1,40000 ;40000 BIT SAYS EVAL 3RD ARG
JSP T,FXNV3
JSP T,SMCR2 ;LOCK AND SETUP RCT ARRAY PTR INTO TT
ADDI TT,(D)
XCT F ;MAY SKIP (FOR (STATUS CHTRAN))
UNLKPOPJ ;MUST BE ONLY ONE INSTRUCTION.
NW% TLNE TT,4000 ;SKIP UNLESS MACRO CHAR
NW$ TLNE TT,(RS.MAC);SKIP UNLESS MACRO CHAR
MOVEI TT,(D) ;USE CHARACTER AS ITS OWN CHTRAN
TLZ TT,-1
UNLKPOPJ
GRCTI: JSP T,FXNV2 ;GET READTABLE INDEX
SA% CAIGE D,NASCII
SA$ CAIGE D,1010
JUMPGE D,CPOPJ
JRST GRCTIE
SMACRO:
MOVEI B,(A)
PUSHJ P,GRCTI
JSP T,SMCR2
ADD TT,D
SMCR1: MOVEI A,NIL
MOVE C,(TT)
UNLOCKI
NW% TLNN C,4000
NW$ TLNN C,(RS.MAC)
POPJ P, ;EXIT WITH NIL IF NO MACRO CHAR
NW% TLNE C,40
NW$ TRNE C,RS.ALT
MOVEI A,QSPLICING ;SPLICING TYPE
PUSHJ P,NCONS
NW% MOVEI B,(C)
NW$ PUSH P, A
NW$ PUSHJ P, GETMAC
NW$ HRRZ B, (A) ;CDR OF ASSQ IS FUNCTION
NW$ POP P, A
PUSHJ P,XCONS
POPJ P,
IFN NEWRD,[
;;;ROUTINE TO GET MACRO ENTRY. CHAR IN D.
;;; CLOBBERS A, B, TT, RETURNS (CHAR . FCN) IN A
;;; RSXST MUST HAVE BEEN DONE
GETMAC: MOVEI A, 206 ;GET FCN LIST FROM READTABLE
HRRZ B, @RSXTB ;..
MOVE A, D ;CHARACTER
PUSHJ P, IASSQF ;DEPENDS ON D,R,F BEING PRESERVED
JUMPE A, [LERR [SIXBIT/MACRO CHARACTER VANISHED#!!/]]
POPJ P,
] ;END OF IFN NEWRD
;SSMACRO SSMC43 SSM4 SSM4AA SSM3 SMCR2 SSM1 SSGCREL SSGCPRO SSGCP1 SSPROQ SSPROX SSGRL2 SSGRL1
SSMACRO:
CAME T,XC-3 ;CROCK TO GET NSTAT UP FAST
PUSH P,R70
POP P,A
POP P,C
POP P,B
SKIPE A
PUSHJ P,ACONS
PUSH P,A
SSMC43: PUSHJ P,GRCTI
JSP T,SMCR2
ADD TT,D
HRRZM TT,RM4
JUMPE C,SSM1
NW% HRLI C,404500
NW$ MOVE C,[RS.CMS]
SKIPE A,(P)
αIJRST SSM3
SSM4:
EXCH C,@RM4
NW% HRRZ A,C
NW% TLNE C,4000
NW% PUSHJ P,SSGCREL ;CLOBBERS C
IFN NEWRD,[
TLNN C,(RS.MAC)
JRST SSM4AA
PUSHJ P, GETMAC
;REMOVE PREVIOUS MACRO FUNCTION FROM ASSQ LIST.
;**** (SETQ MAC-LIST (DELQ A MAC-LIST)) ****
SSM4AA: ;AND NO GCREL CRUFT NECC.
]
MOVE C,@RM4
NW% HRRZ A,C
NW% TLNE C,4000
NW% PUSHJ P,SSGCPRO
NW% HRRM A,@RM4
NW$ DPB D, [001100,,@RM4] ;MACROS MUST HAVE SELF AS CHTRAN
NW$ MOVE B, D ;***SURELY THIS COULD BE A LOT LESS KLUDGEY***
NW$ PUSHJ P, XCONS
NW$ MOVE B, A
NW$ MOVEI A, 206
NW$ MOVE A, @RSXTB
NW$ PUSHJ P, XCONS
NW$ MOVE B, A
NW$ MOVEI A, 206
NW$ MOVEM B, @RSXTB
SUB P,R70+1
MOVE TT,RM4
JRST SMCR1
SSM3: MOVEI AR1,(B)
HLRZ A,(A)
JSP T,CHNV1
CAIN TT,"S ;SPLICINGP
NW% TLO C,40
NW$ TRO C,RS.ALT
MOVEI B,(AR1)
JRST SSM4
SMCR2: LOCKI
JRST RSXST
SSM1: HRLI D,2
MOVE C,RCT0(D)
NW% TLNE C,4000 ;WAS IT ORIGINALLY A MACRO CHAR?
NW$ TLNE C,(RS.MAC)
MOVE C,D
JRST SSM4
SSGCREL: TDZA D,D ;MUST HAVE USER INTERRUPTS OFF
SSGCPRO: MOVEI D,1
JSP T,SPATOM
JRST SSGCP1
HLRZ T,(A) ;GET SYMBOL BLOCK, FIRST WORD
MOVE T,(T)
TLNE T,SY.CCN ;IF SYM NOT PROTECTED BECAUSE OF BEING
POPJ P, ; "NEEDED" BY COMPILED CODE, THEN PROLIS-IFY
SSGCP1: SAVE A B
HRRZ R,(B)
CAIGE R,200
HRL R,VREADTABLE
HRRI R,IN0(R)
MOVE B,PROLIS
JUMPE D,SSGRL1
PUSHJ P,ASSOC
JUMPE A,SSPROQ
HLRZ A,(A)
MOVEM A,-1(P)
SSPROQ: MOVE B,R
PUSHJ P,CONS1
MOVE B,-1(P)
PUSHJ P,XCONS
MOVE B,PROLIS
PUSHJ P,CONS
MOVEM A,PROLIS
MOVE A,-1(P)
SSPROX: POP P,B
JRST POP1J
SSGRL2: MOVE A,-1(P)
SSGRL1: PUSHJ P,IASSQF ;INTERNAL ASSQ WITH NO CHECKING
JRST SSPROX ; NO SKIP ON FAILURE TO FIND
HRRZ B,(B) ; SKIP ON SUCCESS
HRRZ T,(A)
CAME R,(T) ;COMPARES READTABLE AND NUMBER
JRST SSGRL2
MOVE B,PROLIS
PUSHJ P,.DELETE
MOVEM A,PROLIS
MOVEI A,NIL
JRST SSPROX
;AUTOLOAD
AUTOLOAD: ;T SHOULD CONTAIN THE SYMBOL NAME, A SHOULD
HRL A,T ; CONTAIN THE AUTOLOAD PROPERTY
PUSHJ P,ACONS
MOVSS (A)
PUSH P,A ;FOR GC PROTECTION
PUSH FXP,D
MOVSI D,(A)
HRRI D,1000 ;AUTOLOAD USER INTERRUPT
PUSHJ P,UINT
POP FXP,D
JRST POP1J
;SYSCALL SCSL0 SCSL1 SCSL1A SCSL6 SCSL3 SCSL4 SCSL5 SCSTMA SCSFAI SCSXIT SCSXT1 SCSTAT STATER SSTATUS STATUS STAT1 STAT2 STAT3 STAT6 STAT6A STAT7 STAT8
IFN ITS,[
SUBTTL SYSCALL FUNCTION
SYSCALL:
MOVEI D,QSYSCALL
CAML T,[-10.]
CAMLE T,XC-2
JRST WNALOSE
MOVEI D,2(P)
ADD D,T ;D POINTS TO ARG WITH .CALL NAME IN IT
MOVNM T,SYSCL8 ;#ARGS+2
JSP T,0PUSH+2(T) ;PUSH SLOTS FOR COPYING FIXNUM ARGS
SCSL0: MOVE A,-1(D)
JSP T,FXNV1 ;<CONTROL-BITS>,,<NUMBER-OF-OUTPUTS-DESIRED>
HLL D,TT
HRRZS TT
CAILE TT,20
JRST SCSTMA
HRLM TT,SYSCL8 ;#ANSWERS,,#ARGS+2
MOVE A,(D)
PUSH FXP,D
PUSHJ P,SIXMAK
MOVSI D,(SETZ)
EXCH D,(FXP) ;THE SETZ GETS PUT OUT HERE
MOVEI R,-1(FXP)
MOVEI F,(FXP)
PUSH FXP,TT ;THE SIXBIT FOR THE NAME OF THE .CALL
HLRZ T,D
TLZ D,-1
TLO T,5000 ;THE CONTROL BITS ARG
JRST SCSL1A
SCSL1: HRRZ T,(D)
SKOTT T,FX
JRST SCSL1A
MOVE TT,(T)
MOVEM TT,(R)
MOVEI T,(R)
SUBI R,1
SCSL1A: PUSH FXP,T
MOVEI AR1,(T)
CAIN AR1,TRUTH
HRRZ AR1,V%TYI
MOVEI T,(AR1) ;THIS IS AN INLINE CODED XFILEP
LSH T,-SEGLOG
MOVE T,ST(T)
TLNN T,SA
JRST SCSL6
MOVE T,ASAR(AR1) ;MUST ALSO HAVE FILE BIT SET
TLNN T,AS.FIL\AS.JOB ;ALLOW EITHER JOB OR FILE
JRST SCSL6
MOVE TT,[@TTSAR]
ADDM TT,(FXP)
SCSL6:
CAIGE D,(P) ;LOOP TO INSTALL REMAINING INPUT ARGS
AOJA D,SCSL1
HLRZ D,SYSCL8
SOJL D,SCSL4
MOVEI T,1(FXP)
HRLI T,2000
SCSL3: PUSH FXP,T ;LOOP TO INSTALL ANSWER REQUESTS
ADDI T,1
SOJGE D,SCSL3
SCSL4: MOVSI T,(SETZ) ;FINAL SETZ SIGNALS END OF PARAMETERS
IORM T,(FXP) ;[THERE WILL ALWAYS BE AT LEAST ONE, I.E. THE CONTROL]
MOVEI TT,F.CHAN
.CALL (F)
JRST SCSFAI
SETZB A,B
HLRZ D,SYSCL8
SCSL5: JUMPE D,SCSXIT ;LOOP TO LISTIFY UP NUMERIC ANSWERS
POP FXP,TT
PUSHJ P,CONSFX
SOJA D,SCSL5
SCSTMA: MOVEI TT,15
JRST SCSXT1
SCSFAI: .SUSET [.RBCHN,,R]
.CALL SCSTAT
.VALUE
LDB TT,[220600,,D]
MOVE D,SYSCL8
HLRS D
SUB FXP,D ;TAKE OFF THE SLOTS FOR ANSWERS
JSP T,FXCONS ;LISP NUMBER FOR ERROR CODE
SCSXIT: MOVE D,SYSCL8 ;SYSCL8 HAS 2+#ARGS
ADDI D,-1(D) ;PUSHED WAS 3+2*#ARGS
HRLS D ; WHICH IS 2*SYSCL8-1
SUB FXP,D
SCSXT1: MOVE D,SYSCL8
HRLS D
SUB P,D ;STRAIGHTEN UP P
POPJ P,
SCSTAT: SETZ
SIXBIT \STATUS\ ;GET CHANNEL STATUS
,,R ;CHANNEL #
402000,,D ;STATUS WORD
.SEE IOCERR
.SEE CHNI1
] ;END OF IFN ITS
;;@ STATUS 223 HAIRY STATUS FUNCTIONS
;;; ***** MACLISP ****** HAIRY STATUS FUNCTIONS ******************
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
SUBTTL INTERPRETER FOR STATUS SERIES
STATER: MOVEI B,(AR2A)
MOVEI A,(F)
PUSHJ P,CONS
FAC [ILLEGAL REQUEST!]
SSTATUS:
SKIPA F,CQSSTATUS ;FEXPR
STATUS: MOVEI F,QSTATUS ;FEXPR
MOVEI AR2A,(A)
JUMPE A,STATER
HLRZ A,(A) ;FIRST ARG IS FUNCTION NAME
PUSHJ P,STLOOK ;LOOK IT UP IN ASCII TABLE
JRST STATER
CAIE F,QSTATUS ;STATUS OR SSTATUS?
ADDI R,STBSS-STBS
ADDI R,STBS
MOVE D,(R) ;GET TABLE ENTRY
LSH D,13
ASH D,-12
TLO D,1
HRRI D,(F)
MOVEM D,SWNACK ;HACK FOR ARGS CHECKING
MOVEI A,(AR2A)
MOVEI TT,SWNACK
JRST FWNACK
;RETURN HERE FROM FWNACK IF ARGS OKAY
STAT1: HRRZ A,(A) ;CDR ARGS LIST
HRLI R,410200
PUSH FXP,R ;BYTE POINTER TO ARGS DESCRIPTORS
PUSH FXP,R70 ;COUNTER FOR ARGS
STAT2: JUMPE A,STAT6 ;JUMP IF NO MORE ARGS
PUSH P,A
HLRZ A,(A) ;ELSE GET NEXT ARG
ILDB T,-1(FXP) ;GET ARG DESCRIPTOR
JRST .+1(T)
JRST STAT6 ;0 END OF ARGS
JRST STAT3 ;1 QUOTED ARG
JRST STAT8 ;2 QUOTED LIST OF REST
PUSHJ P,EVAL ;3 EVALUATED ARG
STAT3: EXCH A,(P) ;LEAVE ARG ON PDL
HRRZ A,(A)
SOS T,(FXP) ;COUNT ARGS
CAML T,XC-4 ;NO MORE THAN FOUR ALLOWED
JRST STAT2 ; (UNLESS IT IS AN LSUBR)
MOVSI TT,020000 ;FOR AN LSUBR, ARRANGE FOR
ADDB TT,-1(FXP) ; THE LAST ARG SPEC TO BE REUSED
LDB TT,[410300,,(TT)] ;SEE WHETHER IT'S REALLY AN LSUBR
CAIE TT,1
CAIN TT,3
JRST STAT2
STAT6: POP FXP,T ;-<# OF ARGS>
POP FXP,F ;RH IS ADDRESS OF TABLE ENTRY
LDB TT,[410300,,(F)] ;GET STATUS SUBR DISPATCH TYPE
STAT6A: HRRZ D,(F)
JRST STAT7(TT)
STAT7: JSP R,PDLA2(T) ;0 SUBR-TYPE FUNCTION
JRST (D) ;1 LSUBR-TYPE FUNCTION
JRST STSCH ;2 SUBR-TYPE WITH CHAR ARG
JRST STSCH ;3 LSUBR-TYPE WITH CHAR ARG
JRST STSGVAL ;4 GET LISP VALUE
JRST STSSVAL ;5 SET LISP VALUE
JRST STSSTNIL ;6 SET TO T-OR-NIL
MOVE TT,(D) ;7 GET FIXNUM VALUE
JRST FIX1
STAT8: MOVE A,(P)
SETZM (P)
JRST STAT3
;STSGVAL CQSSTATUS STSSVAL STSSV1 STSSTNIL STLOOK STLK1 STSCH STSCH1 STSCH2
STSGVAL: HRRZ A,(D)
CQSSTATUS: POPJ P,QSSTATUS
STSSVAL: POP P,A
JSP T,PDLNMK
STSSV1: MOVEM A,(D)
POPJ P,
STSSTNIL: POP P,A
PUSHJ P,NOTNOT
JRST STSSV1
STLOOK: PUSHJ P,PNGET ;LOOK UP 5 CHARS IN TABLE
HLRZ A,(A) ;F SAYS WHETHER STATUS OR SSTATUS
MOVE TT,(A) ;SKIP ON SUCCESS, LEAVING POINTER IN R
MOVSI R,-LSTBA
CAIE F,QSTATUS
MOVSI R,-LSSTBA
STLK1: CAMN TT,STBA(R)
JRST POPJ1
AOBJN R,STLK1
POPJ P,
STSCH: PUSH FXP,F
PUSH FXP,T
ADDI T,1(P)
HRRZ A,(T)
JSP T,SPATOM
JRST STSCH1
PUSHJ P,PNGET
HLRZ A,(A)
MOVE TT,(A)
LSH TT,-35
JSP T,FXCONS
JRST STSCH2
STSCH1: PUSHJ P,EVAL
JSP T,FXNV1
STSCH2: MOVE T,(FXP)
ADDI T,1(P)
HRRM A,(T)
POP FXP,T
POP FXP,F
LDB TT,[410300,,(F)]
SUBI TT,2
JRST STAT6A
;SNOFEATURE SFEATURE SSFEATURE SSFEA1 SSFEA2 SSNOFEATURE SSSSLU SSSSS SSSS SSSSS1 SARRAY
SUBTTL STATUS FEATURES FEATURE NOFEATURE, SSTATUS, ARRAY
SNOFEATURE:
PUSH P,CNOT
SFEATURE:
HRRZ B,FEATURES
JUMPE A,BRETJ
HLRZ A,(A)
PUSHJ P,MEMQ1
JRST NOTNOT
SSFEATURE:
PUSH P,A
HRRZ B,FEATURES
PUSHJ P,MEMQ1
JUMPN A,SSFEA2
HRRZ A,(P)
HRRZ B,FEATURES
PUSHJ P,CONS
SSFEA1: MOVEM A,FEATURES
SSFEA2: JRST POPAJ
SSNOFEATURE:
PUSH P,A
HRRZ B,FEATURES
PUSHJ P,.DELQ
JRST SSFEA1
SSSSLU: POP P,A
PUSHJ P,STLOOK
JRST FALSE
JRST TRUE
SSSSS: SKIPA F,CQSSTATUS
SSSS: MOVEI F,QSTATUS
JUMPN T,SSSSLU
PUSH P,R70
CAIN F,QSTATUS
SKIPA F,[-LSTBA,,]
MOVSI F,-LSSTBA
SSSSS1: MOVE T,STBA(F)
MOVEM T,PNBUF
SETOM LPNF
MOVEI C,PNBUF
PUSHJ P,RINTERN
MOVE B,(P)
PUSHJ P,CONS
MOVEM B,(P)
AOBJN F,SSSSS1
JRST POPAJ
;STATUS ARRAY RETURNS A LIST OF FOUR NUMBERS:
; <MIN # OF DIMS> <MAX # OF DIMS> <MIN AXIS LENGTH> <MAX AXIS LENGTH>
;THE LIST IS FRESHLY CONSED ON EACH CALL, AND MAY BE DESTRUCTIVLY MODIFIED
SARRAY: SETZ B, ;START WITH NIL
MOVEI TT,777777 ;APPROXIMATION OF MAXIMUM AXIS LENGTH
JSP T,FXCONS
JSP T,%CONS
MOVEI B,IN1
JSP T,%XCONS
MOVEI B,IN5
JSP T,%XCONS
MOVEI B,IN1
JRST XCONS ;CONS UP FINAL NUMBER THEN RETURN
;SSPLSS SPLSS SCHTRAN SSYNTAX
SUBTTL STATUS +, STATUS CHTRAN, STATUS SYNTAX
SSPLSS: MOVEI C,RD8N
SKIPE A
MOVEI C,RD8W
MOVEM C,RDOBJ8
SPLSS: MOVE A,RDOBJ8
SUBI A,RD8N
JRST NOTNOT
SCHTRAN:
SKIPA F,[SKIPA TT,(TT)]
SSYNTAX:
NW% MOVSI F,(HLRZ TT,(TT))
NW$ MOVE F,[LDB TT,[113300+TT,,0]]
PUSH P,CFIX1
SETZ AR1, ;CROCK
JRST SSSYN1
;STTY STTY1 ZZZ STTY3 STTY4 ZZZ ZZZ
SUBTTL STATUS TTY, SSTATUS TTY
;;; (STATUS TTY <FILE>) RETURNS A LIST OF NUMBERS CONCERNING THE TTY:
;;; FOR ITS: (<TTYST1> <TTYST2> <TTYSTS>)
;;; FOR D10: (<GETLCH WORD> <FILE STATUS>)
;;; FOR SAIL: (<GETLIN WORD> <FILE STATUS> <SETACT 1> <SETACT 2> <SETACT 3> <SETACT 4>)
;;; FOR D20: (<CCOC 1> <CCOC 2> <JFN MODE WORD> <DEFERRED INTERRUPT CHARS MASK>)
;;; RETURNS NIL IF <FILE> IS OMITTED AND THE JOB DOES NOT POSSESS A CONTROLLING TTY.
STTY: JUMPN T,STTY1
;TEST TO SEE WHETHER WE POSSESS A CONTROLLING TTY
IFN ITS,[
.SUSET [.RTTY,,TT] ;FOR ITS, SEE IF THIS JOB HAS THE TTY
JUMPL TT,FALSE .SEE %TBNOT
] ;END OF IFN ITS
IFN D10,[
IFN SAIL,[
GETLN D, ;RETURNS ZERO IF JOB IS DETACHED
JUMPN D,FALSE
] ;END OF IFN SAIL
IFE SAIL,[
GETLIN D, ;FOR D10, LH OF GETLIN WORD ZERO
TLNN D,-1 ; MEANS JOB IS DETACHED
JRST FALSE
] ;END OF IFE SAIL
] ;END OF IFN D10
IFN D20,[
LOCKI
GJINF ;FOURTH RETURNED VALUE IS -1 FOR
MOVE T,4
SETZB 1,2 ; A DETACHED JOB
SETZB 3,4
UNLOCKI
AOJE T,FALSE
] ;END OF IFN D20
SKIPA AR1,V%TYI
STTY1: POP P,AR1
PUSHJ P,TFILOK ;SAVES D (FOR SAIL), DOES A LOCKI
POP FXP,T ;POP THE LOCKI WORD
IFN ITS,[
.CALL TTYGET ;GET THREE VALUES IN D, R, F
.LOSE 1400
PUSH FXP,D ;TTYST1
PUSH FXP,R ;TTYST2
PUSH FXP,F ;TTYSTS
ZZZ==3
] ;END OF IFN ITS
IFN D10,[
PUSHJ P,D10TNM ;RETURNS APPROPRIATE TERMINAL NUMBER IN D
SA% GETLCH D
SA$ GETLIN D
PUSH FXP,D
SKIPL F.MODE(TT) .SEE FBT.CM
JRST STTY3
MOVSI R,(SIXBIT \TTY\) ;FOR THE REGULAR TTY,
SETZB D,F ; OPEN A TEMPORARY CHANNEL
OPEN TMPC,D ; SO CAN GET THE CHANNEL STATUS
HALT
GETSTS TMPC,D
RELEASE TMPC,
JRST STTY4
STTY3: MOVE R,F.CHAN(TT) ;FOR ANY OTHER TTY, USE THE EXISTING CHANNEL
LSH R,27
IOR R,[GETSTS 0,D]
XCT R
STTY4: PUSH FXP,D
IFE SAIL, ZZZ==2
IFN SAIL,[
PUSHN FXP,4
MOVSI D,-3(FXP)
SETACT D ;GET FOUR ACTIVATION WORDS
ZZZ==6
] ;END OF IFN SAIL
] ;END OF IFN D10
IFN D20,[
HRRZ 1,F.JFN(TT)
RFCOC ;READ CCOC WORDS
PUSH FXP,2 ;CCOC1
PUSH FXP,3 ;CCOC2
RFMOD ;READ JFN MODE WORD FOR TERMINAL
PUSH FXP,2
MOVE 1,[RT%DIM,,.FHSLF]
RTIW ;READ DEFERRED INTERRUPT WORD
PUSH FXP,3
SETZB B,C
ZZZ==4
] ;END OF IFN D20
PUSH FXP,T ;LOCKI WORD
UNLOCKI
PUSHJ P,CONS1PFX
REPEAT ZZZ-2, PUSHJ P,CONSPFX
JRST CONSPFX
EXPUNGE ZZZ
;SSTTY SSTTY1 SSTTY3 SSTTY7 SSTTY3 SSTTY4 SSTTY5 SSTTY3 SSTTY4 SSTTY2 TTY2ST TTYSAC
;;; (SSTATUS TTY <NUM1> <NUM2> ... <NUMN> <TTY>) SETS THE
;;; TTY STATUS WORDS FOR <TTY> (WHICH MAY BE OMITTED).
;;; ANY PARAMETERS WHICH ARE OMITTED OR NIL ARE NOT CHANGED.
SSTTY: HRRZ AR1,(P) ;LSUBR
CAIN AR1,TRUTH ;LAST ARG T => DEFAULT TTY
HRRZ AR1,V%TYI
JSP TT,XFILEP ;SEE IF LAST ARG IS A TTY
SKIPA AR1,V%TYI ;IF NOT, WE USE THE DEFAULT
AOSA D,T ;IN ANY CASE, PUT ADJUSTED NUMBER
SKIPA D,T ; OR ARGUMENTS IN D
POPI P,1 ; AND ADJUST THE STACK
SKIPN F,D ;NO ARGUMENTS MEANS CHANGE NOTHING
JRST TRUE
MOVE R,FXP ;SAVE CURRENT LEVEL OF FXP
SSTTY1: POP P,A ;FOR EACH ARGUMENT
SKIPE A ; WE PUSH TWO
JSP T,FXNV1 ; WORDS ONTO FXP:
PUSH FXP,TT ; THE FIRST IS THE NUMERIC VALUE, IF ANY,
PUSH FXP,A ; AND THE SECOND IS ZERO IF THE ARG WAS NIL
AOJL D,SSTTY1
;BECAUSE THE ARGUMENTS WERE POPPED OFF P IN REVERSE ORDER,
; THEY CAN NOW BE POPPED OFF FXP IN THE CORRECT ORDER.
;F HAS THE NEGATIVE OF THE NUMBER OF ARGUMENTS.
PUSH P,R ;NOW SAVE OLD FXP ON STACK
IT% PUSHJ P,TFILOK ;DOES A LOCKI, SAVES F
IT$ PUSHJ P,TIFLOK ;FOR ITS, WE ARE SETTING INPUT PARAMETERS
POP FXP,AR2A ;POP LOCKI WORD
IFN ITS,[
POP FXP,T
POP FXP,D
SKIPN T
SKIPA D,TI.ST1(TT) ;GET COPY OF THE OLD VALUE IF NOT SETTING NEW
MOVEM D,TI.ST1(TT) ;UPDATE TTYST1 WORD
AOJE F,SSTTY3 ;JUMP IF NO MORE ARGUMENTS
POP FXP,T
POP FXP,R
SKIPN T
SKIPA R,TI.ST2(TT)
MOVEM R,TI.ST2(TT) ;UPDATE TTYST2 WORD
AOJE F,SSTTY3 ;JUMP IF NO MORE ARGUMENTS
POP FXP,T
POP FXP,F
JUMPE T,SSTTY3 ;NULL THIRD ARG, THEN NEEDN'T DO HAIRIER CALL
.CALL TTYSAC ;THREE WORDS ARE IN D, R, F
.LOSE 1400
JRST SSTTY2
SSTTY3: .CALL TTY2ST ;SET JUST TTYST1, TTYST2
.LOSE 1400
] ;END OF IFN ITS
IFN D10,[
POP FXP,D
POP FXP,T
JUMPE D,SSTTY7
IFE SAIL,[
PUSHJ P,D10TNM
CAMN D,XC-1
GETLCH D
HRRI T,(D)
SETLCH T
] ;END OF IFE SAIL
IFN SAIL,[
SKIPL F.MODE(TT) .SEE FBT.CM
SETLIN T
] ;END OF IFN SAIL
SSTTY7: AOJE F,SSTTY2
POP FXP,D
POP FXP,T
JUMPE D,SSTTY4 ;FOR NULL ARG, FORGET THE FOLLOWING HAIR
SKIPL F.MODE(TT) .SEE FBT.CM
JRST SSTTY3
PUSH FXP,F
MOVSI R,(SIXBIT \TTY\)
SETZB D,F
OPEN TMPC,D ;OPEN A TEMP CHANNEL FOR THE TTY
HALT
SETSTS TMPC,T ;SET THE STATUS
RELEASE TMPC,
POP FXP,F
JRST SSTTY4
SSTTY3: MOVE R,F.CHAN(TT)
LSH R,27
IOR R,[SETSTS 0,T]
XCT R
SSTTY4:
IFN SAIL,[
AOJE F,SSTTY2 ;JUMP IF NO MORE ARGS
IRPC X,,[1234]
POP FXP,D
POP FXP,T
SKIPE D
MOVEM T,TI.ST!X(TT) ;UPDATE ACTIVATION WORD X
IFSN X,4, AOJE F,SSTTY5
TERMIN
SSTTY5: MOVEI T,TI.ST1(TT)
SETACT T
] ;END OF IFN SAIL
] ;END OF IFN D10
IFN D20,[
HRRZ 1,F.JFN(TT) ;GET JFN FOR SUBSEQUENT JSYS'S
POP FXP,T
POP FXP,D
SKIPE T
MOVEM D,TI.ST1(TT) ;UPDATE CCOC1
AOJE F,SSTTY3 ;JUMP IF NO MORE ARGUMENTS
POP FXP,T
POP FXP,R
SKIPE T
MOVEM R,TI.ST2(TT) ;UPDATE CCOC2
IOR D,R
SSTTY3: JUMPE D,SSTTY4 ;JUMP IF NO CHANGE TO CCOC'S
MOVE 2,TI.ST1(TT)
MOVE 3,TI.ST2(TT)
SFCOC ;SET CCOC'S
SSTTY4: AOJGE F,SSTTY2 ;JUMP IF NO MORE ARGUMENTS
POP FXP,D
POP FXP,2
SKIPE D
SFMOD ;UPDATE JFN MODE WORD
AOJE F,SSTTY2
POP FXP,D
POP FXP,3 ;DEFERRED TERMINAL INTERRUPT MASK
JUMPE D,SSTTY2
MOVE 1,[ST%DIM,,.FHSLF]
MOVE 2,[STDTIW] ;STANDARD TERMINAL INTERRUPT WORD
STIW ;SET TERMINAL INTERRUPT WORDS
] ;END OF IFN D20
SSTTY2: POP P,FXP ;RESTORE FXP
PUSH FXP,AR2A ;PUSH BACK LOCKI WORD
20$ SETZB B,C ;CLEAR JUNK OUT OF AC'S
JRST UNLKTRUE
IFN ITS,[
TTY2ST: SETZ
SIXBIT \TTYSET\ ;SET TTY VARIABLES
,,F.CHAN(TT) ;CHANNEL #
,,TI.ST1(TT) ;TTYST1
400000,,TI.ST2(TT) ;TTYST2
TTYSAC: SETZ
SIXBIT \TTYSET\ ;SET TTY VARIABLES
,,F.CHAN(TT) ;CHANNEL #
,,D ;TTYST1
,,R ;TTYST2
400000,,F ;TTYSTS
] ;END OF IFN ITS
;SFRET
SFRET: CAIN B,QBPS ;FIGURE OUT SPACE TYPE
JRST 1(R) ;BPS => SKIP 1
CAIN B,QRANDOM ;BAD SPACE TYPE => SKIP 0
JRST (R) ;LIST, FIXNUM, FLONUM, BIGNUM,
CAIN B,QARRAY ; SYMBOL, SAR => SKIP 2
MOVEI B,QRANDOM
CAIL B,QLIST
CAILE B,QRANDOM
JRST (R)
2DIF [HRREI TT,(B)]-NFF,QLIST
JRST 2(R)
;SUUOLINKS SUUOL1 SSUUOLINKS SSUUL1 SCLI SSCLI CLIVAR SNOINT
SUBTTL STATUS UUOLI, SSTATUS UUOLI, STATUS IOC, STATUS CLI, SSTATUS CLI
SUUOLINKS:
IFE PAGING,[
SKIPN T,LDXSIZ
JRST FALSE ;RETURN NIL IF NO XCT HACKERY HAS BEEN DONE
SETZB TT,D ;ZERO COUNTER
TLNE T,400000
MOVEI D,TRUTH ;D GETS TRUE IF PURIFIED
MOVNS T ;MAKE UP AOBJN POINTER FOR XCT CALL AREA 2
HLL T,LDXBLT
MOVSS T
SUUOL1: SKIPN (T) ;COUNT FREE CELLS IN XCT CALL AREA
AOS TT
AOBJN T,SUUOL1
JSP T,FIX1A ;RETURN LIST OF PURE FLAG AND COUNT
PUSHJ P,NCONS
MOVE B,D
JRST XCONS
] ;END IFE PAGING
IFN PAGING,[
SKIPN LDXPNT ;IF NO XCT PAGES
JRST FALSE ; RETURN FALSE
MOVN TT,LDXLPC ;GET NUMBER OF FREE SLOTS IN LAST SEGMENT
JSP T,FIX1A
PUSHJ P,NCONS
MOVEI B,NIL
SKIPE LDXPFG ;PURIFIED?
MOVEI B,TRUTH
JRST XCONS
] ;END IFN PAGING
SSUUOLINKS:
MOVE A,USENDI
PUSHJ P,SSSENDI ;Re-init SENDI hook and friends
MOVE A,UUSRHNK
PUSHJ P,SSUSRHUNK
MOVE A,UCALLI
PUSHJ P,SSCALLI
IFE PAGING,[
SKIPN TT,LDXBLT ;ZAP CALLS FOR XCTS WITH A BLT
JRST FALSE
MOVEI T,(TT)
ADD T,LDXSM1
BLT TT,(T)
JRST TRUE
] ;END IFE PAGING
IFN PAGING,[
SKIPN T,LDXPNT ;LOOP OVER ALL XCT SEGMENTS
JRST FALSE
SSUUL1: JUMPE T,TRUE ;RETURN TRUE WHEN DONE
HRRZI TT,LDXOFS(T) ;TARGET ADR
HRL TT,LDXPSP(T) ;ADR-OFFSET TO GET DATA FROM
ADD TT,[LDXOFS,,0] ;MAKE INTO SOURCE ADR
BLT TT,SEGSIZ-1(T) ;RECOPY LINK AREA
HLRZ T,LDXPSP(T) ;LINK TO NEXT PAGE
JRST SSUUL1
] ;END IFN PAGING
IFN USELESS*ITS,[
SCLI: MOVEI T,%PICLI ;TEST TO SEE IF THIS BIT IS ON (IN IMASK)
TDNN T,IMASK ;IF ON, RETURN T, ELSE RETURN NIL
JRST FALSE
JRST TRUE
SSCLI: MOVEI T,%PICLI
MOVEI TT,IMASK
SKIPN A ;ON OR OFF?
TLOA TT,(ANDCAM T,) ;OFF, USE ANDCAM
HRLI TT,(IORM T,) ;ON, USE IORM
XCT TT ;MODIFY LISP'S MASK
SKIPN A
TLOA T,(TRZ)
TLO T,(TRO)
.CALL CLIVAR
.LOSE 1400 ;BAD NEWS....
JUMPN A,TRUE
POPJ P,
CLIVAR: SETZ
SIXBIT \USRVAR\
MOVEI %JSELF
MOVEI .RMASK
MOVEI
SETZ T
] ;END IFN USELESS*ITS
SNOINT: SKIPN A,UNREAL ;Check out UNREAL
JRST CPOPJ ; NIL
JUMPL A,TRUE ;-1 = T
POPJ P, ;Else QTTY, just return it
;STIME SDATE STCVT SRCDIR SUNAME SUSERID SJNAME SSUBSYSTEM SJNUMBER SHOMEDIR SHSNAME SHSNA1 SHSNA2
SUBTTL STATUS TIME, DATE, UNAME, USERID, JNAME, JNUMBER, SUBSYSTEM
IFN ITS,[
STIME: .RTIME TT,
JRST SDATE+1
SDATE: .RDATE TT,
AOJE TT,FALSE
MOVE D,TT
SUB D,[202020202021] ;21 ADJUSTS FOR THE AOJE
JSP F,STCVT
JSP F,STCVT
JSP F,STCVT
MOVNI T,3
JRST LIST
STCVT: SETZB TT,R
LSHC TT,6
IMULI TT,10.
ROTC D,6
ADD TT,R
JSP T,FXCONS
PUSH P,A
JRST (F)
SRCDIR: SKIPE A,SUDIR ;STATUS FOR "READ-CONNECTED-DIRECTORY"
POPJ P,
MOVE TT,IUSN
PUSHJ P,SIXATM
MOVEM A,SUDIR
POPJ P,
SUNAME: .SUSET [.RUNAME,,TT]
JRST SIXATM
SUSERID:
.SUSET [.RXUNAME,,TT]
JRST SIXATM
SJNAME: .SUSET [.RJNAME,,TT]
JRST SIXATM
SSUBSYSTEM:
.SUSET [.RXJNAME,,TT]
JRST SIXATM
SJNUMBER:
.SUSET [.RUIND,,TT]
JRST FIX1
SHOMEDIR:
.SUSET [.RHSNAME,,TT]
JRST SIXATM
SHSNAME: ;NEW HAIRY READ HSNAME
JUMPE T,SHOMEDIR ;NO ARGS, SAME AS (STATUS HOMEDIR)
PUSH FXP,T ;SAVE NUMBER OF ARGS OVER SUPERIOR CHECK
JSP T,SIDDTP ;IS THERE A DDT ABOVE US?
JRST SHSNA2 ;NOPE...
POP FXP,T
SETZ TT, ;ASSUME NULL ITS NAME
AOJE T,SHSNA1 ;ITS ARG GIVEN?
POP P,A ;YES, GET THE ITS NAME
PUSHJ P,SIXMAK ;GET SIXBIT INTO TT
SHSNA1: PUSH FXP,TT ;SAVE THE ITS NAME
POP P,A
PUSHJ P,SIXMAK ;CONVERT UNAME TO SIXBIT
PUSH FXP,TT ;STORE THAT ON FXP ALSO
MOVEI TT,-1(FXP) ;POINTER TO FIRST WORD
HRLI TT,..RHSNAME ;FOR .BREAK 12,
.BREAK 12,TT ;READ THE HSNAME FROM DDT
POP FXP,TT ;NOW CONVERT TO AN ATOM
PUSHJ P,SIXATM
POPI FXP,1 ;REMOVE EXTRA WORD FROM STACK
POPJ P, ;THEN RETURN
SHSNA2: POP FXP,T ;RESTORE NUMBER OF ARGS
MOVNS T
SUB P,R70(T) ;REMOVE THE APPROPRIATE NUMBER OF WORDS FROM P
SETZ A, ;RETURN NIL
POPJ P,
] ;END OF IFN ITS
;SHSNAME SDATE STIME STIM2 SSUBSYSTEM SDATE STIME STIM2 SSUBSYSTEM SJNAME SJNUMBER SUSERID SUSER1 SUNAME
IFE ITS,[
SHSNAME: ;HSNAME IS SIMPLY HOMEDIR
MOVNS T
SUB P,R70(T) ;REMOVE THE APPROPRIATE NUMBER OF WORDS FROM P
20$ JRST SRCDIR
20% MOVE A,SUDIR
20% POPJ P,
] ;END IFE ITS
IFN D10,[
IFE SAIL,[
SDATE: MOVE R,[%CNYER]
MOVE D,[%CNMON]
MOVE TT,[%CNDAY]
GETTAB R,
JRST FALSE
SUBI R,1900.
JRST STIM2
STIME: MOVE R,[%CNHOR]
MOVE D,[%CNMIN]
MOVE TT,[%CNSEC]
GETTAB R,
JRST FALSE
STIM2: GETTAB D,
JRST FALSE
GETTAB TT,
JRST FALSE
PUSHJ P,CONS1FX
MOVE TT,D
PUSHJ P,CONSFX
MOVE TT,R
JRST CONSFX
SSUBSYSTEM:
HRROI TT,.GTPRG ;GET PROGRAM NAME FOR MYSELF
GETTAB TT,
JRST FALSE
JRST SIXATM
] ;END OF IFE SAIL
IFN SAIL,[
SDATE: DATE D, ;DATE IN D = <<YEAR-1964.>*12.+MONTH-1>*31.+DAY-1
IDIVI D,31. ;REMAINDER IN R IS DAYS-1
AOJ R,
MOVE T,R
IDIVI D,12. ;REMAINDER HERE IS MONTH-1
AOJ R,
ADDI D,64. ;QUOTIENT IN D IS YEAR-1964.
PUSH FXP,D
PUSH FXP,R
PUSH FXP,T
JRST STIM2
STIME: TIMER TT, ;GET TIME IN TT
IDIVI TT,60. ;REDUCE TO SECONDS
IDIVI TT,60. ;NOW GET SECONDS AS A REMAINDER
MOVE R,D
IDIVI TT,60. ;REMAINDER IS MINUTES
PUSH FXP,TT
PUSH FXP,D ;REST IS HOURS
PUSH FXP,R
STIM2: PUSHJ P,CONS1PFX ;START A LIST WITH NUMBER ON FXP
PUSHJ P,CONSPFX ;ADD FIXNUM TO LIST
JRST CONSPFX ;ADD THIRD FIXNUM TO LIST
SSUBSYSTEM:
SETO TT,
GETNAM TT, ;GET (GENERIC?) NAME OF JOB
JRST SIXATM
] ;END OF IFN SAIL
SJNAME: MOVE TT,D10NAM
JRST SIXATM
SJNUMBER: PJOB TT, ;GET JOB NUMBER
JRST FIX1
SUSERID:
IFE SAIL,[
HRROI TT,.GTNM1 ;GET USER NAME FOR THIS JOB
GETTAB TT,
JRST SUNAME
HRROI D,.GTNM2
GETTAB D,
HALT ;HOW CAN THIS LOSE?
JUMPE TT,SUNAME
SETOM LPNF ;CONVERT TWO WORDS OF SIXBIT
MOVE C,PNBP ; TO ASCII IN PNBUF
SUSER1: LDB T,[360600,,TT]
ADDI T,40
IDPB T,C
LSHC TT,6
JUMPN TT,SUSER1
PUSHJ FXP,RDAEND
JRST RINTERN ;MAKE IT AN ATOMIC SYMBOL
] ;END OF IFE SAIL
SUNAME: GETPPN TT, ;PPNATM EXPECTS PPN IN TT
JFCL
JRST PPNATM
] ;END OF IFN D10
;STIME STIME1 SDATE SDATIM SJNAME SSUBSYSTEM SRCDIR SUSERID SUNAME SJNUMBER
IFN D20,[
STIME: PUSHJ P,SDATIM ;RETURNS TIME IN F
MOVEI TT,(F)
IDIVI TT,60. ;REMAINDER IS SECONDS
MOVE R,D
IDIVI TT,60. ;THIS YIELDS HOURS AND MINUTES
EXCH TT,R
STIME1: PUSHJ P,CONS1FX ;CONS R, D, TT INTO A LIST OF FIXNUMS
MOVE TT,D
PUSHJ P,CONSFX
MOVE TT,R
JRST CONSFX
SDATE: PUSHJ P,SDATIM ;RETURNS DATE IN D AND R
HLRZ TT,R ;DAY-1
HLRZ R,D ;YEAR
SUBI R,1900. ;REDUCE IT TO A YEAR MOD 100.
MOVEI D,1(D) ;MONTH
AOJA TT,STIME1 ;INCREMENT DAY-1 TO DAY, AND GO CONS
SDATIM: LOCKI ;PREVENT JUNK IN AC'S FROM CAUSING TROUBLE
SETO 2, ;CURRENT TIME
SETZ 4,
ODCNV ;GET TIME AND DATE INFORMATION
MOVE D,2 ;RETURN INFORMATION IN D, R, F
MOVE R,3
MOVE F,4
SETZB 1,2 ;PREVENT TROUBLE AFTER UNLOCKI
SETZB 3,4
UNLKPOPJ
SJNAME: ;?
SSUBSYSTEM:
LOCKI
GETNM ;GET PROGRAM NAME
MOVE TT,1
SETZ 1,
UNLOCKI
JRST SIXATM
SRCDIR: JSP T,TNXUDI
JRST PNBFAT
SUSERID: ;?
SUNAME: LOCKI
MOVE TT,[PNBUF,,PNBUF+1]
SETZM PNBUF ;CLEAR PNBUF
BLT TT,PNBUF+LPNBUF-1
GJINF ;GET JOB INFORMATION
MOVE 2,1 ;1 HAS LOGIN DIRECTORY NUMBER
MOVE 1,PNBP
DIRST ;GET EQUIVALENT ASCII STRING
HALT ;BETTER NOT FAIL...
SETZB 1,2
UNLOCKI
JRST PNBFAT ;MAKE ASCII STRING AN ATOM
SJNUMBER:
LOCKI
GJINF ;GET JOB INFORMATION
MOVE TT,3 ;JOB NUMBER
SETZB 1,2
UNLOCKI
JRST FIX1
] ;END OF IFN D20
;SSLINMODE ZZX
SUBTTL STATUS LINMODE
SSLINMODE:
CAMN T,XC-1
SKIPA AR1,V%TYI
POP P,AR1
POP P,A
PUSHJ P,TIFLOK ;DOES A LOCKI
MOVE T,F.MODE(TT)
SKIPN A
IFN ITS,[
ZZX==<%TG<ACT>>*010101010101 ;6 %TGACT BITS
SKIPA R,[STTYW1&ZZX] ;PUT APPROPRIATE ACTIVATION
SKIPA R,[STTYL1&ZZX] ; BITS IN R AND F
SKIPA F,[STTYW2&ZZX]
SKIPA F,[STTYL2&ZZX]
] ;END OF IFN ITS
IFN SAIL,[
SKIPA D,[[SACTW1 ? SACTW2 ? SACTW3 ? SACTW4],,]
SKIPA D,[[SACTL1 ? SACTL2 ? SACTL3 ? SACTL4],,]
] ;END OF IFN SAIL
IFN D20,[
SKIPA R,[XACTW]
SKIPA R,[XACTL]
] ;END OF IFN D20
TLZA T,FBT.LN
TLO T,FBT.LN
MOVEM T,F.MODE(TT)
IFN ITS,[
MOVE D,[ZZX]
ANDCAM D,TI.ST1(TT)
IORM R,TI.ST1(TT) ;CLOBBER IN ONLY ACTIVATION BITS
ANDCAM D,TI.ST2(TT)
IORM F,TI.ST2(TT)
EXPUNGE ZZX
] ;END OF IFN ITS
IFN SAIL,[
HRRI D,TI.ST1(TT)
BLT D,TI.ST4(TT) ;UPDATE STATUS WORDS
MOVEI T,TI.ST1(TT)
SETACT T ;TELL THE SYSTEM ABOUT IT
] ;END OF IFN SAIL
IFN D20,[
MOVEI D,770000 ;BITS 18.-23. ARE FOR WAKE-UP CONTROL
ANDCAM D,TI.ST3(TT)
IORM R,TI.ST3(TT)
] ;END OF IFN D20
UNLOCKI
JRST NOTNOT
;SDOW SDOWQX SDOW SDOWQX SDOW SDOWQX
SUBTTL STATUS DOW
IFN USELESS,[
IFN ITS,[
SDOW: .RYEAR TT,
AOJE TT,FALSE
LSH TT,-31
ANDI TT,16
MOVE T,SDOWQX(TT)
MOVEM T,PNBUF
MOVE T,SDOWQX+1(TT)
MOVEM T,PNBUF+1
JRST PNBFAT
SDOWQX:
IRP DAY,,[SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY]
ASCII \DAY\
TERMIN
] ;END OF IFN ITS
IFN D10,[
SDOW:
IFE SAIL,[
MOVE T,[%CNDTM] ;INTERNAL FORMAT DATE,,TIME
GETTAB T,
JRST FALSE
HLRZS T
] ;END OF IFE SAIL
IFN SAIL,[
DATE T, ;DATE IN T
DAYCNT T, ;CONVERT TO NUMBER OF DAYS
] ;END OF IFN SAIL
;T NOW HAS NUMBER OF DAYS SINCE 1-JAN-64 (A WEDNESDAY)
IDIVI T,7
LSH TT,1
MOVE T,SDOWQX(TT)
MOVEM T,PNBUF
MOVE T,SDOWQX+1(TT)
MOVEM T,PNBUF+1
JRST PNBFAT
SDOWQX: ;FUNNY ORDER FOR DEC-10
IRP DAY,,[WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY,MONDAY,TUESDAY]
ASCII \DAY\
TERMIN
] ;END OF IFN D10
IFN D20,[
SDOW: PUSHJ P,SDATIM ;RH OF R GETS DAY OF WEEK (0 = MONDAY)
LSH R,1
MOVE T,SDOWQX(R)
MOVEM T,PNBUF
MOVE T,SDOWQX+1(R)
MOVEM T,PNBUF+1
JRST PNBFAT
SDOWQX: ;FUNNY ORDER FOR DEC-10
IRP DAY,,[MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY]
ASCII \DAY\
TERMIN
] ;END OF IFN D20
] ;END OF IFN USELESS
;SABBREVIATE SSABBREVIATE SSABB1 SMEMFREE
SUBTTL STATUS ABBREVIATE, STATUS MEMFREE
IFN USELESS,[
SABBREVIATE:
MOVEI TT,LRCT-2
HRRZ A,VREADTABLE
HRRZ TT,@TTSAR(A)
JRST FIX1
SSABBREVIATE:
SKIPN TT,A
JRST SSABB1
MOVEI TT,3
CAIE A,TRUTH
JSP T,FXNV1
SSABB1: MOVEI T,(TT)
MOVEI TT,LRCT-2
HRRZ B,VREADTABLE
HRRM T,@TTSAR(B)
JRST PDLNKJ
] ;END OF IFN USELESS
SMEMFREE:
PG$ MOVE TT,HINXM ;NUMBER OF WORDS IN HOLE
PG$ SUB TT,BPSH ;INTERRUPT HERE WOULD SCREW,
PG% MOVE TT,MAXNXM
PG% SUB TT,HIXM
JRST FIX1 ; WORRY, WORRY, WHO CARES
;SSYST0 SSYSTEM SSYST2 SSYST7 SSYST1 SSYST3 SSYST5 SSYST4 SSYST6
SUBTTL STATUS SYSTEM
SSYST0: WTA [SYMBOL REQUIRED - STATUS SYSTEM!]
SSYSTEM: ;(STATUS SYSTEM) ENTRY-POINT
JSP T,SPATOM
JRST SSYST0
JUMPE A,SSYST6
CAIN A,TRUTH
JRST SSYST6
MOVEI AR1,NIL
MOVEI B,QSYMBOL ;CHECK FOR SYMBOL HEADER IN SYSTEM SPACE
CAIE A,TRUTH
CAIN A,QUNBOUND
JRST SSYST2
CAIL A,QRDQTE ;First system symbol, except for T and QUNBOUND
CAILE A,SYMSYL
JRST SSYST7 ;NOT IN RANGE, CONTINUE CHECKING
SSYST2: EXCH A,AR1
PUSHJ P,XCONS
EXCH A,AR1
SSYST7: MOVEI B,QVALUE
HLRZ C,(A)
HRRZ C,(C)
CAIGE C,ESYSVC
JRST SSYST4
SSYST1: MOVEI B,SSSBRL
PUSHJ P,GETLA
JUMPE A,AR1RETJ
HLRZ B,(A)
HRRZ A,(A)
HLRZ C,(A)
CAIE B,QAUTOLOAD
JRST SSYST3
CAIL C,BSYSAP ;IS IT A SYSTEM AUTOLOAD PROP?
CAIL C,ESYSAP
JRST SSYST1 ;NOPE
JRST SSYST4 ;YUP
SSYST3: CAIE B,QARRAY
JRST SSYST5
CAIL C,BSYSAR ;IS IT A SYSTEM ARRAY
CAIL C,ESYSAR
JRST SSYST1
JRST SSYST4
SSYST5: CAIL C,ENDFUN ;SUBR OR VC ADDRESS IN SYSTEM AREA
JRST SSYST1
SSYST4: EXCH A,AR1 ;A WIN, SO CONS UP THIS PROPERTY NAME
PUSHJ P,XCONS
EXCH A,AR1
JRST SSYST1
SSYST6: MOVEI A,QVALUE
PUSHJ P,NCONS
MOVEI B,QSYMBOL
JRST XCONS
;SSGCTIM SGCTIM SGCTM1 SLVRNO SFILESYSTEM.TYPE SOPSYSTEM.TYPE SSITE STTYREAD SLAP SLAP1 SSTTYREAD SSLAP SSLAP1
SUBTTL STATUS GCTIME, LISPVERSION, TTYREAD, ←, TERPRI, OPSYSTEM, SITE, FILESYSTEM
SSGCTIM:
JSP T,FXNV1
IT$ LSH TT,-2
10$ IDIVI TT,1000.
20$ IDIVI TT,1000.
EXCH TT,GCTIM
JRST SGCTM1
SGCTIM: MOVE TT,GCTIM
SGCTM1: PUSH P,CFIX1 ;FAKE OUT ENTRY INTO RUNTIME
JRST RNTM1
SLVRNO: MOVE A,[440600,,[LVRNO]]
JRST READ6C
SFILESYSTEM.TYPE: HLRZ A,FILEFT
POPJ P,
SOPSYSTEM.TYPE: HLRZ A,OPSYFT
POPJ P,
SSITE: HLRZ A,SITEFT
POPJ P,
STTYREAD: SKIPA TT,[LRCT-2]
SLAP: HRROI TT,LRCT-1
SLAP1: HRRZ A,VREADTABLE
MOVE A,@TTSAR(A)
SKIPL TT
MOVSS A
JRST RHAPJ
SSTTYREAD: SKIPA R,[LRCT-2]
SSLAP: HRROI R,LRCT-1
SSLAP1: PUSHJ P,NOTNOT
HRRZ D,VREADTABLE ;INTERRUPT COULD SCREW HERE (FOO)
JSP T,.STOR0
POPJ P,
;SLINMODE STERPRI STERP1 SSTERPRI
SLINMODE: MOVSI F,FBT<LN>
SKIPN T
SKIPA AR1,V%TYI
POP P,AR1
PUSHJ P,TIFLOK
TDNN F,F.MODE(TT)
TDZA A,A
MOVEI A,TRUTH
UNLKPOPJ
STERPRI:
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
STERP1: SKIPLE FO.LNL(TT)
TDZA A,A
MOVEI A,TRUTH
UNLKPOPJ
SSTERPRI:
CAMN T,XC-1
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
POP P,A
MOVMS FO.LNL(TT)
SKIPE A
MOVNS FO.LNL(TT)
JRST STERP1
;SCRFUN SCRFIL SLOSEF SSLOS0 SSLOSEF BPDLNKJ
SUBTTL STATUS CRFILE, LOSEF
SCRFUN==FALSE ;***** TEMP CROCK *****
SCRFIL: SETZ A,
PUSHJ P,DEFAULTF
HRRZ A,(A)
POPJ P,
SLOSEF: MOVE T,LOSEF
JFFO T,.+1
MOVNS TT
ADDI TT,36.
JRST FIX1
SSLOS0: MOVEI A,(B)
WTA [BAD LOSEF - SSTATUS!]
SSLOSEF:
MOVEI B,(A)
SKIPE GCPSAR
JRST SLOSEF
JSP T,FXNV2
JUMPLE D,SSLOS0
CAILE D,16
JRST SSLOS0
MOVEI TT,1
LSH TT,(D)
SUBI TT,1
MOVEM TT,LOSEF
BPDLNKJ: MOVEI A,(B)
JRST PDLNKJ
;SJCL SJCL2 SJCL4 SDDTP SJCL SJCL1A SJCL1 SJCL2 SJCL4 SJCL3
SUBTTL STATUS JCL, HACTRN
IFN D10,[
SJCL: SKIPN T,SJCLBUF
JRST FALSE
PUSH FXP,T
PUSH FXP,[440700,,SJCLBUF+1]
SJCL2: ILDB TT,(FXP)
PUSHJ P,RDCH2
PUSH P,A
SOSLE -1(FXP)
JRST SJCL2
SJCL4: MOVE T,SJCLBUF
SUB FXP,R70+2
JRST LIST
] ;END OF IFN D10
IFN ITS,[
SDDTP: .SUSET [.RSUPPRO,,TT] ;STATUS HACTRN
JUMPL TT,FALSE ;NIL MEANS NO SUPERIOR
MOVEI A,TRUTH ;T MEANS THE UNKNOWN SUPERIOR
.SUSET [.ROPTION,,TT]
TLNE TT,OPTDDT
MOVEI A,QDDT
TLNE TT,OPTLSP
MOVEI A,QLISP
POPJ P,
SJCL: .SUSET [.ROPTION,,TT]
TLNN TT,%OPCMD
JRST FALSE ;EXIT WITH NIL IF NO COMMAND LINE
.SUSET [.RSUPPRO,,T]
JUMPL T,FALSE
SETZM JCLBF
MOVE T,[JCLBF,,JCLBF+1]
BLT T,JCLBF+LJCLBF-1
HLLOS JCLBF+LJCLBF-1
.BREAK 12,[..RJCL,,JCLBF]
MOVEI T,JCLBF ;MUST CLEAR BIT 35'S AS DDT MAY SET THEM!!
MOVEI TT,1 ;MASK
SJCL1A: ANDCAM TT,(T) ;TURN OFF BIT 35
CAIGE T,JCLBF+LJCLBF-1 ;DO ALL WORDS IN JCLBF
AOJA T,SJCL1A
PUSH FXP,R70
PUSH FXP,[440700,,JCLBF]
SJCL1: ILDB TT,(FXP)
JUMPE TT,SJCL3
SJCL2: PUSH P,TT
PUSHJ P,RDCH2
EXCH A,(P)
SOS -1(FXP)
CAIE A,↑M ;CAR-RET CAUSES TERMINATION
JRST SJCL1
SJCL4: MOVE T,-1(FXP)
SUB FXP,R70+2
JRST LIST
SJCL3: HRRZ T,(FXP)
CAIE T,JCLBF+LJCLBF-1
JRST SJCL4
MOVEI A,QSJCL
FAC [TOO MUCH JCL - STATUS!]
] ;END OF IFN ITS
;STTYTYPE STTYSIZE STTYS1 STTSZ9 SOSPEED SOSSP9
SUBTTL STATUS TTYSIZE, TTYTYPE, NEWIO OSPEED
IFN ITS,[
STTYTYPE:
TDZA F,F
STTYSIZE:
MOVEI F,1
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
.CALL STTSZ9
.VALUE
UNLOCKI
JUMPN F,STTYS1
MOVE TT,R
JRST FIX1
STTYS1: JSP T,FXCONS
MOVEI B,(A)
MOVE TT,D
JRST CONSFX
STTSZ9: SETZ
SIXBIT \CNSGET\ ;GET CONSOLE PARAMETERS
,,F.CHAN(TT) ;CHANNEL #
2000,,D ;VERTICAL SCREEN SIZE
2000,,TT ;HORIZONTAL SCREEN SIZE
402000,,R ;TCTYP
;TTYCOM, TTYOPT, TTYTYP NOT RETRIEVED
;OSPEED - RETURNS TTY OUPUT SPEED VARIABLE
SOSPEED:
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
.CALL SOSSP9
.VALUE
UNLOCKI
JRST FIX1
SOSSP9: SETZ
SIXBIT \TTYVAR\
,,F.CHAN(TT)
,,[SIXBIT \OSPEED\]
402000,,TT
] ;END OF IFN ITS
;STTYTYPE STTYSIZE STTYS1 D10TNM
IFN D10,[
STTYTYPE:
IFE SAIL,[
SKIPE T
POPI P,1
JRST 0POPJ ;ALWAYS ZERO (?)
] ;END OF IFE SAIL
IFN SAIL,[
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
PUSHJ P,D10TNM ;GET TTY NUMBER IN D
GETLIN D ;GET LINE CHARACTERISTICS
UNLOCKI
HLRZ T,D
TRZ T,150777 ;MASK OUT ALL NON-TTY-TYPE BITS
JFFO T,.+2
SETZ TT,
JRST FIX1
] ;END OF IFN SAIL
STTYSIZE:
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
IFN SAIL,[
;R GETS SIZE, TT GETS WIDTH
MOVE F,[-2,,R] ;COUNT OF ARGS,,ADR OF ARGS
MOVE R,[15,,R] ;TERMINAL SIZE, -1 IF NOT DISPLAY
MOVE D,[6,,D] ;TERMINAL WIDTH (EXCEPT IF NON-ARPA TTY)
TTYSET F, ;DO TERMINAL OPERATIONS
SKIPGE R ;IF USE REAL PAGE LENGTH
MOVE R,FO.RPL(TT)
MOVE TT,D ;LINE LENGTH ENDS UP IN TT
] ;END OF IFN SAIL
MOVE R,FO.RPL(TT) ;GET REAL PAGE LENGTH
IFE SAIL,[
MOVE TT,FO.LNL(TT) ;GET LINEL
ADDI TT,1 ;WIDTH IS 1 MORE THAN LINEL
] ;END IFE SAIL
STTYS1: UNLOCKI
JSP T,FXCONS
MOVEI B,(A)
MOVE TT,R
JRST CONSFX
;;; GET DEC-10 TERMINAL NUMBER INTO D (-1 FOR OWN TERMINAL).
;;; ENTER WITH TTSAR OF FILE OBJECT IN TT.
D10TNM:
IFN SAIL,[
MOVE D,F.CHAN(TT)
SKIPL F.MODE(TT)
DEVNUM D, ;GET DEVICE NUMBER
SETO D, ;ON FAILURE, OR FOR TTY, USE -1
] ;END OF IFN SAIL
IFE SAIL,[
SETO D,
SKIPGE F.MODE(TT) .SEE FBT.CM
POPJ P,
HRRZ D,F.RDEV(TT) ;CONVERT SIXBIT UNIT NUMBER TO OCTAL
REPEAT 3,[
DPB D,[360600,,D]
DPB D,[030300,,D]
TLNN D,700000
LSH D,-3
LSH D,-3
] ;END OF REPEAT 3
ANDI D,777
] ;END OF IFE SAIL
POPJ P,
] ;END OF IFN D10
;STTYTYPE STTYSIZE STTYS1
IFN D20,[
STTYTYPE:
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
HRRZ 1,F.JFN(TT)
GTTYP ;GET TTY TYPE
MOVE TT,2
UNLOCKI
JRST FIX1
STTYSIZE:
SKIPN T
SKIPA AR1,V%TYO
POP P,AR1
PUSHJ P,TOFLOK
HRRZ 1,F.JFN(TT)
RFMOD ;READ JFN MODE WORD
LDB R,[.BP TT%LEN,B] ;GET PAGE LENGTH
LDB TT,[.BP TT%WID,B] ;GET WIDTH
SETZ 2,
STTYS1: UNLOCKI
JSP T,FXCONS
MOVEI B,(A)
MOVE TT,R
JRST CONSFX
] ;END OF IFN D20
;STTYSCAN STSCN1 SSTTYSCAN SSTSC1 STTYCONS STCON1 SSTTYCONS SSTCO1 SSTC2 SSTC1
SUBTTL STATUS TTYSCAN, TTYCONS, TTYINT
STTYSCAN:
SKIPN T ;GET TTY PRE-SCAN FUNCTION
SKIPA AR1,V%TYI
POP P,AR1
IFN SFA,[
JSP TT,XFOSP
JRST STSCN1
JRST STSCN1
MOVEI A,(AR1)
MOVEI B,QTTYSCAN
SETZ C,
JRST ISTCSH
STSCN1: ] ;END IFN SFA
PUSHJ P,TIFLOK
HRRZ A,TI.BFN(TT)
UNLKPOPJ
SSTTYSCAN:
CAMN T,XC-1 ;SET TTY PRE-SCAN FUNCTION
SKIPA AR1,V%TYI
POP P,AR1
IFN SFA,[
JSP TT,XFOSP ;DO WE HAVE AN SFA?
JRST SSTSC1 ;NOPE
JRST SSTSC1 ;DITTO
POP P,A ;GET THE ARG
JSP T,%NCONS ;TURN IT INTO A LIST
MOVEI C,(A) ;AS THE ARG TO THE SFA
MOVEI B,QTTYSCAN
MOVEI A,(AR1)
JRST ISTCSH
SSTSC1: ] ;END IFN SFA
PUSHJ P,TIFLOK
POP P,A
HRRZM A,TI.BFN(TT)
UNLKPOPJ
STTYCONS:
MOVEI AR1,(A) ;GET ASSOCIATED TTY FILE OF
CAIN AR1,TRUTH ; OPPOSITE DIRECTION, IF ANY
HRRZ AR1,V%TYI ;PREFER INPUT TTY
IFN SFA,[
JSP TT,XFOSP
JRST STCON1
JRST STCON1
MOVEI A,(AR1)
MOVEI B,QTTYCONS
SETZ C,
JRST ISTCSH
STCON1: ] ;END IFN SFA
PUSHJ P,TFILOK ;LEAVES ITS ARGUMENT IN AR1
HRRZ A,FT.CNS(TT) .SEE TTYMOR
UNLKPOPJ
SSTTYCONS:
SKIPE A ;CONS TOGETHER TWO TTY'S INTO
CAIN A,TRUTH ; A SINGLE CONSOLE
EXCH A,B ;PREFER TO SEE NIL OR T SECOND
CAIN A,TRUTH ;PREFER INPUT TTY FOR FIRST ARG
HRRZ A,V%TYI
SFA% MOVEI AR1,(A)
IFN SFA,[
JSP TT,AFOSP ;DO WE HAVE AN SFA?
JRST SSTCO1 ;NOPE
JRST SSTCO1 ;NOPE
MOVEI C,(B) ;YES, PASS THE SECOND ARG AS THE SFA'S ARG
MOVEI B,QTTYCONS ;TTYCONS IS THE OPERATION
JRST ISTCSH
SSTCO1: ] ;END IFN SFA
PUSHJ P,TFILOK
JUMPE B,SSTC1 ;SUNDER THEM IF ONE IS NIL
MOVEI T,TIFLOK
TLNN TT,TTS<IO>
MOVEI T,TOFLOK
UNLOCKI
CAIE B,TRUTH
JRST SSTC2
HRRZ B,V%TYI ;FOR SECOND ARG OF T, USE TTY
TLNN TT,TTS<IO> ; OF NECESSARY DIRECTION
HRRZ B,V%TYO
SSTC2: MOVEI AR1,(B)
PUSHJ P,(T)
HRRZ C,FT.CNS(TT)
HRRZM A,FT.CNS(TT) ;LINK THIS ONE TO THAT ONE
MOVEI TT,FT.CNS
SKIPE C ;IF IT WAS LINKED, UNLINK
SETZM @TTSAR(C) ; ITS FORMER PARTNER
EXCH B,@TTSAR(A) ;LINK THAT ONE TO THIS ONE
JUMPE B,UNLKTRUE ;????? THINK ABOUT ALL THIS?
CAIE B,(A) ;IF IT WAS LINKED, UNLINK
SETZM @TTSAR(B) ; ITS FORMER PARTNER
JRST UNLKTRUE
SSTC1: HRRZ B,FT.CNS(TT) ;GET ASSOCIATED TTY
SETZM FT.CNS(TT) ;UNLINK THAT FROM THIS
MOVEI TT,FT.CNS
SKIPE B ;ONLY UNCONS IF WAS PREVIOUSLY CONSED
SETZM @TTSAR(B) ;UNLINK THIS FROM THAT
JRST UNLKTRUE
;STTYINT SSTTYINT SSTIN1 SSTIN2 SSTIN3 SSTIN4
STTYINT:
CAMN T,XC-1
SKIPA AR1,V%TYI
POP P,AR1
POP P,A
JSP T,CHNV1
MOVE F,TT
PUSHJ P,TIFLOK
ROT F,-1
ADDI TT,FB.BUF(F)
HRRZ A,(TT)
SKIPL F
HLRZ A,(TT)
UNLKPOPJ
SSTTYINT:
CAMN T,XC-2
SKIPA AR1,V%TYI
POP P,AR1
POP P,A
JSP T,PDLNMK
MOVEI B,(A)
POP P,A
JSP T,CHNV1
MOVE F,TT
PUSHJ P,TIFLOK
ROT F,-1
20$ PUSH P,TT ;SAVE TTSAR
ADDI TT,FB.BUF(F)
JUMPL F,SSTIN1
HRLM B,(TT)
20% JRST UNLKTRUE
20$ SKIPA
SSTIN1: HRRM B,(TT)
20% JRST UNLKTRUE
IFN D20,[
POP P,TT ;RESTORE TTSAR
ROT F,1 ;RESTORE CHARACTER
CAIE F,3 ;DON'T ALLOW USE TO ASSIGN ↑C
CAILE F,26. ;TOPS-20 ONLY SUPPORTS TO ↑Z
JRST UNLKTRUE ;RETURN TRUE, BUT DON'T DO TELL THE OP SYS
MOVE T,V%TYI ;ONLY DO FOLLOWING IF *THE* TTY
CAME TT,TTSAR(T) ;CHECK FOR TTSAR OF *THE* TTY
JRST UNLKTRUE
SETZB T,R ;SEARCH FOR A) FREE SLOT, B) EQUIVALENT SLOT
SSTIN2: CAMN F,CINTAB(T) ;EQUIVALENT SLOT?
JRST SSTIN3 ;YES, CODE ASSIGNED SO TAKE SPECIAL ACTION
SKIPN CINTAB(T) ;EMPTY SLOT?
MOVEI R,400000(T) ;YES, REMEMBER WE HAVE ONE
CAIGE T,CINTSZ-1 ;DONE ALL OF TABLE?
AOJA T,SSTIN2 ;NOPE, CONTINUE LOOPING
JUMPE B,UNLKTRUE ;IF TURNING OFF AND DIDN'T FIND IN TAB, DONE
SKIPN R ;FOUND A FREE SLOT?
JRST SSTIN4
MOVEM F,CINTAB-400000(R) ;YES, STORE NEW CHARACTER ASSIGNMENT
CAILE R,400005 ;CONVERT TO 400000+<D20 INTERRUPT CHANNEL>
ADDI R,22
HRLZI 1,(F) ;CHARACTER
HRRI 1,-400000(R) ;INTERRUPT CHANNEL
ATI ;ASSIGN THE CHARACTER TO THE CHANNEL
MOVEI A,TRUTH ;RETURN TRUE
UNLKPOPJ
SSTIN3: JUMPN B,UNLKTRUE ;RETURN IF CHARACTER WAS ALREADY ASSIGNED
SETZM CINTAB(T) ;CLEAR THE TABLE ENTRY
MOVEI 1,(F) ;DEASSIGN THE TERMINAL CODE
DTI
JRST UNLKTRUE ;THEN RETURN TRUE
SSTIN4: UNLOCKI
FAC [NO FREE INTERRUPT CHANNELS - (SSTATUS TTYINT)!]
] ;END IFN D20
;SPDLMAX SSPDLMAX SGCSIZE SSGCSIZE SGCMAX SSGCMAX SGCMIN SSGCMIN SPDLSIZE SPURSIZE SSPCSIZE SPDLROOM SSGP1 SSGP1A SSGP1C SSGP1D SSGP2A
SUBTTL STORAGE SPACE STATUS CALLS
SPDLMAX:
IFN PAGING,[
JSP D,SSGP1 ;0 - STATUS PDLMAX
SSPDLMAX: JSP D,SSGP1 ;1 - SSTATUS PDLMAX
] ;END OF IFN PAGING
.ELSE REPEAT 2, 0 ;0, 1 UNUSED
SGCSIZE: JSP D,SSGP1 ;2 - STATUS GCSIZE
SSGCSIZE: JSP D,SSGP1 ;3 - SSTATUS GCSIZE
SGCMAX: JSP D,SSGP1 ;4 - STATUS GCMAX
SSGCMAX: JSP D,SSGP1 ;5 - SSTATUS GCMAX
SGCMIN: JSP D,SSGP1 ;6 - STATUS GCMIN
SSGCMIN: JSP D,SSGP1 ;7 - SSTATUS GCMIN
SPDLSIZE: JSP D,SSGP1 ;10 - STATUS PDLSIZE
SPURSIZE: SKIPA B,A ;14 - STATUS PURSIZE
SSPCSIZE: JSP D,SSGP1 ;12 - STATUS SPCSIZE
MOVEI D,14 ;FAKE OUT A JSP D,SSGP1
CAIG B,QRANDOM ;LOSE IF BAD SPACE TYPE
CAIGE B,QLIST
JRST SSGPLZ
2DIF SKIPN (B),GTNPS8,QLIST
JRST SSGPLZ
JRST SSGP1A
SPDLROOM:
MOVEI D,20+SPDLMAX+1 ;20 - STATUS PDLROOM
SSGP1: SUBI D,SPDLMAX+1 ;GET CODE NUMBER IN D
MOVEI C,(B) ;YECH - SHUFFLE, SHUFFLE
MOVEI B,(A)
SSGP1A: MOVEI AR1,(B)
CAIN B,QRANDOM ;GET LINEARIZATION BY USING
JRST SSGPLZ ; QRANDOM FOR QARRAY
CAIN B,QARRAY
MOVEI B,QRANDOM
TRNE D,6 ;SKIP IF PDLMAX OR PDLSIZE
JRST SSGP1C
CAIL B,QREGPDL
CAILE B,QSPECPDL
JRST SSGPLZ
JRST SSGP1D
SSGP1C: CAIG B,QRANDOM ;LOSE IF BAD SPACE TYPE
CAIGE B,QLIST
JRST SSGPLZ
SSGP1D: ROT D,-1 ;LOW BIT=1 => SSTATUS
JUMPL D,SSG3A1
MOVE TT,@SSGPGT(D) ;ELSE GET VALUE TO RETURN
TRNE D,3
JRST SSGP2A
2DIF [SUB TT,(B)]C2,QREGPDL ;FOR PDL STUFF, CUT DOWN
TLZ TT,-1 ; QUANTITY BY PDL ORIGIN
SSGP2A: TLNN TT,-1 ;HACK SO THAT STATUS GCMIN
JRST FIX1 ; WILL RETURN A FLONUM
JRST FLOAT1 ; IF APPROPRIATE
;SSGPGT SSGPLZ SSGP3$ SSG3A1 SSGP3A SSGP3Z SSGP3Y SSGPPT SSGM1 SSGM2 SSGMRV SSGP4
SSGPGT:
10% 2DIF (B),XPDL,QREGPDL ;PDLMAX
10$ 0 ;UNUSED
2DIF (B),GFSSIZ,QLIST ;GCSIZE
2DIF (B),XFFS,QLIST ;GCMAX
2DIF (B),MFFS,QLIST ;GCMIN
2DIF (B),P,QREGPDL ;PDLSIZE
2DIF (B),SFSSIZ,QLIST ;SPCSIZE
2DIF (B),PFSSIZ,QLIST ;PURSIZE
0 ;UNUSED
2DIF (B),OC2,QREGPDL ;PDLROOM
SSGPLZ: MOVEI T,SBADSP ;BAD SPACE TYPE (OR MAYBE PDL TYPE?)
TRNN D,6
MOVEI T,[SIXBIT \BAD PDL TYPE - STATUS!\]
MOVEI A,(AR1)
%WTA (T)
MOVEI B,(A)
JRST SSGP1A
SSGP3$: JUMPE C,TRUE ;USED BY $ALLOC
;A CHANGE IN POLICY TO ALWAYS ALLOW A FLONUM
SSG3A1: MOVEI T,(D)
CAIN T,3 ;IF GCMIN,
JRST SSGP4 ; USE SPECIAL CHECKING CODE
SSGP3A: SKOTT C,FL ;ALLOW FLONUM
JRST SSGP3Z
MOVE TT,(C) ;GET THE FLONUM
PUSH FXP,D ;SAVE D OVER CALL TO IFIX
JSP T,IFIX ;CONVERT TO A FIXNUM
POP FXP,D
MOVE R,TT
JRST SSGP3Y ;THEN HANDLE AS IF FIXNUM
SSGP3Z: SKOTT C,FX ;MUST BE FIXNUM
JRST FALSE
MOVE R,(C) ;ELSE FETCH THE FIXNUM
SSGP3Y: TLNE R,-1 ;LOSE IF NEG OR TOO LARGE
JRST FALSE
JRST SSGPPT(D) ;ELSE JRST TO SPECIAL ROUTINE
SSGPPT:
10% JRST SSPM1 ;PDLMAX
10$ 0
JRST SSGS1 ;GCSIZE
JRST SSGX1 ;GCMAX
SSGM1: CAIL R,40 ;GCMIN
2DIF [CAMLE D,(B)]SSGMRV,QLIST ;FIXNUM GCMIN MUST HAVE
JRST FALSE ; "REASONABLE" VALUE
SSGM2:
2DIF [MOVEM R,(B)]MFFS,QLIST ;SO SAVE IT, ALREADY
JRST TRUE
SSGMRV: 20000 ;LIST
10000 ;FIXNUM
4000 ;FLONUM
BG$ 4000 ;BIGNUM
4000 ;SYMBOL
REPEAT HNKLOG+1, 100000 ;HUNKS
1000 ;SAR
SSGP4: MOVEI A,(C) ;(SSTATUS GCMIN ...) PERMITS
JSP T,FLTSKP ; A FLONUM ARGUMENT
JRST SSGP3A
JUMPLE TT,FALSE ;BUT MUST BE POSITIVE
CAML TT,[.005] ; AND BETWEEN .005 AND .95
CAMLE TT,[.95]
JRST FALSE
MOVE R,TT
JRST SSGM2
;SSGS1 SSGX1 SSPM1 CSETP1 CSETNS CSETP2 CSETP3 CSETP7
SSGS1: ANDI R,SEGMSK
2DIF [MOVEM R,(B)]GFSSIZ,QLIST ;SET GCSIZE
2DIF [CAMG R,(B)]XFFS,QLIST ;IF GREATER THAN GCMAX,
JRST TRUE ; MUST ALSO SET GCMAX TO MATCH
SSGX1:
2DIF [CAMGE R,(B)]SFSSIZ,QLIST ;GCMAX MAY NOT BE LESS
JRST FALSE ; THAN ACTUAL SIZE
XCTPRO
2DIF [HRRZM R,(B)]XFFS,QLIST
NOPRO
JRST TRUE
IFN ITS+D20,[
SSPM1: HRRZ T,P-QREGPDL(B) ;GET CURRENT PDL POINTER
ADD R,C2-QREGPDL(B) ;UP USER'S VALUE BY PDL ORIGIN
ANDI R,777760
TRNN R,PAGKSM
SUBI R,20
CAILE R,(T) ;NEW PDLMAX MUST BE ABOVE
CAML R,OC2-QREGPDL(B) ; CURRENT PDL POINTER, AND
JRST FALSE ; BELOW ABS OVERFLOW POINT
HRRZM R,XPDL-QREGPDL(B)
HRRZM R,ZPDL-QREGPDL(B) ;SO UPDATE CRAP
HRROS P-QREGPDL(B) ;SET LH OF PDL POINTER TO -1
JRST TRUE ; SO PDLOV WILL HACK IT PROPERLY
] ;END OF IFN ITS+D20
;;; PART OF PUTPROP - HACK FOR *PURE MODE TO PURIFY PROPERTY LISTS
CSETP1: PUSH P,B
MOVEI A,(C)
MOVE B,VPUTPROP
PUSHJ P,MEMQ ;CALLS THE CHECKING VERSION OF MEMQ
POP P,B
JUMPE A,CSETP7
PUSH P,C ;NEED TO PURCOPY C(C) ALSO
MOVEI A,(B)
PUSHJ P,PURCOPY
EXCH A,(P) ;REMEMBER THE VALUE, GET THE PROPERTY
SKOTT A,SY ;IS THE PROPERTY A SYMBOL?
JRST CSETNS ;NO
HLRZ T,(A) ;POINTER TO THE SY2 BLOCK
MOVE T,SYMVC(T) ;GET THE FLAG BITS
TLNN T,SY.PUR ;IS IT ALREADY PURE?
PUSHJ P,PURCOPY ;NO, PURCOPY IT
CSETNS: POP P,A ;RESTORE THE VALUE TO BE PUT ON THE PROPERTY
MOVE T,(P)
CSETP2: HRRZ B,(T)
JUMPE B,CSETP3
MOVEI TT,(B)
LSH TT,-SEGLOG
MOVE TT,ST(TT)
TLNE TT,PUR
JRST CSETP3
HRRZ T,(B)
JRST CSETP2
CSETP3: PUSHJ P,PCONS
MOVEI B,(A)
MOVEI A,(C)
PUSHJ P,PCONS
HRRM A,(T)
SUB P,R70+1
JRST $CADR
CSETP7: HRRZ A,(P)
JRST CSET2A
;SRANDOM SRAND3 SSRAN0 SSRANDOM SSRAN3 SSRAN6 SSRAN8 SSCALLI SSSENDI SSSENA SSSEN1 SSSEN0 SSUSRHNK
SUBTTL STATUS RANDOM
SRANDOM:
SETZ B,
MOVEI F,LRBLOCK-1+2 ;+2 FOR RNOWS AND RBACK
SRAND3: MOVE TT,RNOWS(F) ;CONS UP A LIST SUMMARIZING
PUSHJ P,CONSFX ; THE STATE OF THE RANDOM
SOJGE F,SRAND3 ; NUMBER GENERATOR
POPJ P,
SSRAN0: WTA [BAD ARGUMENT - STATUS RANDOM!]
SSRANDOM:
SKOTT A,LS
JRST SSRAN8
MOVEI B,(A)
JSP TT,SSRAN6
MOVEM R,RNOWS
JSP TT,SSRAN6
MOVEM R,RBACK
MOVNI F,LRBLOCK
SSRAN3: HLRZ C,(B)
JSP T,FXNV3
MOVEM R,RBLOCK+LRBLOCK(F)
HRRZ B,(B)
AOJL F,SSRAN3
JRST TRUE
SSRAN6: HLRZ C,(B)
JSP T,FXNV3
JUMPLE R,SSRAN0
CAILE R,LRBLOCK+1
JRST SSRAN0
HRRZ B,(B)
JRST (TT)
SSRAN8: JSP T,FXNV1
SKIPN TT ;0 IS BAD VALUE
MOVEI TT,1
JSP F,IRAND0
JRST TRUE
;;; Hooks for the EXTEND hackery
SSCALLI:
MOVE C,A
MOVEI B,QCALLI ;Look on the CALLI property for
PUSHJ P,$GET ;the "SUBR" to invoke
MOVE T,[ICALLI,,UCALLI]
MOVSI TT,(JRST) ;We JRST to it, and it hacks the stack
MOVEM C,(T) ;We write it, since don't have frob in A
JRST SSSEN1
SSSENDI: ;Set the SEND interpreter
MOVE T,[SENDI,,USENDI]
MOVSI TT,(JCALL 16,)
SSSENA: MOVEM A,(T) ;Remember what it is for (STATUS SENDI), GC
SSSEN1: MOVSS T ;Now hack the instruction cell
JUMPE A,SSSEN0 ;If NIL, zero SENDI so won't be XCT'd
HRR TT,A
MOVEM TT,(T) ;Save the call instruction for it
JRST TRUE ;Return truth
SSSEN0: SETZM (T)
JRST TRUE
SSUSRHNK: ;Set the USER-HUNK check
MOVE T,[USRHNK,,UUSRHNK]
MOVSI TT,(CALL 1,)
JRST SSSENA
;SSWHO1 SSWHO2 SSWHO3 SWHO1 SWHO1A SWHO2 SWHO3 SIXNUM SMAR SSMAR SSMAR5
IFN USELESS,[
IFN ITS,[
SUBTTL STATUS WHO-LINE [ETC.]
SSWHO1: SETZ F,
MOVE D,[441000,,F]
JSP T,FXNV1
IDPB TT,D
MOVEI A,(B)
JSP T,CHNV1X
IDPB TT,D
JSP T,FXNV3
IDPB R,D
MOVEI A,(AR1)
JSP T,CHNV1X
IDPB TT,D
.SUSET [.SWHO1,,F]
JRST TRUE
SSWHO2: PUSHJ P,SIXNUM
.SUSET [.SWHO2,,TT]
JRST TRUE
SSWHO3: PUSHJ P,SIXNUM
.SUSET [.SWHO3,,TT]
JRST TRUE
SWHO1: .SUSET [.RWHO1,,F]
MOVEI R,4
SETZ B,
MOVE D,[441000,,F]
SWHO1A: ILDB TT,D
JSP T,FXCONS
PUSHJ P,CONS
MOVEI B,(A)
SOJG R,SWHO1A
JRST NREVERSE
SWHO2: .SUSET [.RWHO2,,TT]
JRST FIX1
SWHO3: .SUSET [.RWHO3,,TT]
JRST FIX1
SIXNUM: SKOTT A,FX
JRST SIXMAK
POP P,T
JRST FXNV1
SMAR: MOVE T,IMASK
TRNN T,%PIMAR ;NIL IF LISP NOT USING MAR
JRST FALSE ; (BUT SUPERIOR MIGHT BE)
.SUSET [.RMARA,,D]
HLRZ TT,D
MOVEI A,(D)
PUSHJ P,ACONS
MOVEI B,(A)
JRST CONSFX ;RETURN LIST OF (MODE, LOCATION)
SSMAR: MOVEI F,%PIMAR
JSP T,FXNV1
TRZ TT,4
JUMPE TT,SSMAR5
IORM F,IMASK
.SUSET [.SIMASK,,F]
HRLI B,(TT)
.SUSET [.SMARA,,B]
JRST TRUE
SSMAR5: .SUSET [.SMARA,,R70]
ANDCAM F,IMASK
.SUSET [.SAMASK,,F]
JRST TRUE
;SSGCWHO SITS SITS9
;;; IFN USELESS
;;; IFN ITS
SSGCWHO: JSP T,FXNV1
ANDI TT,3
MOVEM TT,GCWHO
JRST TRUE
SITS: .CALL SITS9
.VALUE
PUSH FXP,T
JSP T,IFLOAT
FDVRI TT,(30.0)
JSP T,FLCONS
SETZ B,
PUSHJ P,CONSIT
POP FXP,TT
PUSHJ P,CONSFX
MOVE TT,D
PUSHJ P,CONSFX
MOVE TT,R
PUSHJ P,CONSFX
MOVE TT,F
JSP T,IFLOAT
SKIPL TT
FDVRI TT,(30.0)
JSP T,FLCONS
JRST CONS
SITS9: SETZ
SIXBIT \SSTATU\
2000,,F ;TIME UNTIL SYSTEM GOES DOWN
2000,,R ;SYSTEM BEING DEBUGGED
2000,,D ;NUMBER OF LOSERS
2000,,T ;NUMBER OF MEMORY ERRORS
402000,,TT ;TIME SYSTEM HAS BEEN UP
] ;END OF IFN ITS
] ;END OF IFN USELESS
;STBA LSSTBA
SUBTTL ASCII TABLE OF STATUS FUNCTIONS
;;; ***** ASCII TABLE OF STATUS FUNCTIONS ***** PART 1 *****
STBA: ASCII \MACRO\ ;MACRO
ASCII \DIVOV\ ;DIVOV (DIVIDE OVERFLOW)
ASCII \VECTO\ ;VECTOR
ASCII \TTY\ ;TTY
ASCII \TOPLE\ ;TOPLEVEL
ASCII \BREAK\ ;BREAKLEVEL
ASCII \UREAD\ ;UREAD
ASCII \UWRIT\ ;UWRITE
ASCII \+\ ;+ (SUPRA-DECIMAL DIGITS OPTION)
ASCII \GCMIN\ ;GCMIN
ASCII \SYNTA\ ;SYNTAX
ASCII \CHTRA\ ;CHTRAN (CHARACTER TRANSLATION)
ASCII \TTYIN\ ;TTYINT
ASCII \GCTIM\ ;GCTIME
ASCII \LOSEF\ ;LOSEF (LAP OBJECT STORAGE EFFICIENCY FACTOR)
ASCII \TERPR\ ;TERPRI (SUPPRESSION OF AUTO-TERPRI)
ASCII \←\ ;← (CAN PRIN1 USE ← FIXNUM SYNTAX)
ASCII \TTYRE\ ;TTYREAD
ASCII \FEATU\ ;FEATURE
ASCII \NOFEA\ ;NOFEATURE
IFN USELESS, ASCII \ABBRE\ ;ABBREVIATE
ASCII \UUOLI\ ;UUOLINKS
ASCII \GCMAX\ ;GCMAX
IFN PAGING, ASCII \PDLMA\ ;PDLMAX
ASCII \GCSIZ\ ;GCSIZE
ASCII \LINMO\ ;LINMODE
ASCII \CRFIL\ ;CRFILE (CURRENT FILE)
ASCII \CRUNI\ ;CRUNIT (CURRENT UNIT)
ASCII \EVALH\ ;EVALHOOK (FOR MULTICS COMPATIBILITY)
ASCII \TTYSC\ ;TTYSCAN
ASCII \TTYCO\ ;TTYCONS
ASCII \RANDO\ ;RANDOM
IFN USELESS,[
IFN ITS,[
ASCII \WHO1\ ;WHO1 ;ITS WHO-LINE
ASCII \WHO2\ ;WHO2 ; DISPLAY
ASCII \WHO3\ ;WHO3 ; VARIABLES
ASCII \MAR\ ;MAR ;MAR BREAK FEATURE
ASCII \GCWHO\
] ;END OF IFN ITS
] ;END OF IFN USELESS
ASCII \PUNT\ ;PUNT ;TRUE MEANS NO FUNCTIONAL VARIABLES
ASCII \FLUSH\ ;FLUSH ;NON-NIL MEANS FLUSH PAGES UPON
; A SUSPEND
IFN USELESS*ITS, ASCII \CLI\ ;CLI ;DISABLE/ENABLE CLI INTERRUPTS
ASCII \NOINT\ ;NOINT ;Enable/disble interrupts
ASCII \SENDI\ ;SENDI ;SEND interpreter
ASCII \CALLI\ ;CALLI ;CALL interpreter
ASCII \USRHU\ ;USRHU ;USRHUNK routine
LSSTBA==.-STBA ;END OF ENTRIES WHICH CAN BE SSTATUS'D
;LSTBA
;;; ***** ASCII TABLE OF STATUS FUNCTIONS ***** PART 2 *****
ASCII \FASLN\ ;FASLNAMELIST
ASCII \PURSI\ ;PURSIZE
ASCII \PDLSI\ ;PDLSIZE
ASCII \DAYTI\ ;DAYTIME
ASCII \DATE\ ;DATE
IFN USELESS, ASCII \DOW\ ;DOW (DAY OF WEEK)
ASCII \TTYSI\ ;TTYSIZE (HEIGHT . WIDTH)
ASCII \UNAME\ ;UNAME (USER NAME)
ASCII \USERI\ ;USERID
ASCII \XUNAM\ ;XUNAME
ASCII \JNAME\ ;JNAME (JOB NAME)
ASCII \SUBSY\ ;SUBSYSTEM
ASCII \JNUMB\ ;JNUMBER
ASCII \HOMED\ ;HOMEDIR (HOME DIRECTORY NAME)
ASCII \HSNAM\ ;HSNAME (SMART HOME DIRECTORY NAME)
ASCII \LISPV\ ;LISPVERSION
ASCII \JCL\ ;JCL (JOB COMMAND LINE)
IT$ ASCII \HACTR\ ;HACTRN
ASCII \UDIR\ ;UDIR (USER DIRECTORY NAME)
ASCII \FXPDL\ ;FXPDL (FIXNUM PDL)
ASCII \FLPDL\ ;FLPDL (FLONUM PDL)
ASCII \PDL\ ;PDL (REG PDL)
ASCII \SPDL\ ;SPDL (SPECIAL PDL)
ASCII \BPSL\ ;BPSL (BINARY PROGRAM SPACE LOW)
ASCII \BPSH\ ;BPSH (BINARY PROGRAM SPACE HIGH)
ASCII \SEGLO\ ;SEGLOG (LOG2 OF SEGMENT SIZE)
ASCII \SYSTE\ ;SYSTEM (SYSTEM ATOM)
ASCII \TABSI\ ;TABSIZE
ASCII \FILES\ ;FILESYSTEM-TYPE
ASCII \OPSYS\ ;OPSYSTEM-TYPE
ASCII \SITE\ ;SITE NAME
ASCII \SPCNA\ ;SPCNAMES (NAMES OF DATA SPACES)
ASCII \PURSP\ ;PURSPCNAMES
ASCII \PDLNA\ ;PDLNAMES
ASCII \SPCSI\ ;SPCSIZE
ASCII \PDLRO\ ;PDLROOM
ASCII \MEMFR\ ;MEMFREE
ASCII \NEWLI\ ;NEWLINE
ASCII \FILEM\ ;FILEMODE
ASCII \TTYTY\ ;TTYTYPE
IT$ ASCII \OSPEE\ ;OSPEED
ASCII \FASLO\ ;FASLOAD (RETURNS CURRENT LDBSAR)
IFN USELESS,[
IFN ITS,[
ASCII \ITS\ ;ITS
] ;END OF IFN ITS
] ;END OF IFN USELESS
ASCII \STATU\ ;STATUS
ASCII \SSTAT\ ;SSTATUS
ASCII \ARRAY\ ;ARRAY
LSTBA==.-STBA
;
SUBTTL STATUS DISPATCH TABLES
;;; FORMAT <4.9-4.7> , <4.6-3.8> , <2.9-1.1>
.FORMAT 37,002231104103
RADIX 4
;;; MAGIC TABLE OF STATUS OPERATIONS
;;; 4.9-4.7 OPERATION TYPE
;;; 0 SUBR-TYPE FUNCTION
;;; 1 LSUBR-TYPE FUNCTION
;;; 2 SUBR-TYPE WITH CHAR FIRST ARG
;;; 3 LSUBR-TYPE WITH CHAR FIRST ARG
;;; 4 GET LISP VALUE
;;; 5 SET LISP VALUE
;;; 6 SET TO T-OR-NIL
;;; 7 GET FIXNUM VALUE
;;; 4.6-4.5 ARGUMENT 1 TYPE
;;; 0 NO MORE ARGS
;;; 1 QUOTED ARGUMENT
;;; 2 TAKE REST AS QUOTED LIST
;;; 3 EVALUATED ARGUMENT
;;; 4.4-4.3 ARGUMENT 2 TYPE
;;; 4.2-4.1 ARGUMENT 3 TYPE
;;; 3.9-3.8 ARGUMENT 4 TYPE
;;; 3.7-3.1 ARGS INFO
;STBSS LSST
;;; .FORMAT 37,002231104103
;;; RADIX 4
;;; ***** SSTATUS FUNCTION TABLE ***** MUST MATCH ASCII TABLE *****
STBSS: 3,1310,SSMACRO (FA23) ;MACRO
6,3000,RWG (FA1) ;DIVOV
5,3000,VCTRS (FA1) ;VECTOR
IT$ 1,3333,SSTTY (FA1234&1333) ;TTY
20$ 1,3333,SSTTY (FA1N&1333) ;TTY
10$ SA% 1,3333,SSTTY (FA12) ;TTY
10$ SA$ 1,3333,SSTTY (FA1N&1333) ;TTY
5,3000,TLF (FA1) ;TOPLEVEL
5,3000,BLF (FA1) ;BREAKLEVEL
0,2000,UREAD (FA0234);UREAD
0,2000,UWRITE (FA012) ;UWRITE
0,3000,SSPLSS (FA1) ;+
0,3300,SSGCMIN (FA2) ;GCMIN
2,1300,SSSYNTA (FA2) ;SYNTAX
2,1300,SSCHTRA (FA2) ;CHTRAN
1,3330,SSTTYINT (FA23) ;TTYINT
0,3000,SSGCTIM (FA1) ;GCTIME
0,3000,SSLOSEF (FA1) ;LOSEF
1,3300,SSTERPRI (FA12) ;TERPRI
0,3000,SSLAP (FA1) ;←
0,3000,SSTTYREAD (FA1) ;TTYREAD
0,1000,SSFEATURE (FA1) ;FEATURE
0,1000,SSNOFEATURE (FA1) ;NOFEATURE
IFN USELESS, 0,3000,SSABBREVIATE (FA1) ;ABBREVIATE
0,0000,SSUUOLINKS (FA0) ;UUOLINKS
0,3300,SSGCMAX (FA2) ;GCMAX
IFN PAGING, 0,3300,SSPDLMAX (FA2) ;PDLMAX
0,3300,SSGCSIZE (FA2) ;GCSIZE
1,3300,SSLINMODE (FA12) ;LINMODE
20% 0,2000,SSCRFIL (FA2) ;CRFILE
20$ 0,2000,SSCRFIL (FA23) ;CRFILE
0,2000,CRUNIT (FA012) ;CRUNIT
0,3000,FALSE (FA1) ;EVALHOOK
1,3300,SSTTYSCAN (FA12) ;TTYSCAN
0,3300,SSTTYCONS (FA2) ;TTYCONS
0,3000,SSRANDOM (FA1) ;RANDOM
IFN USELESS,[
IFN ITS,[
0,3333,SSWHO1 (FA4) ;WHO1
0,3000,SSWHO2 (FA1) ;WHO2
0,3000,SSWHO3 (FA1) ;WHO3
0,3300,SSMAR (FA2) ;MAR
0,3000,SSGCWHO (FA1) ;GCWHO
] ;END OF IFN ITS
] ;END OF IFN USELESS
6,3000,EVPUNT (FA1) ;PUNT
6,3000,SUSFLS (FA1) ;FLUSH
IFN USELESS*ITS, 0,3000,SSCLI (FA1) ;CLI
0,3000,NOINTERRUPT (FA1) ;NOINTERRUPT
0,3000,SSSENDI (FA1) ;SENDINTERPRETER
0,3000,SSCALLI (FA1) ;CALLINTERPRETER
0,3000,SSUSRHNK (FA1) ;USRHNK
LSST==.-STBSS
IFN LSST-LSSTBA, WARN [WRONG LENGTH SSTATUS TABLE]
;STBS
;;; .FORMAT 37,002231104103
;;; RADIX 4
;;; ***** STATUS FUNCTION TABLE ***** PART 1 (MATCHES STBSS) *****
STBS: 2,1000,SMACRO (FA1) ;MACRO
4,0000,RWG (FA0) ;DIVOV
4,0000,VCTRS (FA0) ;VECTOR
1,3000,STTY (FA01) ;TTY
4,0000,TLF (FA0) ;TOPLEVEL
4,0000,BLF (FA0) ;BREAKLEVEL
0,0000,SUREAD (FA0) ;UREAD
0,0000,SUWRITE (FA0) ;UWRITE
0,0000,SPLSS (FA0) ;+
0,3000,SGCMIN (FA1) ;GCMIN
2,1000,SSYNTAX (FA1) ;SYNTAX
2,1000,SCHTRAN (FA1) ;CHTRAN
1,3300,STTYINT (FA12) ;TTYINT
0,0000,SGCTIM (FA0) ;GCTIM
0,0000,SLOSEF (FA0) ;LOSEF
1,3000,STERPRI (FA01) ;TERPRI
0,0000,SLAP (FA0) ;←
0,0000,STTYREAD (FA0) ;TTYREAD
0,2000,SFEATURES (FA01) ;FEATURES
0,2000,SNOFEATURE (FA1) ;NOFEATURE
IFN USELESS, 0,0000,SABBREVIATE (FA0) ;ABBREVIATE
0,0000,SUUOLINKS (FA0) ;UUOLINKS
0,3000,SGCMAX (FA1) ;GCMAX
IFN PAGING, 0,3000,SPDLMAX (FA1) ;PDLMAX
0,3000,SGCSIZE (FA1) ;GCSIZE
1,3000,SLINMODE (FA01) ;LINMODE
0,0000,SCRFIL (FA0) ;CRFILE
0,0000,SCRUNIT (FA0) ;CRUNIT
0,0000,FALSE (FA0) ;EVALHOOK
1,3000,STTYSCAN (FA01) ;TTYSCAN
0,3000,STTYCONS (FA1) ;TTYCONS
0,0000,SRANDOM (FA0) ;RANDOM
IFN USELESS,[
IFN ITS,[
0,0000,SWHO1 (FA0) ;WHO1
0,0000,SWHO2 (FA0) ;WHO2
0,0000,SWHO3 (FA0) ;WHO3
0,0000,SMAR (FA0) ;MAR
7,0000,GCWHO (FA0) ;GCWHO
] ;END OF IFN ITS
] ;END OF IFN USELESS
4,0000,EVPUNT (FA0) ;PUNT
4,0000,SUSFLS (FA0) ;FLUSH
IFN USELESS*ITS, 0,3000,SCLI (FA0) ;CLI
0,0000,SNOINT (FA0) ;NOINTERRUPT
4,0000,USENDI (FA0) ;SENDINTERPRETER
4,0000,UCALLI (FA0) ;CALLINTERPRETER
4,0000,UUSRHNK (FA0) ;USRHNK
IFN .-STBS-LSSTBA, WARN [WRONG LENGTH STATUS TABLE PART 1]
;
;;; .FORMAT 37,002231104103
;;; RADIX 4
;;; ***** STATUS FUNCTION TABLE ***** PART 2 (NON-SSTATUS ITEMS) *****
4,0000,LDFNAM (FA0) ;FASLNamelist
0,3000,SPURSIZE (FA1) ;PURSIZE
0,3000,SPDLSIZE (FA1) ;PDLSIZE
0,0000,STIME (FA0) ;DAYTIME
0,0000,SDATE (FA0) ;DATE
IFN USELESS, 0,0000,SDOW (FA0) ;DOW (DAY OF WEEK)
1,3000,STTYSIZE (FA01) ;TTYSIZE
0,0000,SUNAME (FA0) ;UNAME
0,0000,SUSERID (FA0) ;USERID
0,0000,SUSERID (FA0) ;XUNAME
0,0000,SJNAME (FA0) ;JNAME
0,0000,SSUBSYSTEM (FA0) ;SUBSYSTEM
0,0000,SJNUMBER (FA0) ;JNUMBER
IT$ 0,0000,SHOMED (FA0) ;HOMEDIR
IT% 20% 4,0000,SUDIR (FA0) ;HOMEDIR
20$ 0,0000,SRCDIR (FA0) ;
1,3300,SHSNAME (FA012) ;HSNAME
0,0000,SLVRNO (FA0) ;LISPVERSION
IT$ 0,0000,SJCL (FA0) ;JCL
IT% 4,0000,VNIL (FA0) ;DECSYSTEM-10 HAS NO JCL
20$ WARN [TOPS-20 JCL?]
IT$ 0,0000,SDDTP (FA0) ;HACTRN
IFE D20\ITS 4,0000,SUDIR (FA0) ;UDIR
IFN D20\ITS 0,0000,SRCDIR (FA0) ;
7,0000,FXC2 (FA0) ;FXPDL
7,0000,FLC2 (FA0) ;FLPDL
7,0000,C2 (FA0) ;PDL
7,0000,SC2 (FA0) ;SPDL
7,0000,BPSL (FA0) ;BPSL (ORIGINAL BPS LOW)
7,0000,BPSH (FA0) ;BPS HIGH
7,0000,[SEGLOG] (FA0) ;SEGLOG
0,3000,SSYSTEM (FA1) ;SYSTEM
7,0000,IN10 (FA0) ;TABSIZE
0,0000,SFILES (FA0) ;FILESYSTEM-TYPE
0,0000,SOPSYS (FA0) ;OPSYSTEM-TYPE
0,0000,SSITE (FA0) ;SITE
4,0000,[SPCNAMES] (FA0) ;SPCNAMES
4,0000,[PURSPCNAMES] (FA0) ;PURSPCNAMES
4,0000,[PDLNAMES] (FA0) ;PDLNAMES
0,3000,SSPCSIZE (FA1) ;SPCSIZE
0,3000,SPDLROOM (FA1) ;PDLROOM
0,0000,SMEMFREE (FA0) ;MEMFREE
7,0000,IN0+↑M (FA0) ;NEWLINE
0,3000,SFILEMODE (FA1) ;FILEMODE
1,3000,STTYTYPE (FA01) ;TTYTYPE
IT$ 1,3000,SOSPEED (FA01) ;OSPEED
4,0000,LDBSAR (FA0) ;FASLOAD
IFN USELESS,[
IFN ITS,[
0,0000,SITS (FA0) ;ITS
] ;END OF IFN ITS
] ;END OF IFN USELESS
1,1000,SSSS (FA01) ;STATUS
1,1000,SSSSS (FA01) ;SSTATUS
0,0000,SARRAY (FA0) ;ARRAY
IFN .-STBS-LSTBA, WARN [WRONG LENGTH STATUS TABLE PART 2]
RADIX 8
.FORMAT 37,0 ;MAKE FORMAT 37 ILLEGAL AGAIN
;;@ END OF STATUS 223
;CURSORPOS CRSRPS CRSR10 CRSFA5 CRSFAY CRSFA4 CRSFA2 CRSFAZ CRSRP8 CRSFA1 CRSRP0 CRSR20 CRSRP5 CRSRP7 CRSR71 CRSRP3 CRSRP6 CRSRP4 CRSR40 CRSRP9 ZZZ ZZZ CRSR11 CRSR12 CRSR13 CRSR14 CRSRP1 CRSRMP CRSRM1 CRSRN
SUBTTL CURSORPOS FUNCTION
IFN USELESS,[
CURSORPOS:
MOVEI D,QCURSORPOS ;LSUBR (0 . 3)
CAMGE T,XC-3 ;MORE THAN THREE ARGS LOSES
JRST WNALOSE
JUMPE T,CRSRP0 ;IF NO ARGS, IS FOR DEFAULT TTY
CRSRPS: SKIPN AR1,(P) ;ELSE LAST ARG MAY BE TTY FILE ARRAY
JRST CRSRN
MOVEI TT,(AR1)
LSH TT,-SEGLOG
SKIPGE ST(TT)
JRST CRSRMP
CAIN AR1,TRUTH ;LAST ARG = T
HRRZ AR1,V%TYO ; MEANS THE DEFAULT TTY
CRSR10: CAMN T,XC-3 ;FOR THREE ARGS MUST HAVE A FILE ARRAY
JRST CRSRP8
JSP TT,XFOSP ;FOR ONE OR TWO ARGS MAY OR MAY
JRST CRSRP0 ; NOT HAVE A FILE ARRAY
IFN SFA,[
JRST CRSFA1 ;FILE
CRSFA5: SUB P,R70+1 ;SFA
CRSFAY: SETZ C,
AOJE T,CRSFA2 ;ONE LESS ARG; ONLY 1 ARG, ARG TO SFA IS NIL
POP P,A ;LISTIFY THE ARGS
PUSHJ P,NCONS ;GENERATE THE INITIAL LIST
AOSN T ;TWO ARGS?
JRST CRSFA4
POP P,B
JSP T,%XCONS ;NOW THE LIST IS IN A
CRSFA4: MOVEI C,(A)
CRSFA2: MOVEI B,QCURSORPOS ;CURSORPOS OPERATION
MOVEI A,(AR1) ;THE SFA ITSELF
JRST ISTCSH
CRSFAZ: HRRO AR1,V%TYO ;GET FILE AS SPECIFIED BY 'T'
JSP TT,XFOSP ;CHECK FOR IT BEING A SFA
JRST (F) ;NOPE
JRST (F)
SOJA T,CRSFAY ;A SFA, HANDLE SPECIALLY
] ;END IFN SFA
CRSRP8:
IFN SFA,[
JSP TT,XFOSP ;CHECK IF FILE OR SFA
JFCL
SKIPA ;NOT SFA
JRST CRSFA5 ;SFA
CRSFA1: ] ;END IFN SFA
SUB P,R70+1 ;IF WE HAVE ONE, IT MUST
PUSH FXP,T ; BE A BONA FIDE TTY OUTPUT FILE
PUSHJ P,TOFLOK
UNLOCKI
POP FXP,T
AOSA T
CRSRP0:
SFA% HRRO AR1,V%TYO
SFA$ JSP F,CRSFAZ
JSP R,PDLA2(T)
MOVEI TT,F.MODE
MOVE D,@TTSAR(AR1)
SKIPGE AR1 ;IF FILE NOT EXPLICITLY GIVEN
SKIPN TTYOFF ; THEN ↑W NON-NIL => RETURN NIL
SKIPA
JRST FALSE
JUMPE T,CRSRP1 ;0 ARGS - GET POSITION
AOJE T,CRSRP3 ;1 ARG - SPECIAL HACKS (↑P CODES)
SKOTT A,FX
JRST CRSR11
;2 ARGS
MOVEI D,"V ;SET VERTICAL POSITION
PUSHJ P,CRSRP5
CRSR20: MOVEI D,"H ;SET HORIZONTAL POSITION
MOVEI A,(B)
CRSRP5: JUMPE A,TRUE ;NIL MEANS NO CHANGE
JSP T,FXNV1
SKIPGE TT
SETZ TT, ;NEGATIVE ARG NOT ALLOWED
CAILE TT,167 ;NOR ARG ABOVE 167
MOVEI TT,167
IFN ITS\D20, HRLI D,10(TT) ;ADD MAGIC 10 TO AMOUNT FOR ↑P
.ELSE JRST FALSE
CRSRP7: PUSHJ FLP,CNPCHK ;CHECK TO SEE IF CAPABILITY EXISTS?
JRST CRSR71
IFN ITS\D20, MOVEI A,TRUTH ;RETURN TRUTH IF WE GOT THIS FAR
.ELSE MOVEI A,NIL ;RIGHT NOW, D10 SYSTEMS CANT "DO IT"
JRST CNPCUR ; THEN DO ACTION, AND EXIT WITH CZECHI
CRSR71: MOVEI A,NIL ;NO CAPABILITY, SO RETURN NIL
JRST CZECHI
;1 ARG CASE
CRSRP3: JSP T,SPATOM
JRST CRSRP4 ;IF NO A SYMBOL, THEN BETTER BE FIXNUM
PUSHJ P,CRSR40 ;GET NUMERIC VALUE OF FIRST CHAR OF SYMBOL
CRSRP6: MOVEI D,(TT)
TRC TT,100
TDNE TT,[-40]
JRST CRSRP2
MOVE TT,GCBT(TT) ;Get a "1" bit in the position specified by TT
TDNN TT,CRSRP9
JRST CRSRP2
JRST CRSRP7
CRSRP4: JSP T,FXNV1
JRST CRSRP6
CRSR40: JSP T,CHNV1
CAIL TT,140
SUBI TT,40 ;CONVERT TO UPPER CASE
POPJ P,
CRSRP9:
ZZZ==0
IRPC X,,[ABCDEFKLMNPQRSTUXZ[\]↑←]
ZZZ==ZZZ\<SETZ←-<"X&37>>
TERMIN
ZZZ ;BITS SPECIFYING VALID ↑P CODES
EXPUNGE ZZZ ;NOTE: H, I, AND V NOT VALID HERE!
;2 ARG CASE WITH NON-FIXNUM AS FIRST ARG
CRSR11: JUMPE A,CRSR20
JSP T,SPATOM
JRST CRSR12
PUSHJ P,CRSR40
JSP T,FXNV2
SKIPGE D
SETZ D,
CAIE TT,"H
CAIN TT,"V
JRST CRSR13
CAIN TT,"I
JRST CRSR14
CRSR12: WTA [BAD CURSOR CODE - CURSORPOS!]
JRST CRSR11
CRSR13: CAILE D,167
MOVEI D,167
ADDI D,10 ;H AND V RANDOMLY WANT 10 ADDED
CRSR14: MOVSI D,400000(D) .SEE CNPCD1 ;KEEP LH FROM BEING ZERO
HRRI D,(TT)
JRST CRSRP7
;0 ARGS CASE
CRSRP1: PUSHJ P,FORCE1
MOVEI TT,F.MODE
MOVE F,@TTSAR(AR1)
MOVEI TT,F.CHAN
IFE ITS\D20, JRST FALSE
IFN ITS\D20,[
PUSHJ FLP,RCPOS
TLNE F,FBT<EC> ;GET ECHO MODE POSITION
MOVE D,R ; IF FILE IS FOR ECHO AREA
MOVEI TT,(D) ;CONS THEM UP FOR LOSER
JSP T,FIX1A
MOVEI B,(A)
HLRZ TT,D
JSP T,FIX1A
JRST CONS
] ;END OF IFN ITS\D20
CRSRMP: PUSH FXP,T
CRSRM1: HLRZ A,@(P)
MOVE T,(FXP)
MOVEI TT,(T)
ADDI TT,(P)
PUSH P,1(TT)
TRNE T,1
PUSH P,2(TT)
PUSH P,A
PUSHJ P,CRSRPS
HRRZ A,@(P)
MOVEM A,(P)
JUMPN A,CRSRM1
POP FXP,T
CRSRN: MOVEI A,TRUTH
JRST PROGN1
] ;END OF IFN USELESS
;%%FUNCTION .FUNC4 .FUNC1 .FUNC2 .FUNC3 AEVAL
SUBTTL RANDOM ROUTINES TO HANDLE A PSEUDO ALIST
%%FUNCTION: MOVEI D,Q%%FUNCTION
JUMPE A,WNAFOSE
HRRZ C,(A)
JUMPN C,.FUNC1
HLRZ B,(A) ;HALF-ASSED FUNARG BINDING
HRROI TT,(SP) ;ONE LH AS GOOD AS ANOTHER
JSP T,FIX1A
.FUNC4: PUSHJ P,XCONS
MOVEI B,QFUNARG
JRST XCONS
.FUNC1: HLRZ AR2A,(A)
HLRZ AR1,(C)
HRRZ C,(C)
JUMPN C,WNAFOSE
.FUNC2: JUMPE AR1,.FUNC3 ;C STARTS OUT ()
HLRZ A,(AR1)
JSP T,SPATOM
JSP T,PNGE1
HLRZ B,(A)
HRRZ B,@(B)
PUSHJ P,CONS
MOVEI B,(C)
PUSHJ P,CONS
MOVEI C,(A)
HRRZ AR1,(AR1)
JRST .FUNC2
.FUNC3: MOVEI A,(C)
MOVEI B,TRUTH
PUSHJ P,NRECONC
MOVEI B,(AR2A)
JRST .FUNC4
AEVAL: SKIPE A,(P) ;PURPOSELY CRIPPLING POWER OF ALIST
JSP T,FXNV1 ; ROUTINE: FOOEY! - GLS
PUSHJ P,ALIST ;EVAL WITH AN ALIST
SUB P,R70+1
POP P,A
SKIPE T ;ALIST RETURNING NON-ZERO IN T =>
PUSH P,CAUNBIND ; TWO BIND BLOCKS WERE PUSHED
PUSH P,CAUNBIND
POPJ FXP,
;ALIST ALST1
;;; ALIST CREATES AN ENVIRONMENT AS SPECIFIED BY A GIVEN A-LIST.
;;; AN A-LIST MAY BE:
;;; [1] NIL, MEANING THE TOP-LEVEL ENVIRONMENT.
;;; [2] T, MEANING THE CURRENT ENVIRONMENT (SEE [4]).
;;; [3] A FIXNUM REPRESENTING A SPECPDL POINTER, AS
;;; RETURNED BY THE EVALFRAME FUNCTION AS THE FOURTH
;;; ITEM. THIS INDICATES THE ENVIRONMENT AS OF
;;; THE SPECIFIED FRAME.
;;; [4] ((<SYMBOL> . <VALUE>) . <A-LIST>)
;;; THAT IS, ONTO ONE OF THE OTHER THREE KINDS OF A-LIST
;;; ONE MAY CONS ADDITIONAL VARIABLE-VALUE PAIRS IN
;;; THE USUAL MANNER. THIS IS A "TRUE A-LIST".
;;; THIS ENVIRONMENT IS CREATED BY REBINDING ALL VARIABLES
;;; WHICH HAVE BEEN BOUND SINCE THEN BACK TO THEIR OLD VALUES,
;;; OR TO THE VALUES SPECIFIED BY THE TRUE A-LIST. IF A GIVEN
;;; VARIABLE WAS BOUND SEVERAL TIMES, ONLY ONE REBINDING IS DONE
;;; TO RECREATE THE OLD ENVIRONMENT. THIS IS DONE BY USING THE
;;; LEFT HALF OF A VALUE CELL TO INDICATE WHETHER OR NOT IT
;;; HAS ALREADY BEEN REBOUND. THIS HAS THE CONSEQUENCE THAT
;;; NOQUIT MUST BE TURNED ON DURING THIS OPERATION.
;;; EITHER ONE OR TWO SPECPDL BLOCKS ARE PUSHED, THE SECOND ONE
;;; BEING NECESSARY IF ANY TRUE A-LIST IS GIVEN. THERE ARE FOUR
;;; STEPS TO THE PROCESS:
;;; [1] CHECK ARGUMENT THOROUGHLY FOR ERRORS. IF A TRUE
;;; A-LIST IS GIVEN, ALL SYMBOLS ON THE A-LIST ARE GIVEN
;;; VALUE CELLS IF THEY DON'T HAVE ANY ALREADY.
;;; [2] TURN ON NOQUIT. IF A TRUE A-LIST IS GIVEN, BIND ALL
;;; THE SYMBOLS AS SPECIFIED, MARKING THE VALUE CELLS
;;; AS THEY ARE BOUND, AND NEVER BINDING A SYMBOL TWICE.
;;; WHEN DONE, PUSH THE TRUE A-LIST ONTO THE SPECPDL
;;; SO THAT AUNBIND CAN RESTORE THINGS CORRECTLY.
;;; [3] SCAN THE SPECPDL FROM THE POINT SPECIFIED BY THE
;;; SPECPDL POINTER (FROM THE BOTTOM IF NIL), AND BIND
;;; ALL VALUES CELLS SEEN BACK TO THEIR OLD VALUES,
;;; MARKING THEM AS THEY ARE BOUND, NEVER BINDING ONE
;;; TWICE. WHEN DONE, PUSH A POINTER ON THE SPECPDL
;;; SO THAT AUNBIND CAN RESTORE THINGS CORRECTLY.
;;; [4] SCAN BACK OVER ALL THE ITEMS PUSHED IN STEPS 2
;;; AND 3, RESTORING THE LEFT HALVES OF ALL THE VALUE
;;; CELLS. TURN OFF NOQUIT AND CHECK FOR INTERRUPTS.
;;; ON RETURN, A-LIST LEAVES T NON-ZERO IFF TWO BIND BLOCKS
;;; WERE PUSHED. IT IS UP TO THE CALLER TO MAKE SURE THAT THE
;;; BLOCK(S) ARE UNBOUND CORRECTLY WITH AUNBIND.
;;; NOTE THAT ERRPOP CAN RECOGNIZE THESE SPECIAL BIND BLOCKS AND
;;; CALL AUNBIND TO UNBIND THEM. THIS IS BECAUSE THE LAST WORD
;;; PUSHED HAS ZERO IN THE LEFT HALF.
ALIST: SKIPN C,-1(P) ;MAKE COPY OF ENVIRONMENT GIVEN A-LIST
ALST1: JUMPE C,ALST3 ;STEP 1 - ERROR CHECKING
CAIN C,TRUTH
JRST ALST3 ;T AND NIL ARE VALID A-LISTS
SKOTT C,LS
JRST ALST2 ;NOPE - GO CHECK IT OUT
HLRZ AR1,(C) ;YUP - CHECK ITS CAR
HRRZ C,(C)
SKOTT AR1,LS
JRST ALST0
HLRZ A,(AR1)
SKOTT A,SY
JRST ALST0
CAIN A,TRUTH
JRST ALST0
HLRZ AR1,(A)
HRRZ B,(AR1)
MOVEI AR1,QUNBOUND
CAIN B,SUNBOUND
JSP T,.SET1
JRST ALST1
;ALST2 ALST3 ALST3A ALST4 ALST4A ALST4C ALST5 ALST5A AL5AB
ALST2: TLNN TT,FX ; - DARN WELL BETTER BE A FIXNUM
JRST ALST0
HRRZ TT,(C) ;MUST BE A VALID SPECPDL POINTER
CAML TT,ZSC2
CAILE TT,(SP)
JRST ALST0
ALST3: HLLOS NOQUIT ;TURN ON NOQUIT - MUSTN'T INTERRUPT
HLLOS MUNGP ;ABOUT TO MUNG VALUE CELLS!
MOVEM SP,SPSV ;STEP 2 - PUSH BLOCK FOR TRUE A-LIST
SETZ T, ;T WILL BECOME NON-ZERO IF TRUE
SKIPN C,-1(P) ; A-LIST IS PRESENT AT ALL
ALST3A: JUMPE C,ALST4 ;NIL FOUND
CAIN C,TRUTH
JRST ALST7 ;T FOUND
SKOTT C,LS
JRST ALST4A ;FIXNUM FOUND
HLRZ B,(C)
HRRZ C,(C)
HLRZ A,(B) ;A HAS ATOMIC SYMBOL
HRRZ AR1,(B) ;AR1 HAS ASSOCIATED VALUE
HLRZ B,(A)
HRRZ A,(B)
SKIPGE AR2A,(A) ;SKIP UNLESS VALUE CELL MARKED
JRST ALST3A ;VALUE CELL ALREADY REBOUND
HRLI AR2A,(A) ;PUSH <VALUE CELL,,CURRENT VALUE>
PUSH SP,AR2A ; ONTO SPECPDL; THEN INSTALL
HRROM AR1,(A) ; VALUE FROM ENVIRONMENT, MARKING CELL
AOJA T,ALST3A ;T NON-ZERO => WE PUSHED SOMETHING
ALST4: MOVEI C,SC2 ;NIL => TOP LEVEL ENVIRONMENT
ALST4A: HRRZ C,(C) ;FIXNUM => SPECIFIED ENVIRONMENT
HRRZ B,SPSV
JUMPE T,ALST4C ;IF ANYTHING PUSHED, START NEW BLOCK
PUSH SP,-1(P) ;LEFT HALF BETTER BE ZERO!
PUSH SP,SPSV ;FINISH OFF BLOCK FOR TRUE A-LIST
MOVEM SP,SPSV ;START NEW BLOCK FOR FUNARG POINTER
ALST4C: MOVEI TT,(C) ;STEP 3 - SCAN SPECPDL FROM ENVIRONMENT
ALST5: CAIN TT,(B) ; BACK UP TO POINT WHEN ALIST CALLED
JRST ALST6
HRRZ AR1,(TT) ;GET VALUE FROM SPECPDL
CAMGE AR1,ZSC2 ;IGNORE SPECPDL POINTERS
JRST ALST5A
CAIGE AR1,(SP)
AOJA TT,ALST5
ALST5A: HLRZ A,(TT) ;GET VALUE CELL FROM SLOT
JUMPE A,AL5AB ;IGNORE FROBS ALIST PUSHES!
SKIPGE AR2A,(A) ;IGNORE MARKED VALUE CELLS
AL5AB: AOJA TT,ALST5
HRLI AR2A,(A) ;ELSE PUSH AS BEFORE
PUSH SP,AR2A
HRROM AR1,(A)
AOJA TT,ALST5
;ALST7 ALST6 ALST6A ALST6B ALST7A AUNBIND AUNBN0 AUNBN1 AUNBN2 AUNBN3 AUNBN4 AUNBN5 AUNBN6 AUNBN7 IAP4A APFNG CAUNBIND APLBL APLBL1
ALST7: HRRZ C,-1(P) ;T => CURRENT ENVIRONMENT
SETZ T, ;ONLY ONE BLOCK PUSHED
HRRZ B,SPSV
ALST6: PUSH SP,C ;STEP 4 - RESTORE VALUE CELLS
ALST6A: CAIN B,(SP)
JRST ALST7A
HLRZ A,(B)
JUMPE A,ALST6B
CAMGE A,ZSC2
HRRZS (A)
ALST6B: AOJA B,ALST6A
ALST7A: PUSH SP,SPSV ;CLOSE BIND BLOCK
HLLZS MUNGP ;VALUE CELLS UNMUNGED
JRST CZECHI ;ALL DONE - CHECK INTERRUPTS
;;; AUNBIND UNDOES A FUNARG BIND BLOCK PUSHED BY ALIST.
;;; IT DOES SO BY SCANNING UP THE SPECPDL FROM THE POINT OF
;;; THE FUNARG ENVIRONMENT, OR BY SCANNING DOWN THE TRUE A-LIST,
;;; CLOBBERING CURRENT VALUES FROM VALUE CELLS INTO SPECPDL
;;; SLOTS OR A-LIST SLOTS AS APPROPRIATE, SO THAT ANY SETQ'S
;;; DONE IN THE CREATED COPY OF THE ENVIRONMENT WILL BE
;;; REFLECTED IN THE ORIGINAL ENVIRONMENT.
AUNBIND:
POP SP,T
AUNBN0: MOVEM TT,UNBND3
MOVEM D,AUNBD
MOVEM R,AUNBR
MOVEM F,AUNBF
MOVEI F,1(T)
HRRZ R,(SP)
CAMGE R,ZSC2
JRST AUNBN4
AUNBN1: CAIN F,(SP) ;CLOBBER SETQ'S BACK INTO SPECPDL
JRST AUNBN3
HLRZ D,(F)
AUNBN2: HLRZ TT,(R)
CAIE TT,(D)
AOJA R,AUNBN2
HRRZ TT,(TT)
HRRM TT,(R)
AOJA F,AUNBN1
AUNBN3: MOVE F,AUNBF
MOVE R,AUNBR
MOVE D,AUNBD
SUB SP,R70+1
JRST UNBND0
AUNBN4: ;CLOBBER SETQ'S BACK INTO TRUE A-LIST
AUNBN5: CAIN F,(SP)
JRST AUNBN3
HLRZ D,(F)
JRST AUNBN7
AUNBN6: HRRZ R,(R)
AUNBN7: HLRZ TT,(R)
HLRZ TT,(TT)
HLRZ TT,(TT)
HRRZ TT,(TT)
CAIE TT,(D)
JRST AUNBN6
HLRZ TT,(R)
HRRZ D,(D)
HRRM D,(TT)
AOJA F,AUNBN5
IAP4A: MOVEM TT,R ;AT THIS POINT, WE MAKE UP AN
HRROI TT,(SP)
JSP T,FIX1A
PUSH P,A
MOVE TT,R
MOVNI R,2
MOVNI T,1
JRST IAP5
APFNG: HRRZ A,(B) ;APPLY FUNARG
HLRZ B,(B)
HRRM B,(C)
PUSH P,A
MOVEM T,APFNG1
PUSHJ P,ALIST
PUSH P,.
HRROI TT,-2(P)
MOVE D,APFNG1
POP TT,2(TT)
AOJLE D,.-1
CAUNBIND:
MOVEI D,AUNBIND
MOVEM D,2(TT)
SKIPN T
MOVEI D,CPOPJ
MOVEM D,1(TT)
MOVE T,APFNG1
JRST IAPPLY
APLBL: HLRZ A,(B)
HRRZ B,(B)
HLRZ AR1,(B)
MOVEM AR1,(C)
MOVEM SP,SPSV ;APPLY LABEL EXPRESSION
PUSHJ P,BIND
PUSHJ P,ABIND3
MOVEI A,APLBL1
EXCH A,-1(C)
HLLM A,-1(C)
PUSH FXP,A
JRST IAPPLY
APLBL1: PUSHJ P,UNBIND
POPJ FXP,
;LISTIFY LFY3 LFY1 PNPUT $PNGET $PNG.R $PNG3 $PNG3A $PNG4 $PNG.D $PNGX DEPOSIT EXAMINE MAKNUM MUNKAM
SUBTTL LISTIFY, PNPUT, AND PNGET
LISTIFY:
SKIPN R,ARGLOC
JRST LFYER
JSP T,FXNV1 ;LISTIFY UP N ARGS FOR AN LSUBR
MOVM D,TT
CAMLE D,@ARGNUM
JRST LFY0
JUMPGE TT,LFY3
ADD R,@ARGNUM
SUBI R,(D)
LFY3: HRLOI TT,(D) ;SEE HAKMEM (A.I. MEMO 239) ITEM 156
EQVI TT,(R) ;TT GETS <-N-1>,,<CONTENTS OF ARGLOC>
AOBJP TT,FALSE ;ZERO ARGS
PUSH P,R70
MOVEI R,(P) ;T HOLDS LAST POINTER
LFY1: MOVE A,(TT) ;GET ARG
JSP T,PDLNMK
PUSHJ P,NCONS
HRRM A,(R) ;CLOBBER ONTO END OF LIST
MOVEI R,(A) ;ADVANCE LAST POINTER
AOBJN TT,LFY1
JRST POPAJ
PNPUT: JUMPE B,SYCONS
PUSH P,A
SETZM LPNF
JRST INTRN1
$PNGET: PUSHJ P,PNGET
MOVE C,A
JSP T,FXNV2
MOVEI B,0
CAIN TT+1,7
POPJ P,
CAIE TT+1,6
LERR [SIXBIT \FEATURE NOT YET IMPLEMENTED - PNGET!\]
TDZA D,D
$PNG.R: PUSHJ P,CONSFX
SETZ TT,
MOVE R,[440600,,TT]
$PNG3: TLNN D,760000
JRST $PNG.D
$PNG3A: TLNN R,740000
JRST $PNG.R
$PNG4: ILDB T,D ;GET NEXT ASCII BYTE
JUMPE T,$PNGX
CAIGE T,140 ;CHECK FOR LOWER-CASE
ADDI T,40 ;CONVERT, AND STORE
IDPB T,R
JRST $PNG3
$PNG.D: JUMPE C,$PNGX
HLRZ F,(C) ;CONSTRUCT WORD OF ASCII, AND BPTR THERETO
MOVE F,(F)
HRRZ C,(C)
MOVE D,[440700,,F]
JRST $PNG3A
$PNGX: JUMPE TT,.+2
PUSHJ P,CONSFX
JRST NREVERSE
SUBTTL EXAMINE, DEPOSIT, MAKNUM, MUNKAM
DEPOSIT: ;FIRST ARG IS FIXNUM ADDRESS, 2ND IS VALUE
EXCH A,B
JSP T,FXNV2 ;GET ADR INTO TT+1
JSP T,FLTSKP ;GET DATA INTO TT
JFCL
MOVEM TT,(TT+1) ;PERFORM DEPOSIT
JRST TRUE
EXAMINE:
PUSH P,CFIX1
JSP T,FXNV1
MOVE TT,(TT)
POPJ P,
MAKNUM: MOVEI TT,(A)
JRST FIX1
MUNKAM: JSP T,FXNV1
MOVEI A,(TT)
POPJ P,
;$SLEEP ALARMCLOCK ALCK3 ALCK4 ALCK1 ALCK5 ALCK7 ALCK2 M30.
SUBTTL SLEEP, LISTEN, ALARMCLOCK
;;; (SLEEP <N>) SLEEPS FOR <N> SECONDS. <N> MAY BE A FIXNUM OR FLONUM.
$SLEEP: JSP T,FLTSKP ;SUBR 1
IT% CAIA
IT$ JSP T,M30.
IT$ FMPR TT,[30.0]
JSP T,IFIX
IT$ .SLEEP TT, ;SLEEP FOR <TT> 30TH'S OF A SECOND
10$ SLEEP TT, ;SLEEP FOR <TT> SECONDS
IFN D20,[
IMULI TT,1000.
SPECPRO INTSLP ;MUST PROTECT THIS IN CASE OF INTERRUPTS
MOVE 1,TT ;(A) WE WANT TO ALLOW INTERRUPTS TO GO THROUGH
DISMS ;(B) WE MUST BEWARE OF CRUD IN AC 1
XCTPRO
SETZ 1,
NOPRO
] ;END OF IFN D20
JRST TRUE
IFN ITS,[
ALARMCLOCK:
EXCH A,B
SETO TT,
CAIE B,Q$RUNTIME
JRST ALCK1
JUMPE A,ALCK3 ;NIL => TURN OFF CLOCK
JSP T,FLTSKP ;RUN TIME IN MICROSECONDS,
JRST .+2 ; ACCURATE TO 4. USEC JIFFIES
JSP T,IFIX
ASH TT,-2
ALCK3: .SUSET [.SRTMR,,TT]
ALCK4: JUMPL TT,FALSE
JRST TRUE
ALCK1: CAIE B,Q$TIME
JRST ALCK0
JUMPE A,ALCK5 ;NIL => TURN OFF CLOCK
JSP T,FLTSKP ;REAL TIME IN SECONDS,
JSP T,M30. ; ACCURATE TO 30TH'S
FMPRI TT,(30.0)
JSP T,IFIX
ASH TT,1
ALCK5: MOVSI R,400000
JUMPL TT,ALCK2
JUMPN TT,ALCK7
MOVEI TT,1 ;IF 0 SPECIFIED, USE 1/30 SECOND
ALCK7: MOVE R,[600000,,TT]
ALCK2: .REALT R,
JRST ALCK4
M30.: IMULI TT,30. ;NOTE: DOUBLE SKIP RETURN
JRST 2(T)
] ;END OF IFN ITS
;REMOB REMOB2 REMOB7 REMOB3 REMOB4 REMOB1 ARG ARGXX ARG3 SETARG ARGCOM
SUBTTL REMOB, ARG, SETARG
REMOB: JSP T,SPATOM ;SUBR 1 - REMOVE ATOMIC SYMBOL FROM OBARRAY
JSP T,PNGE ;ERROR IF ARG NOT A SYMBOL
LOCKI
PUSHJ P,INTERN
JRST REMOB7
REMOB2: LOCKI
REMOB7: EXCH A,B ;OBTBL BUCKET # SHOULD BE IN TT
MOVE R,TT
HRRZ D,VOBARRAY
HRRI TT,@TTSAR(D)
PUSHJ P,ARYGT4
HLRZ T,(A)
CAIN T,(B)
JRST REMOB1
REMOB3: MOVE D,A
HRRZ A,(A)
HLRZ T,(A)
CAIE T,(B)
JRST REMOB3
HRRZ T,(A)
HRRM T,(D)
REMOB4: HLRZ TT,(B) ;LEAVE ATOM HEADER IN T
HRRZ TT,1(TT) ;LEAVE PNAME LINK IN TT
JSP T,GCP8L ;CHECK TO SEE THAT SCOS ARE REMOVED FROM SCO TABLE.
SETZB A,B
UNLKPOPJ
REMOB1: HRRZ A,(A)
JSP T,.STOR0
JRST REMOB4
ARG: JUMPE A,ARG3 ;SUBR 1 - FETCH LSUBR ARGUMENT
ARGXX: JSP R,ARGCOM
HRRZ A,(D)
JRST PDLNKJ
ARG3: SKIPN ARGLOC ;(ARG NIL) RETURNS NUMBER OF LSUBR ARGUMENTS
JRST ARGCM1
HRRZ A,ARGNUM
JRST PDLNKJ
SETARG: JSP R,ARGCOM ;SUBR 2 - SET LSUBR ARGUMENT
MOVE A,B
JSP T,PDLNMK
HRRM A,(D)
POPJ P,
ARGCOM: SKIPN D,ARGLOC
JRST ARGCM0
JSP T,FXNV1
JUMPLE TT,ARGCM8
CAMLE TT,@ARGNUM
JRST ARGCM8
ADD D,TT
JRST (R)
;SBSYM VCLSYM VCSYM TLSYM TSYM PLSYM PSYM POF TOF PSYM1
SUBTTL P.$X AND FRIENDS
10% DEPURE: JSR POFF ;DEPURIFY A PAGE
10% REPURE: JSR POFF ;REPURIFY A PAGE
SBSYM: JSR POFF ;FIND SUBR NAME (ADR IN RH OF .)
VCLSYM: JSR POFF ;FIND ATOM FOR VC (ADR IN LH OF .)
VCSYM: JSR POFF ;FIND ATOM FOR VALUE CELL
TLSYM: JSR POFF ;PRINT ST ENTRY OF LEFT HALF OF A CELL
TSYM: JSR POFF ;ST ENTRY OF RIGHT HALF
PLSYM: JSR POFF ;PRINT LEFT HALF OF A CELL
PSYM: JSR POFF ;PRINT RIGHT HALF OF A CELL
POF: JSR POFF ;PRINT ARG (POINTER AT LOC 40)
TOF: JSR POFF ;ST ENTRY OF ARG (POINTER IN 40)
IT$ P%OFF: JSR POFF ;FOR % TYPEOUT MODE IN DDT
10% PPTBL: JSR POFF ;PRINT OUT PURTBL
10% PPPAG: JSR POFF ;PRINT OUT ACTUAL PAGE STATUSES
;POFF: 0
PSYM1: SETOM PSYMF
MOVEM T,PSMTS ;P.$X, DONE IN DDT,
MOVEM R,PSMRS ; WILL PRINT CONTENTS
MOVEI T,LPSMTB ; OF CURRENT OPEN CELL
MOVE R,@PSMTB-1(T) ; IN LISP FORMAT.
MOVEM R,PSMS-1(T)
SOJN T,.-2
IFE ITS,[
10$ HRRZ T,.JBDDT"
10$ HRRZ T,@6(T) ;WHAT A KLUDGE! 6?!!
20$ MOVEI T,60 ;TERRIBLE KLUDGE! 60
10$ CAIG R,POF
MOVEM T,PS.S
] ;END OF IFE ITS
HRRZ T,POFF
10% CAIG T,REPURE+1
10% JRST PUFY
PUSH P,CPSYMX
JSP T,ERSTP
MOVEM P,ERRTN
HRRZ R,POFF
IFN ITS,[
MOVEI T,40
MOVEM T,PS.S
MOVEI T,THIRTY+7
CAIN R,P%OFF+1
MOVEM T,PS.S
CAIG R,POF
.BREAK 12,PSMST
] ;END OF IFN ITS
JSP T,SPECBIND
TTYOFF
TAPWRT
V.RSET
10% V.NOPOINT ;FOR PPTBL
IFN USELESS, SETZM TYOSW
HRRZ AR1,V%TYO ;UPDATE OUR NOTION OF THE
PUSHJ P,TTYBR1 ; LINENUM AND CHARPOS OF THE TTY,
MOVEI TT,AT.LNN ; SINCE DDT HAS SCREWED IT ALL UP.
HLRZM D,@TTSAR(AR1)
MOVEI TT,AT.CHS
HRRZM D,@TTSAR(AR1)
;;; FALLS THRU
;PSYMP PSYMQ PSYMX CPSYMX PSYMP1 PSYMSB FCN.B
;;; FALLS IN
HRRZ T,POFF
10% CAIL T,PPTBL+1
10% JRST PPTBL1
MOVE T,PSMTS ;AT THIS POINT ALL ACS WILL HAVE BEEN
MOVE R,PSMRS ; RESTORED SO THAT MOVE A,@ WILL WORK.
MOVE A,PSMS
MOVE AR1,PSMS+AR1-A
MOVE A,@PS.S ;THUS THIS STUFF WORKS IF . IS AN AC.
HRRZ T,POFF
IT$ CAIN T,P%OFF+1
IT$ JRST PSYMP1
CAIN T,POF+1
MOVEI T,PSYM+1
CAIN T,TOF+1
MOVEI T,TSYM+1
SUBI T,SBSYM
TRNE T,1
TLZA A,-1
HLRZS A
LSH T,-1
JRST .+1(T)
JRST PSYMSB ;SB.$X
JRST PSYMVC ;VC.$X AND VCL.$X
JRST PSYMT ;T.$X AND TL.$X AND TP FOO$X
PSYMP: PUSHJ P,PRIN1 ;P.$X AND PL.$X AND PP FOO$X
PSYMQ: MOVEI A,TRUTH ;RETURN POINT TO GET OUT OF PSYM1
JRST ERR2
PSYMX: MOVEI T,LPSMTB
MOVE R,PSMS-1(T)
MOVEM R,@PSMTB-1(T)
SOJN T,.-2
MOVE T,PSMTS
MOVE R,PSMRS
SETZM PSYMF
CPSYMX: POPJ P,PSYMX
IFN ITS,[
PSYMP1: TLNN A,-1 ;LISP MODE TYPEOUT - HACK TWO HALVES
JRST PSYMP
PUSH P,A
HLRZ A,A
PUSHJ P,PRIN1
MOVEI A,", ;SEPARATE HALVES WITH ",,"
REPEAT 2, PUSHJ P,TYO
POP P,A
TLZ A,-1
JRST PSYMP
] ;END OF IFN ITS
PSYMSB: MOVEI B,(A)
PUSHJ P,ERRADR ;ERRADR DOES ALL THE DIRTY WORK!
JRST PSYMQ
FCN.B: SKIPE NOQUIT ;FAKE CONTROL-B INTERRUPT FROM DDT
POPJ P,
SKIPGE INTFLG
POPJ P,
;;; FALLS THRU
;TOF1 POF1 PSYMVC PSVC1 PSVC2 PSVC3 PUFY
;;; FALLS IN
PUSH FXP,D
MOVE D,INHIBIT ;CROCK SO THAT A .5LOCKI
AOJE D,POPXDJ ; WON'T STOP US
PUSH FXP,INHIBIT
SETZM INHIBIT
MOVE D,[TTYIFA,,400000+↑B]
PUSHJ P,UINT
POP FXP,INHIBIT
POP FXP,D
POPJ P,
TOF1: SKIPA T,[TOF]
POF1: MOVEI T,POF
PUSH P,UUOH
EXCH T,UUTSV
JRST @UUTSV
PSYMVC: MOVEI T,(A)
MOVEI A,QUNBOUND
CAIN T,SUNBOUND
JRST PSYMP
SKOTT T,LS
JRST PSVC1
JSP R,GCGEN
PSVC2
PSVC1: MOVEI A,QM
JRST PSYMP
PSVC2: HLRZ A,(D)
HLRZ B,(A)
HRRZ A,(B)
CAIN A,(T)
JRST PSVC3
HRRZ D,(D)
JUMPN D,PSVC2
JRST GCP8A
PSVC3: HLRZ A,(D)
JRST PSYMP
IFE D10,[
PUFY:
IT$ .BREAK 12,PSMST
MOVEI TT,@PS.S ;PURIFY THE PAGE THAT . IS ON
MOVE TT+1,TT ;USED BY DP≠X AND RP≠X
MOVEI C,-REPURE(T)
JSP R,IP0
JRST PSYMX
] ;END OF IFE D10
;ZZ PSMTB LPSMTB P. PL. VC. VCL. T. TL. SB. BB PSYMT PSYMT1 PSYMT2 PSYMT3 PSYMTT PSYMTL
;;; TABLE OF CELLS TO SAVE OVER THE PSYM FUNCTIONS
ZZ==. ;BE SURE TO SEE PSMS IF YOU CHANGE THIS TABLE
PSMTB: ;ACCUMULATOR A MUST BE THE FIRST ITEM, AND AR1 THE FOURTH
IRP FOO,,[A,B,C,AR1,AR2A,TT,D,F,40,UUOH,UUTSV,UUTTSV,UURSV,ERBDF,FPTEM]
FOO
TERMIN
IFN USELESS,[
PRINLV
TYOSW
ABBRSW
] ;END OF IFN USELESS
LPSMTB==.-ZZ ;FPTEM AND PCNT ARE SAME LOCATION
IT$ PSMST: 4,,PS.S-1 ;READ VALUE OF . FROM DDT WITH .BREAK 12,
; PP - A UUO ;PP IS FOR PRINTING OUT AN ADDRESS AS AN S-EXPRESSION:
;PP 34722$X IN DDT WILL PRINT OUT 34722 AS A
; POINTER IN LIST FORMAT.
; TP - A UUO ;TP IS LIKE PP BUT NICELY PRINTS ST ENTRY FOR
; THAT CELL
P.=PUSHJ P,PSYM ;P.$X IS LIKE PP FOO$X WHERE FOO IS RH OF.
PL.=PUSHJ P,PLSYM ;LIKE P., BUT FOR LH OF CURRENT CELL
IT$ P%=PUSHJ P,P%OFF ;LIKE P., BUT AS A DDT TYPEOUT MODE
VC.=PUSHJ P,VCSYM ;FIND NAME OF VALUE CELL RH OF . ADDRESSES
VCL.=PUSHJ P,VCLSYM ;A CROSS BETWEEN VC. AND PL.
T.=PUSHJ P,TSYM ;A CROSS BETWEEN P. AND TP
TL.=PUSHJ P,TLSYM ;A CROSS BETWEEN PL. AND TP
SB.=PUSHJ P,SBSYM ;FIND NAME OF SUBR ADDRESSED BY RH OF .
10% TBLPUR=PUSHJ P,PPTBL ;PRINT OUT PURTBL IN NICE FORM
10% PAGPUR=PUSHJ P,PPPAG ;PRINT OUT ACTUAL STATUS OF PAGES
BB=PUSHJ P,FCN.B ;FAKE CONTROL-B INTERRUPT FROM DDT
IT$ DP=PUSHJ P,DEPURE ;DEPURIFY PAGE . IS ON
IT$ RP=PUSHJ P,REPURE ;REPURIFY PAGE . IS ON
; ENDCODE [P.$X]
SUBTTL T.$X AND TBLPUR$X STUFF
PSYMT: PUSHJ P,ITERPRI ;T.$X TYPEOUT, ETC.
MOVEI TT,(A)
ROT TT,-SEGLOG
MOVE TT,ST(TT)
SETZB T,C
MOVNI R,22
PSYMT1: LSHC T,1
TRZN T,1
JRST PSYMT3
MOVEI A,"+
TROE C,1
PUSHJ P,TYO
MOVEI B,PSYMTT+22(R)
CAIL B,PSYMTT+PSYMTL
MOVEI B,[ASCII \??\]
HRLI B,440700
PSYMT2: ILDB A,B
JUMPE A,PSYMT3
PUSHJ P,TYO
JRST PSYMT2
PSYMT3: AOJL R,PSYMT1
MOVEI A,",
REPEAT 2, PUSHJ P,TYO
HLRZ A,TT
PUSHJ P,PRINC
JRST PSYMQ
.SEE LS ;THIS TABLE SHOULD BE KEPT CONSISTENT
.SEE ST ; WITH TWO OTHER PLACES
PSYMTT:
IRP TP,,[LS,$FS,FX,FL,BN,SY,SA,VC,$PDLNM,??,$XM,$NXM,PUR,HNK,DB,CX,DX]
ASCII \TP\
TERMIN
PSYMTL==.-PSYMTT
;PPTBL1 PPTBL2 PPTBL6 PPTBL3 PPTBL4 PPTBL5 PPTBL7 PPTBL9 PPTBL8
IFN ITS+D20,[
PPTBL1: MOVEI F,-PPTBL-1(T) ;0 => TBLPUR$X, 1 => PAGPUR$X
JSP T,0PUSH-5
MOVE R,[440200,,PURTBL]
MOVEI T,1
PPTBL2: MOVEM T,-4(FXP)
ILDB TT,R
JUMPE F,PPTBL6
IFN ITS,[
.CALL PPTBL8
.VALUE
ASH TT,-41
TRZ TT,1
SKIPGE TT
MOVEI TT,1 ;0=NONX, 1=IMPURE, 2=PURE
] ;END OF IFN ITS
IFN D20,[
MOVEI 1,-1(T)
HRLI 1,.FHSLF
RPACS
SETZ TT,
TLNN 2,(PA%PEX)
JRST PPTBL6
AND 2,[PA%RD+PA%WT+PA%EX+PA%CPY]
MOVEI TT,1
TLNN 2,(PA%WT)
SKIPA TT,[2]
MOVEI TT,1
] ;END OF IFN D20
PPTBL6: MOVEI A,(FXP)
SUBI A,(TT)
AOS (A)
MOVEI A,"0(TT)
PUSHJ P,TYO
MOVE T,-4(FXP)
TRNE T,7
AOJA T,PPTBL2
TRNN T,30
JRST PPTBL3
MOVEI A,40
PUSHJ P,TYO
MOVE T,-4(FXP)
TRNE T,10
AOJA T,PPTBL2
PUSHJ P,TYO
PUSHJ P,TYO
JRST PPTBL4
PPTBL3: PUSHJ P,ITERPRI
MOVE T,-4(FXP)
CAIN T,NPAGS
JRST PPTBL5
PPTBL4: TLZ R,770000
MOVE T,-4(FXP)
AOJA T,PPTBL2
PPTBL5: MOVEI R,TYO
MOVNI TT,4
PPTBL7: EXCH TT,(FXP) ;OKAY, QUUX, IF YOU EVER LOOK AT THIS CODE
JUMPE TT,PPTBL9 ; AGAIN YOU SHOULD HANG YOUR HEAD IN SHAME
MOVEI A,↑I ; FOR EVER HAVING WRITTEN SUCH BARFUCIOUS
PUSHJ P,TYO ; KLUDGY MEANDERINGS! JUNE 16, 1979 -JONL-
MOVE A,(FXP)
ADDI A,"4
PUSHJ P,TYO
%NEG%
MOVEI C,10.
PUSHJ P,PRINI2
POP FXP,TT
PPTBL9: AOJL TT,PPTBL7
POPI FXP,1
JRST PSYMQ
IFN ITS,[
PPTBL8: SETZ
SIXBIT \CORTYP\
1000,,-1(T)
402000,,TT
] ;END OF IFN ITS
] ;END OF IFN ITS+D20
;XPURIFY PURIFY FPURF2 IPUR1 IPUR2
SUBTTL PURIFY≠G ROUTINE
IFN ITS,[
XPURIFY: ;ENTRY POINT TO SETUP A PURQIX
MOVE T,[SIXBIT \PURQIX\];CHANGE SYSFN1 TO BE A PURQIX
MOVEM T,SYSFN1
MOVE T,[SIXBIT \DSK\] ;NEW DEVICE NAME
MOVEM T,SYSDEV
MOVE T,[SIXBIT \LISP\] ;AND FINALLY, NEW SNAME
MOVEM T,SYSSNM
MOVEI T,FEATEX ;SPLICE 'EXPERIMENTAL' INTO FEATURES LIST
MOVEM T,FEATURES
] ;END IFN ITS
IFN ITS+D20,[
PURIFY:
IFN ITS,[ ;DOESN'T REALLY WORK FOR D10 YET
JRST NOTINIT ;CLOBBERED BY INIT TO "SETO AR1,"
;SETO AR1, ;FOR PURIFY$G FROM DDT
MOVE P,[-LFAKP-1,,FAKP-1]
PUSHJ P,FPURF7
PUSHJ P,FPURF2
.VALUE [ASCIZ \:≠PURIFIED≠
\]
JRST .-1
] ;END OF IFN ITS
FPURF2: SETZB TT,PRSGLK ;ZERO PURE SEGMENT AOBJN PTR
MOVE R,[NPFFS,,NPFFS+1] ;ZERO PURE FREE STORAGE COUNTERS
SETZM NPFFS
BLT R,NPFFY2
SETZM LDXLPC ;CLEAR # WORDS FREE SO ALWAYS GRAB NEW SET
; OF SEGMENTS THE FIRST TIME A LINK IS NEEDED
; START NEW LIST OF SEGMENTS
SETOM LDXPFG ;SET PURE FLAG
20$ HRLI TT,.FHSLF
MOVNI R,NPAGS ;SO STEP THROUGH LOSING PURTBL
MOVE D,[440200,,PURTBL] ; TO DECIDE HOW TO MUNG PAGES
IPUR1: ILDB T,D ;GET BYTE FOR NEXT PAGE
JRST .+1(T)
JRST IPUR3 ;0 - DELETE
JRST IPUR4 ;1 - IMPURIFY
JRST IPUR6 ;2 - PURIFY
MOVEI T,NPAGS(R) ;3 - HAIRY STUFF - DECODE FURTHER
LSH T,PAGLOG
CAMGE T,BPSL ;CODE 3 SHOULD NEVER APPEAR
.VALUE ; BELOW BINARY PROGRAM SPACE
MOVE F,@VBPORG ;PAGIFY CURRENT VALUE OF
ANDI F,PAGMSK ; BPORG DOWNWARD
CAIGE T,(F) ;ANY CODE 3 PAGE BELOW THAT CAN
JRST IPUR6A ; BE PURIFIED
CAMG T,BPSH ;ANY CODE 3 PAGE BETWEEN BPORG
JRST IPUR2 ; AND BPSH IS LEFT AS IS
CAMG T,HINXM ;ANY PAGE BETWEEN BPSH AND HINXM
.VALUE ; DAMN WELL BETTER BE 0!!!
HRRZ F,PDLFL1 ;ANYTHING BETWEEN HINXM AND
LSH F,PAGLOG ; PDLS MUST BE PURE FREE STORAGE
CAIGE T,(F)
JRST IPUR6A
CAIGE T,BSCRSG ;SCRATCH PAGES ARE IGNORED
JUMPL AR1,IPUR3A ;PDL PAGES MAY OR MAY NOT BE FLUSHED, DEPENDING ON AR1
IPUR2:
IT$ ADDI TT,1001
20$ ADDI TT,1
TLNN D,730000 ;ONLY 20 2-BIT BYTES PER WORD, NOT 22
TLZ D,770000
AOJL R,IPUR1
20$ SETZB B,C ;ZERO OUT CRUD
MOVEI A,TRUTH
JUMPGE AR1,CPOPJ
MOVE T,[STDMSK]
MOVEM T,IMASK
IT$ MOVE T,[STDMS2]
IT$ MOVEM T,IMASK2
POPJ P,
;IPUR4 IPUR5 IPUR9 IPURE$ IPUR6A IPUR6 IPUR7 IPUR3A IPUR3
;;; IFN ITS+D20
;;; VARIOUS PAGE FLUSHING AND PURIFYING ROUTINES FOR PURIFY
IPUR4: ;MAKE PAGE WRITABLE
IFN ITS,[
.CALL IPUR9 ;CHECK TYPE OF PAGE
.VALUE
JUMPL T,IPUR2 ;ALREADY IMPURE
IOR TT,[4400,,400000]
JUMPG T,IPUR5
.CBLK TT, ;NON-EXISTENT - GET A FRESH PAGE
.VALUE
JRST IPUR2
IPUR5: TLZ TT,4000 ;PURE - TRY TO DEPURIFY
.CBLK TT,
JSP F,IP1 ;IF WE LOSE, TRY COPYING
JRST IPUR2
IPUR9: SETZ
SIXBIT \CORTYP\
1000,,400(R)
402000,,T
] ;END OF IFN ITS
IFN D20,[
MOVE 1,TT
JSP T,IPURE$ ;MAKE SURE PAGE EXISTS
TLZ 2,-1#(PA%RD+PA%WT+PA%EX+PA%CPY)
TLNE 2,(PA%WT) ;SKIP IF NOT ALREADY WRITEABLE
JRST IPUR2
TLON 2,(PA%CPY) ;SKIP IF ALREADY COPYABLE
SPACS
JRST IPUR2
;ARG IN A IS PAGE NUMBER. PRESERVE A,TT,D,R
;MAKE SURE PAGE EXISTS. IF NOT, CREATE SOME 0'S
;LEAVE RESULT OF RPACS IN B, AND PUT .FHSLF IN LH OF A
IPURE$: HRLI A,.FHSLF
RPACS
TLNE B,(PA%PEX)
JRST (T)
HRL T,A ;SAVE PAGE NUMBER IN LH OF T
MOVE F,B ;SAVE RPACS CALL IN F
MOVSI B,.FHSLF ;SOURCE PAGE IS 0, WHICH MUST EXIST
EXCH A,B
MOVSI C,(PM%RD+PM%CPY)
PMAP ;MAKE FOOOLISH PAGE EXIST
LSH B,9 ; [WHICH PROBABLY GOT LOST BY
HRLI B,1(B) ; THE "SAVE" COMMAND] BY COPYING
MOVEI C,777(B) ; THE FIRST PAGE OF THE JOB
SETZM (B)
MOVSS B
BLT B,(C) ;FOO! A PAGE OF 0'S
MOVE B,F
HLR A,T
HRLI 1,.FHSLF
JRST (T)
] ;END OF IFN D20
;MAKE PAGE READ-ONLY
IPUR6A: MOVEI T,2 ;CHANGE PURTBL ENTRY TO 2
DPB T,D
IPUR6:
IFN ITS,[
.CALL IPUR9 ;CHECK TYPE OF PAGE
.VALUE
JUMPG T,IPUR2 ;ALREADY PURE
JUMPE T,IPUR7 ;CAN'T PURIFY A NON-EXISTENT PAGE
TLZ TT,4400 ;PURIFY AN IMPURE PAGE
TRO TT,400000
.CBLK TT,
IPUR7: .VALUE
JRST IPUR2
] ;END OF IFN ITS
IFN D20,[
MOVE 1,TT
JSP T,IPURE$ ;MAKE SURE PAGE EXISTS
TLZ 2,-1#(PA%RD+PA%WT+PA%EX+PA%CPY)
TLZE 2,(PA%WT+PA%CPY) ;ALREADY READ-ONLY?
SPACS
JRST IPUR2
] ;END OF IFN D20
;DELETE A PAGE
IPUR3A: SKIPE NOPFLS ;NOPFLS NON-ZERO => DON'T FLUSH PAGES
JRST IPUR2
DPB NIL,D ;ZERO OUT PURTBL ENTRY
IPUR3:
IFN ITS,[
TRZ TT,400000
.CBLK TT,
.VALUE
] ;END OF IFN ITS
IFN D20,[
SETO 1,
MOVE 2,TT
HRLI 2,.FHSLF
SETZ 3,
PMAP
] ;END OF IFN D20
JRST IPUR2
] ;END OF IFN ITS+D20
;RSXTB2 RCT0
SUBTTL PURE COPY OF THE READ SYNTAX TABLE
-1,,0 ;FOR NEWRD WILL POINT TO MACRO CHAR LIST
RSXTB2: PUSH P,CFIX1
JSP TT,1DIMF
NIL ;SHOULD NEVER ACTUALLY CALL
0
RCT0:
IFE NEWRD,[ ;OLD VERSION OF PURE READTABLE
IFN SAIL,[
400500,,0 ;NULL IS IGNORED
REPEAT 10, 2,,1+.RPCNT ;SAIL CHARS
500500,,↑I ;TAB
500500,,↑J
400500,,↑K
400500,,↑L
500500,,↑M ;CR
REPEAT 22, 2,,↑N+.RPCNT ;SAIL CHARS
] ;END IFN SAIL
.ELSE,[
REPEAT 10, 400500,,.RPCNT ;↑@ ↑A ↑B ↑C ↑D ↑E ↑F ↑G
2,,↑H ;↑H
500500,,↑I ;TAB
400500,,↑J ;LINE-FEED
400500,,↑K
400500,,↑L
500500,,↑M ;CARRIAGE-RETURN
REPEAT 3, 400500,,↑N+.RPCNT ;↑N ↑O ↑P
405540,,QCTRLQ ;↑Q
400500,,↑R ;↑R
405540,,QCTRLS ;↑S
REPEAT 7, 400500,,↑T+.RPCNT ;WORTHLESS
2,,33 ;ALT MODE
REPEAT 4, 400500,,↑\+.RPCNT ;WORTHLESS
] ;END IFE SAIL
500500,,40 ;SPACE
2,,41 ;!
404500,,Q%IDQM ;"
404540,,QRDSHP ;#
REPEAT 3, 2,,"$+.RPCNT ;$ % &
404500,,QRDQTE ;'
440500,,"( ;(
410500,,") ;)
2,,"* ;*
10,,"+ ;+
404500,,QI%C%F ;, (INTERNAL-COMMA-FUN)
50,,"- ;-
420700,,". ;.
402500,,"/ ;/
REPEAT 10., 4,,"0+.RPCNT ;DECIMAL DIGITS
2,,": ;:
404540,,QRDSEMI ;;
REPEAT 5, 2,,"<+.RPCNT ;< = > ? @
REPEAT 26., 1,,"A+.RPCNT ;ALPHABETIC
REPEAT 3, 2,,133+.RPCNT ;SQUARE BRACKTES
22,,"↑ ;CARET
62,,"← ;UNDERSCORE
404500,,QI%B%F ;GRAVE (INTERNAL-BACKQUOTE-FUN)
REPEAT 26., 501,,"A+.RPCNT ;SMALL LETTERS
2,,173 ;LEFT BRACE
404500,,QRDVBAR ;VERTICAL BAR
REPEAT 2, 2,,175+.RPCNT ;RIGHT BRACE, TILDE
401500,,177 ;RUBOUT
IFN .-RCT0-200, WARN [READTABLE LOSSAGE]
402500,,57 ;PSEUDO SLASHIFIER CHARACTER
440500,,50 ;PSEUDO OPEN PARENS
410500,,51 ;PSEUDO CLOSE PARENS
500540,,40 ;PSEUDO SPACE
IFN SAIL,[
REPEAT 74, 400500,,204+.RPCNT ;SAIL CONTROLIFIED FUNNY CHARACTERS
REPEAT 2, 400500,,300+.RPCNT ;↑@ ↑A
400500,,302 ;↑B
REPEAT 5, 400500,,300+.RPCNT ;↑C ↑D ↑E ↑F ↑G
2,,300+↑H ;↑H
500500,,300+↑I ;TAB
500500,,300+↑J ;LINE-FEED
400500,,300+↑K
400500,,300+↑L
500500,,300+↑M ;CARRIAGE-RETURN
REPEAT 3, 400500,,300+↑N+.RPCNT ;↑N ↑O ↑P
405540,,QCTRLQ ;↑Q
400500,,300+↑R ;↑R
405540,,QCTRLS ;↑S
REPEAT 7, 400500,,300+↑T+.RPCNT ;WORTHLESS
2,,33 ;ALT MODE
REPEAT 444, 400500,,300+↑\+.RPCNT ;WORTHLESS
IFN .-RCT0-1000, WARN [SAIL RCT0 LOSSAGE -- WRONG LENGTH TABLE]
] ;END IFN SAIL
] ;END OF IFE NEWRD
;;; MORE ON NEXT PAGE
;TLRCT ZZ .NOPOINT CTY TYOI CTYP TYO1C TYO1TB
IFN NEWRD,[ ;NEW VERSION OF PURE READTABLE
REPEAT 11, RS.BRK+RS.SL1+RS.SL9 + .RPCNT ;WORTHLESS CONTROL CHARS
RS.BRK+RS.SL1+RS.SL9+RS.WSP + ↑I ;TAB
RS.BRK+RS.SL1+RS.SL9+RS.WSP+RS.VMO + ↑J ;LINE-FEED
RS.BRK+RS.SL1+RS.SL9 + ↑K ;↑K (WORTHLESS)
RS.BRK+RS.SL1+RS.SL9+RS.VMO + ↑L ;↑L (WORTHLESS)
RS.BRK+RS.SL1+RS.SL9+RS.WSP + ↑M ;CARRIAGE-RETURN
REPEAT 3, RS.BRK+RS.SL1+RS.SL9 + ↑N+.RPCNT ;WORTHLESS
RS.BRK+RS.SL1+RS.SL9+RS.MAC+RS.FF + ↑Q ;↑Q (fun is QCTRLQ)
RS.BRK+RS.SL1+RS.SL9 + ↑R ;↑R (WORTHLESS)
RS.BRK+RS.SL1+RS.SL9+RS.MAC+RS.FF + ↑S ;↑S (fun is QCTRLS)
REPEAT 7, RS.BRK+RS.SL1+RS.SL9 + ↑T+.RPCNT ;WORTHLESS
RS.XLT + 33 ;ALTMODE
REPEAT 4, RS.BRK+RS.SL1+RS.SL9 + 34+.RPCNT ;WORTHLESS
RS.BRK+RS.SL1+RS.SL9+RS.WSP + 40 ;SPACE
REPEAT 6, RS.XLT + "!+.RPCNT ;! " # $ % &
RS.BRK+RS.SL1+RS.SL9+RS.MAC + "' ;SINGLE-QUOTE
RS.BRK+RS.SL1+RS.SL9+RS.LP + "( ;LEFT PAREN
RS.BRK+RS.SL1+RS.SL9+RS.RP + ") ;RIGHT PAREN
RS.XLT + "* ;ASTERISK
RS.SL1+RS.SGN + "+ ;PLUS
RS.BRK+RS.SL1+RS.SL9+RS.WSP + ", ;COMMA
RS.SL1+RS.SGN+RS.ALT + "- ;MINUS
RS.BRK+RS.SL1+RS.SL9+RS.DOT+RS.PNT + ". ;DOT
RS.BRK+RS.SL1+RS.SL9+RS.SLS + "/ ;SLASH
REPEAT 10., RS.SL1+RS.DIG + "0+.RPCNT ;0 - 9
RS.XLT + ": ;COLON
RS.BRK+RS.SL1+RS.SL9+RS.MAC+RS.ALT + "; ;SEMI-COLON
REPEAT 5, RS.XLT + "< + .RPCNT ;< = > ? @
REPEAT 4, RS.LTR + "A+.RPCNT ;A-D
RS.LTR + RS.SQX + "E ;E
REPEAT 21., RS.LTR + "F+.RPCNT ;F-Z
REPEAT 3, RS.XLT + 133+.RPCNT ;LBRACK BSLASH RBRACK
RS.ARR+RS.XLT + "↑ ;UP-ARROW
RS.ARR+RS.ALT+RS.XLT + #← ;UNDERSCORE
RS.BRK+RS.SL1+RS.SL9+RS.MAC + "` ;BACK-QUOTE
REPEAT 4, RS.LTR + "A+.RPCNT ;A-D L.C.
RS.LTR+RS.SQX + "E ;E L.C.
REPEAT 21., RS.LTR + "F+.RPCNT ;F-Z L.C.
REPEAT 4, RS.XLT + "{+.RPCNT ;LBRACE VBAR RBRACE TILDE
RS.BRK+RS.SL1+RS.SL9+RS.RBO + 177 ;RUBOUT
RS.BRK+RS.SL1+RS.SL9+RS.SLS + "/ ;PSEUDO SLASH
RS.BRK+RS.SL1+RS.SL9+RS.LP + "( ;PSEUDO (
RS.BRK+RS.SL1+RS.SL9+RS.RP + ") ;PSEUDO )
RS.BRK+RS.SL1+RS.SL9+RS.WSP + 40 ;PSEUDO SPACE
] ;END OF IFN NEWRD
TLRCT==<.-RCT0>
SA$ INFORM [READTABLE LENGTH = ]\LRCT
ZZ==LRCT-TLRCT
IFE NEWRD,[
IFL ZZ-1-2, INFORM READER-TABLE-DEFICIENCY,\<3-ZZ>
.ELSE BLOCK ZZ-3
] ;END OF IFE NEWRD
NIL,,NIL ;UNUSED
TRUTH,,0 ;(STATUS TTYREAD),,(STATUS ABBREVIATE)
NIL,,TRUTH ;(STATUS TERPRI),,(STATUS ←)
;;; TTYREAD=NIL => ONLY FORCE FEED CHARS LET READ SEE THE TTY BUFFER
;;; ABBREVIATE: 1.1 => ABBREV FILES, 1.2 => ABBREV FLATSIZE/EXPLODE
;;; THE FOLLOWING, "TERPRI", MAY NO LONGER BE ACTIVE: (11/01/79 - JONL)
;;; TERPRI=T => DO NOT OUTPUT AUTOMATIC NEWLINES
;;; ←=T => ALLOW PRIN1/PRINC TO OUTPUT FIXNUMS IN FORM M←N
SUBTTL TOP PAGE PGTOP, AND SOME INSRTS
MOVEI 1,[.] ;THIS WASTEFUL HAC IS MERELY TO INSURE THAT THE LAST
MOVEI 2,[.] ;FEW CONSTANTS ON THIS PART ARE WORTHLESS
MOVEI 3,[.] ;IN CASE THERE ARE MORE ON PASS2 THAN PASS1
PGTOP TOP,[TOPLEVEL, COMMON, AND RANDOM STUFF]
;;; HERE IS A SUNDER HAC - IT MUST BE ABLE TO FIND
;;; <LF>$INSRT<SP>NAME<TABS-OR-SPACES>;COMMENTS ON FILE
;;@ PRINT 288 PRINT AND FILE-HANDLING FUNCTIONS
;;; ***** MACLISP ****** PRINT AND FILE-HANDLING FUNCTIONS *******
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
SUBTTL FUNNY PRINTING ROUTINES
PGBOT PRT
.NOPOINT:
PUSHJ P,NOTNOT
HRRZM A,V.NOPOINT
POPJ P,
COMMENT | HERE IS A FINE HACK THAT GOT SUPERSEDED BY CTYP
CTY: PUSHJ P,TYOI ;THIS IS ALWAYS DONE BY A XCT "Q,CTY - FOR RANDOM Q.
TYOI: PUSH P,A ; USEFUL MAINLY BECAUSE IT SAVES A. WARNING!!!
MOVE A,-1(P) ; THIS CODE IS VERY HACKISH, DEPENDENT ON THE OPCODE
LDB A,[270600,,-1(A)] ; OF XCT (256). THIS ONLY WORKS FOR ASCII
PUSHJ P,(R) ; CHARS IN THE RANGE 40-57. THUS Q MUST BE AMONG
JRST POPAJ ; [ !"#$%&'()*+,-./] (THE BRACKETS ARE META-CHARS!)
| ;END OF COMMENT
;;; XCT N,CTYP
;;; CAUSES THE N'TH CHARACTER IN TYO1TB TO GET PRINTED VIA
;;; THE ROUTINE IN R. SYMBOLS ARE DEFINED FOR THESE XCT'S.
CTYP: PUSHJ P,TYO1C
TYO1C: PUSH P,A
HRRZ A,-1(P)
LDB A,[270400,,-1(A)]
MOVE A,TYO1TB(A)
PUSHJ P,(R)
JRST POPAJ
TYO1TB:
IRP X,,[#,(,),+,-,.,/,|,:,;, ,←,E,D,⊃,.]Z,,[NMBR,LPAR,RPAR,POS
NEG,DOT,SLSH,VBAR,CLN,SEMI,SPC,BAK,E,D,CTLQ,DCML]
%!Z!%=XCT .IRPCNT,CTYP
"X
TERMIN
IFG .-TYO1TB-20, WARN [TOO MANY TYO1TB CHARACTERS]
;PRNARG PRNAR$ PRNAR0 PRNAR3 PRNAR7 PRNTTY PRNAR2 PRNAR4 PRNAR5 PRNAR6 PRNARA PRNAR8 PRNAR9 PNAGX CPNAGX
SUBTTL NEWIO TYO FUNCTION AND RELATED ROUTINES
;;; CALLED BY FUNCTIONS LIKE PRINT WHICH TAKE AN ARG AND
;;; AN OPTIONAL ASCII OUTPUT FILE ARRAY. DOES ARGS CHECKING
;;; AND SETS UP AR1 WITH THE CORRECT OUTPUT FILE(S).
;;; IF ONE ARG IS GIVEN AND THERE ARE NO FILES TO OUTPUT TO
;;; (↑W IS NON-NIL, AND EITHER ↑R OR OUTFILES IS NIL),
;;; THEN A POPJ IS DONE, RETURNING FOR THE CALLING FUNCTION.
;;; LEFT HALF BITS IN AR1:
;;; 400000 RH OF AR1 HAS SINGLE FILE ARRAY (ELSE LIST)
;;; 200000 DO *NOT* OUTPUT TO TTY AS WELL
;;; IFN SFA, THEN ALSO PRINT/PRINC/PRIN1/TYO BIT
;;;
;;; CALLED BY:
;;; JSP F,PRNARG
;;; XXX,,[QPRINT] ;ATOM FOR WNA ERROR
;;; -OR- XXX,,[<SFA-BIT>,,QPRINT] ;IFN SFA
;;; XXX IS TYPICALLY JFCL. IF XXX IS NEGATIVE, THE RETURN VALUE
;;; FOR THE FUNCTION IS NIL INSTEAD OF T.
PRNARG: AOJN T,PRNAR2
POP P,A
PRNAR$: SAVE AR1 AR2A CPNAGX
PRNAR0: SKIPE AR1,TAPWRT ;IF ↑R NOT SET, USE NIL
HRRZ AR1,VOUTFILES ;OTHERWISE USE OUTFILES
JUMPN AR1,PRNAR3
SKIPE TTYOFF
JRST PRNAR8
PRNAR3:
SFA$ HLRZ T,@(F) ;PLACE OPERATIONS FLAG IN AR1
SFA$ TLO AR1,(T)
TRNN AR1,-1
SFA$ JRST PRNTTY ;GOING TO THE TTY
SFA% JRST 1(F)
PUSHJ P,MPFLOK
JRST 1(F)
PRNAR7: PUSHJ P,OFCAN
EXCH A,AR1
PUSHJ P,[IOL [LOSING OUTPUT FILE SPECS!]]
EXCH A,AR1
JUMPE T,PRNAR0
JRST PRNAR4
IFN SFA,[
PRNTTY: TLNE AR1,200000 ;REALLY GOING TO THE TTY?
JRST 1(F) ;NOPE, SO RETURN
MOVSI T,AS.SFA ;IS C(TYO) AN SFA?
MOVE R,V%TYO
TDNN T,ASAR(R)
JRST 1(F) ;NOPE, SO ALL IS OK
HLLZ T,@(F) ;SFA OPERATION MASK
MOVEI TT,SR.WOM
TDNN T,@TTSAR(R) ;CAN THE SFA DO THIS OPERATION DIRECTLY?
JRST 1(F) ;NOPE, IT WILL HANDLER A LOWER-LEVEL THING
MOVEI C,(A) ;ARG IS THING TO PRINT/PRINC/PRIN1
MOVEI AR1,(R) ;THE SFA
JRST ISTCAL ;DO AN INTERNAL SFA CALL
] ;END IFN SFA
PRNAR2: CAME T,XC-1
JRST PRNAR9
MOVE A,-1(P)
MOVEM AR1,-1(P)
EXCH AR2A,(P)
PUSH P,CPNAGX
SKIPN AR1,AR2A
AOJA T,PRNAR0
PRNAR4: JSP T,PRNARK
JRST PRNARA ;ERRONEOUS FILE
JRST PRNAR6 ;LIST OF SOME KIND
SFA$ SKIPA ;NORMAL RETURN
SFA$ JRST PRNAR8 ;HANDLED THE SFA
PRNAR5: TLO AR1,600000 ;VALID FILE OBJECT
HLRZ T,@(F)
TLO AR1,(T)
JRST 1(F)
PRNAR6: TLO AR1,200000
JRST PRNAR3
PRNARA: TLO AR1,200000 ;MAKE ERROR MESSAGE PRINT CORRECTLY
JRST PRNAR7
PRNAR8: SKIPGE (F)
JRST FALSE
JRST TRUE
PRNAR9: HRRZ D,@(F)
JRST S1WNAL
PNAGX: RSTR AR2A AR1
CPNAGX: POPJ P,PNAGX
;MPFLOK MPFLO1 MPFLO3 MPFLO2 PRNARK PRNRK3 PRNRK1 PRNRK2 PRTSTO PRTSO1 PRTSTR PRTST1 PRTST2 PRTSTL
;;; CHECK LIST OF FILES IN AR1 FOR VALIDITY.
;;; SKIPS ON *FAILURE*.
MPFLOK: PUSH P,AR1 ;MUST PRESERVE LH OF AR1
MOVEI AR2A,(AR1)
MPFLO1: JUMPE AR2A,MPFLO2
HLRZ AR1,(AR2A)
JSP T,PRNARK
JRST MPFLO3 ;ERROR
JRST MPFLO3 ;LIST (NOT ALLOWED WITHIN ANOTHER LIST)
SFA$ SKIPA ;NORMAL
SFA$ JFCL ;HANDLED THE SFA
HRRZ AR2A,(AR2A)
JRST MPFLO1
MPFLO3: AOS -1(P) ;ERROR - SKIP
MPFLO2: POP P,AR1
POPJ P,
;;; CHECK OUT OBJECT IN AR1.
;;; SKIP 3 IF AN SFA, AND HANDLED IT
;;; SKIP 2 IF A VALID, OPEN, NON-BINARY, OUTPUT FILE OBJECT.
;;; SKIP 1 IF A LIST (ELEMENTS ARE NOT CHECKED).
;;; SKIP 0 OTHERWISE.
PRNARK: CAIN AR1,TRUTH ;ARG CHECK FOR PRNARG
HRRZ AR1,V%TYO ;FOR T, ASSUME CONTENTS OF TYO
JSP TT,XFOSP ;MUST BE FILE ARRAY OR SFA
JRST PRNRK2
IFN SFA,[
JRST PRNRK1
PUSH P,T ;SAVE T
MOVEI TT,SR.WOM ;AN SFA
HLLZ T,@(F) ;THE APPROPRIATE FUNCTION
TDNN T,@TTSAR(AR1) ;CAN THE SFA DO IT?
JRST PRNRK3 ;NOPE, RESTORE T AND PROCEED
PUSHJ FXP,SAV5 ;SAVE THE 'WORLD'
PUSHJ P,SAVX5
MOVEI C,(A) ;ARGUMENT TO SFA
PUSHJ P,ISTCAL
PUSHJ P,RSTX5
PUSHJ FXP,RST5
POP P,T
JRST 3(T) ;TRIPLE-SKIP RETURN
PRNRK3: POP P,T
JRST 2(T) ;DOUBLE-SKIP RETURN, LOWER-LEVEL WILL HANDLE IT
PRNRK1: ] ;END IFN SFA
MOVE TT,TTSAR(AR1)
TLNE TT,TTS.IO ;MUST BE OUTPUT FILE
TLNE TT,TTS<BN+CL> ;MUST NOT BE CLOSED, NOR BINARY
JRST (T) ;ERROR
JRST 2(T) ;SUCCESS - VALID FILE OBJECT
PRNRK2: MOVEI TT,(AR1)
LSH TT,-SEGLOG
SKIPGE ST(TT)
JRST 1(T) ;OKAY IF LIST (CALLER USUALLY WILL USE MPFLOK)
JRST (T) ;ELSE ERROR
IFN SFA,[
;;; FILE-ARRAY OR LIST IN AR1: IF ZERO USE V%TYO
PRTSTO: PUSH P,PRTSO1 ;IN CASE PRTSTR POPJS
PUSH FXP,F
PUSH FXP,A
MOVEI A,(FXP) ;GIVE IT A PDL NUMBER
JSP F,PRTSTR ;DO SFA CHECKING
[SO.TYO,,]
POP FXP,A
POPI P,1
PRTSO1: POPJ FXP,.+1 ;RETURN TO CALLER
POPI FXP,2 ;HANDLED ALL WE NEEDED TO
POPJ P,
PRTSTR: JUMPE AR1,PRTST1 ;HANDLE DEFAULT CONDITION SPECIALLY
JSP T,PRNARK ;CHECK OUT C(AR1)
JFCL ;PROBABLY BAD OUTFILES
JRST PRTSTL ;A LIST
JRST 1(F) ;A FILE ARRAY OR UNHANDLED SFA
POPJ P, ;A HANDLED SFA
PRTST1: HRRZ AR1,V%TYO
MOVEI TT,SR.WOM ;AN SFA
HLLZ T,@(F) ;THE APPROPRIATE FUNCTION
TDNN T,@TTSAR(AR1) ;CAN THE SFA DO IT?
JRST PRTST2 ;NOPE, RETURN NORMALLY
PUSHJ FXP,SAV5 ;SAVE THE 'WORLD'
PUSHJ P,SAVX5
MOVEI C,(A) ;ARGUMENT TO SFA
PUSHJ P,ISTCAL
PUSHJ P,RSTX5
PUSHJ FXP,RST5
POPJ P, ;RETURN
PRTST2: SETZ AR1, ;MAKE SURE AR1 IS STILL ZERO
JRST 1(F) ;THEN RETURN TO CALLER
PRTSTL: PUSHJ P,MPFLOK ;CHECK THE LIST IN AR1
JRST 1(F) ;RETURN IF ALL OK
PUSHJ P,OFCAN
EXCH A,AR1
PUSHJ P,[IOL [LOSING OUTPUT FILE SPECS!]]
EXCH A,AR1
JRST PRTSTR
] ;END IFN SFA
;TYO$ %TYO %TYO1 TYO $TYO TYOPR TYO1 TYO6 STRTYO TYO6A TYO6B TYO5 TYO2 TYO2A TYO2Z TYO2B TYO4 TYOARG
TYO$: JSP F,PRNAR$ ;USER'S "*TYO" ENTRY
SFA$ [SO.TYO,,QTYO$]
SFA% [QTYO$]
JRST %TYO1
%TYO: JSP F,PRNARG ;USER'S "TYO" ENTRY
SFA% JFCL [Q%TYO]
SFA$ JFCL [SO.TYO,,Q%TYO]
%TYO1: JSP T,GTRDTB
PUSHJ P,TYO1
JRST TRUE
TYO: SKIPE AR1,TAPWRT ;ENTRY FOR SINGLE-ENTER INTERNALS
HRRZ AR1,VOUTFILES ;TEMP ??
SFA$ JSP F,PRTSTO ;DO SFA CHECKING STUFF
$TYO: PUSH FXP,T ;ENTRY FOR PRIN1, PRINC, GC-PRINTOUT,
PUSH FXP,TT ; AND MULTIPLE-ENTER INTERNALS
PUSH P,[PXTTTJ]
JSP T,GTRDTB
TYOPR: SKIPA TT,A ;MUST SAVE R FOR PRINT
TYO1: JSP F,TYOARG
;AT THIS POINT: CHAR IN TT, FILE(S) IN AR1, READTABLE IN AR2A
;MUST SAVE A,B,C,AR1,R
TYO6: .5LKTOPOPJ
STRTYO: JUMPGE AR1,TYO5
TLNN AR1,200000
SKIPE TTYOFF
JRST TYO6A
SKIPLE TYOSW
JRST TYO6A
PUSH P,AR1
HRR AR1,V%TYO
TLZ AR1,600000
PUSHJ P,TYOF
POP P,AR1
TYO6A: MOVEI T,(AR1)
CAIE T,TRUTH
JRST TYO6B
HRR AR1,V%TYO ;T MEANS SAME AS VALUE OF TYO,
SKIPN TTYOFF ; BUT CAN BE SILENCED BY ↑W
TYO6B: SKIPGE TYOSW
POPJ P,
JRST TYOF
TYO5:
REPEAT 2, PUSH P,AR1
HRRZS -1(P)
TLNN AR1,200000
SKIPE TTYOFF
JRST TYO2
HRR AR1,V%TYO
SKIPG TYOSW
PUSHJ P,TYOF
TYO2: SKIPL TYOSW
TYO2A: SKIPN AR1,-1(P)
JRST TYO4
HLRZ AR1,(AR1)
CAIN AR1,TRUTH
JRST TYO2Z
HLL AR1,(P)
JRST TYO2B
TYO2Z: HRRZ AR1,V%TYO
HLL AR1,(P)
SKIPN TTYOFF
TYO2B: PUSHJ P,TYOF
HRRZ AR1,@-1(P)
MOVEM AR1,-1(P)
JRST TYO2A
TYO4: POP P,AR1 ;PRESERVE AR1
JRST POP1J
TYOARG: JSP T,FXNV1
IFN SAIL\ITS, TDNN TT,[777777,,770000] ;UP TO 12. BITS OKAY
IFE SAIL\ITS, TDNN TT,[777777,,777400] ;UP TO 8 BITS OKAY
JRST (F)
JRST TYOAGE
;TYOFA TYOFIL TYOF TYOFS1 TYOFS0 TYOF0D TYOF0E TYOF0G TYOF2 TYOFXL TYOFE
;;; TYO ONE CHARACTER TO ONE FILE. MUST PRESERVE AR1,AR2A
;;; USER INTERRUPTS LOCKED OUT. (??)
;;; FILE ARRAY IN AR1.
;;; READTABLE IN AR2A.
;;; CHARACTER IN TT (MUST BE PRESERVED).
;;; TYOF HANDLES ALL CHARPOS, LINENUM, AND PAGENUM PROCESSING,
;;; CONTROL CHARACTERS, SAIL MODE OUTPUT, ETC.
;;; ALL CR'S NOT FOLLOWED BY LF'S HAVE LF'S SUPPLIED FOR THEM.
;;; MUST SAVE R FOR PRINT.
TYOFA: MOVE TT,A
TYOFIL: .5LKTOPOPJ
TYOF: TRNN AR1,-1
JRST TYOFE
IFN SFA,[
MOVSI T,AS.SFA ;AN SFA?
TDNN T,ASAR(AR1)
JRST TYOFS0 ;NOPE
PUSHJ FXP,SAV5 ;SAVE THE 'WORLD'
PUSHJ P,SAVX5
SKIPGE TT ;DO A CONVERSION ON FORMAT INFO
MOVNI TT,(TT)
JSP T,FXCONS ;CONS UP A FIXNUM
HLLZ T,AR1 ;HAS THIS SFA BEEN HACKED AT A HIGHER LEVEL?
TLZ T,600000 ;BITS NOT OF INTEREST TO THE SFA
MOVEI TT,SR.WOM
TDNE T,@TTSAR(AR1) ;CHECK THE OPERATIONS MASK
JRST TYOFS1 ;ALRADY DONE IT, SO RETURN
HRRZS INHIBI ;REALLY DIDN'T WANT THAT .5LKTOPOPJ
MOVEI C,(A) ;AS THE ARGUMENT TO THE SFA
MOVEI B,Q%TYO ;A TYO OPERATION
MOVEI A,(AR1) ;THE SFA ITSELF
PUSHJ P,ISTCSH ;DO SHORT INTERNAL SFA CALL
TYOFS1: PUSHJ FXP,RST5
JRST RSTX5 ;RESTORE ACS AND RETURN
TYOFS0: ] ;END IFN SFA
MOVE T,TTSAR(AR1)
JUMPL TT,TYOF7 ;NEGATIVE => FORMAT INFO
SKIPGE ATO.LC(T)
PUSHJ P,TYOFXL
IT% CAIN TT,177 ;RUBOUT HAS NO PRINT WIDTH
IT% JRST TYOF4
CAIN TT,7 ;<BELL> HAS NO PRINT WIDTH
JRST TYOF0G
IT$ CAIE TT,177 ;ITS RUBOUT PRINTS AS TWO CHARACTERS
CAIGE TT,40 ;CONTROL CHARACTERS HAVE WIDTH
JRST TYOF2 ; OF 1 OR 2, OR ELSE ARE FUNNY
TYOF0D: AOS D,AT.CHS(T) ;INCREMENT CHARPOS
SKIPE ATO.LC(T) ;SKIP UNLESS LAST CHAR WAS /
JRST TYOF0G
SKIPLE FO.LNL(T) ;ZERO OR NEGATIVE LINEL => INFINITY
TLNE T,TTS<IM> .SEE STERPRI
JRST TYOF0E ;FOR IMAGE OUTPUT, NO EXTRA CHARS
CAMLE D,FO.LNL(T)
SKIPE V%TERPRI
JRST TYOF0E
HRLM TT,(P) ;NEW LINE NEEDED BEFORE THIS CHAR
MOVEI TT,↑M ;BECAUSE OF AUTO-TERPRI
PUSHJ P,TYOF4
PUSHJ P,TYOFXL
MOVEI TT,1
MOVEM TT,AT.CHS(T) ;SO THIS CHAR WILL BE AT CHARPOS 1
HLRZ TT,(P)
TYOF0E: MOVE D,@TTSAR(AR2A) ;GET READTABLE ENTRY FOR THIS
TLNE D,2000 .SEE SYNTAX ;IF THIS IS A /, SET FLAG
HLLOS ATO.LC(T) ; FOR NEXT TIME AROUND
JRST TYOF4
TYOF0G: SETZM ATO.LC(T) ;RESET / FLAG
JRST TYOF4 ;OUTPUT CHAR, IGNORING LINEL
TYOF2: CAIG TT,↑M ;FOUND CONTROL CHAR
CAIGE TT,↑H
JRST TYOF3 ;REGULAR CONTROL CHAR
JRST @.+1-↑H(TT) ;FORMAT EFFECTOR - PECULIAR
TYOFBS ;↑H BACKSPACE
TYOFTB ;↑I TAB
TYOFLF ;↑J LINE FEED
TYOF3 ;↑K <NOT REALLY FORMAT CHAR>
TYOFFF ;↑L FORM FEED
TYOFCR ;↑M CARRIAGE RETURN
TYOFXL: SETZM ATO.LC(T) ;LINE FEED NEEDED BEFORE THIS CHAR
CAIE TT,↑J ;FORGET IT IF THIS CHAR IS LF
TLNE T,TTS<IM> ;DON'T GENERATE LF FOR IMAGE FILE
POPJ P,
HRLM TT,(P)
MOVEI TT,↑J
PUSHJ P,TYOFLF
HLRZ TT,(P)
POPJ P,
TYOFE: EXCH A,AR1
%WTA [SIXBIT \NOT A FILE - TYO!\]
;TYOF3 TYOFBS TYOFTB TYOFLF TYOFFF TYOF7 TYOFCR
TYOF3: CAIN TT,33 ;ALTMODES ARE ALWAYS 1 WIDE
JRST TYOF0D
MOVE D,F.MODE(T) ;RANDOM CONTROL CHAR
IFE SAIL,[
IT$ CAIE TT,177 ;RUBOUT PRINTS TWO POSITIONS EVEN IN SAIL MODE
TLNN D,FBT<SA> ;SKIP IF SAIL MODE FILE
AOS AT.CHS(T) ;OTHERWISE CONTROL CHARS ARE 2 WIDE
] ;END OF IFE SAIL
JRST TYOF0D
TYOFBS: SKIPLE AT.CHS(T) ;BACKSPACE - UNLESS AGAINST LEFT MARGIN,
SOS AT.CHS(T) ; DECREMENT CHARPOS
SETZM ATO.LC(T) ;CLEAR / FLAG
JRST TYOF4
TYOFTB: MOVEI D,7 ;TAB FOUND - JUMP TO NEXT
IORM D,AT.CHS(T) ;MULTIPLE-OF-8 CHARPOS
JRST TYOF0D
TYOFLF: AOS D,AT.LNN(T) ;INCREMENT LINENUM
SKIPLE FO.PGL(T) ;ZERO PAGEL => INFINITY
CAMGE D,FO.PGL(T) ;SKIP IF OVER PAGE LENGTH
JRST TYOF4
TYOFFF: SETZM AT.LNN(T) ;ZERO LINE NUMBER
AOS AT.PGN(T) ;INCREMENT PAGE NUMBER
TLNN T,TTS.TY ;IF TTY THEN DON'T GIVE END PAGE INT ON ↑L
SKIPN FO.EOP(T) ;IF IT HAS AN ENDPAGEFN, THEN
JRST TYOF4 ; WANT TO GIVE USER INTERRUPT
PUSHJ P,TYOF4
MOVEI D,200000+2*FO.EOP+1
HRLI D,(AR1)
JRST UINT
TYOF7: SKIPLE FO.LNL(T) ;INFINITE LINEL
TLNE T,TTS<IM> ; OR IMAGE MODE TTY
POPJ P, ; => IGNORE FORMAT DATA
SKIPN V%TERPRI
SKIPN AT.CHS(T) ;CAN'T DO ANY BETTER THAN TO BE
POPJ P, ; AT THE BEGINNING OF A LINE
MOVEI D,(TT)
ADD D,AT.CHS(T)
CAMG D,FO.LNL(T)
POPJ P,
SETZM AT.CHS(T)
PUSH FXP,TT
MOVEI TT,↑M ;IF TOO LONG, DO AN AUTO-TERPRI
PUSHJ P,TYOFCR
POP FXP,TT
POPJ P,
TYOFCR: SETZM AT.CHS(T) ;CR - SET CHARPOS TO ZERO
PUSHJ P,TYOF4
SETOM ATO.LC(T) ;SET LF FLAG (MUSTN'T DO UNTIL AFTER IOT
POPJ P, ; OF CR BECAUSE A **MORE** MIGHT OCCUR)
;TYOF4 TYOF6 TYOF4A TYOXCT C$ INTTYR TYOF5 TYOF5Y TYOF4C TYOF4J
TYOF4: .SEE PTYO
IT$ TLNE T,TTS.TY
IT$ JRST TYOF4C
TYOF6:
TYOF4A: SKIPL F.MODE(T) .SEE FBT.CM
JRST TYOF5
IFN ITS,[
MOVE D,F.CHAN(T) ;CHARMODE (UNIT MODE)
LSH D,27 ;TYI USES THIS CODE TOO (SAVES F)
IOR D,[.IOT TT]
SPECPRO INTTYX
TYOXCT: XCT D
NOPRO
] ;END OF IFN ITS
IFN D10,[
SA$ OUTCHR TT
IFE SAIL,[
TLNE T,TTS.IM
TLNN T,TTS.TY
JRST .+3
IONEOU TT ;DO THIS IF IMAGE MODE TTY
JRST .+5
CAIE TT,33 ;NON-SAIL MONITORS LOSE ALTMODES
OUTCHR TT
CAIN TT,33 ;FOR THEM, WE OUTPUT ALTMODE AS $
OUTCHR C$ ; (ON THE TTY ONLY!)
] ;END OF IFE SAIL
] ;END OF IFN D10
IFN D20,[
PUSHJ FXP,SAV2
HRRZ 1,F.JFN(T)
MOVEI 2,(TT)
BOUT ;OUTPUT THE BYTE
ERJMP OIOERR
PUSHJ FXP,RST2
] ;END OF IFN D20
AOS F.FPOS(T) ;ADJUST FILE POSITION (DOESN'T HURT IF F.FLEN NEG)
C$: POPJ P,"$
INTTYR: HRROS INHIBIT .SEE $IWAIT ;COME HERE AFTER INTERRUPT
MOVE T,TTSAR(AR1) ;FILE ARRAY MAY HAVE MOVED
POPJ P, .SEE TYIXCT TYICAL
TYOF5: ;BLOCK MODE
IFN ITS+D20,[
IDPB TT,FB.BP(T) ;PUT BYTE IN BUFFER
SOSLE FB.CNT(T) ;DECREMENT COUNT
] ;END OF IFN ITS+D20
IFN D10,[
MOVE D,FB.HED(T) ;FOR D10, BYTE POINTER AND COUNT ARE IN BUFFER HEADER
IDPB TT,1(D) ;PUT BYTE IN BUFFER
SOSLE 2(D) ;DECREMENT COUNT
] ;END OF IFN D10
POPJ P,
HRLM TT,(P)
MOVE TT,T
PUSH FXP,F
PUSHJ P,IFORCE
POP FXP,F
HLRZ TT,(P)
TYOF5Y: MOVE T,TTSAR(AR1)
POPJ P,
IFN ITS,[
TYOF4C: TLNN T,TTS.IM ;DO NOT HACK THIS FOR IMAGE MODE
CAIE TT,↑P ;↑P IS THE DISPLAY ESCAPE CODE, AND
JRST TYOF4A ; MUST BE TREATED SPECIALLY
SKIPGE F.MODE(T) .SEE FBT.CM
JRST TYOF4J
MOVE TT,FB.CNT(T) ;FOR BLOCK MODE, BE CAREFUL
PUSH FXP,F
CAIGE T,2 ; ABOUT SPLITTING A ↑P-CODE
PUSHJ P,IFORCE ; ACROSS A BLOCK BOUNDARY
POP FXP,F
TYOF4J: MOVE T,TTSAR(AR1) ;OUTPUT ↑P AS ↑P P
MOVEI TT,↑P
PUSHJ P,TYOF4A
MOVE T,TTSAR(AR1)
MOVEI TT,"P
PUSHJ P,TYOF4A
JRST TYOF5Y
] ;END OF IFN ITS
;%TERPRI TRP$ TERPRI TERP1 ITERPRI PTYO PTYO1 PTYO3 PTYO2
SUBTTL TERPRI AND PTYO FUNCTIONS
%TERPRI:
JUMPN T,.+3
PUSH P,R70
MOVNI T,1
PUSH P,(P) ;EVEN THOUGH LSUBR (0 . 1)
SOS T ;PRETEND TO BE (1 . 2) FOR PRNARG'S SAKE
JSP F,PRNARG ;PRNARG MAY DO A POPJ FOR US - BEWARE!
SFA% 400000,,[Q%TERPRI] ;BIT 4.9 => RETURN VALUE IS NIL
SFA$ 400000,,[SO.TRP,,Q%TERPRI] ;BIT 4.9 => RETURN VALUE IS NIL
JRST TERP1
TRP$: JSP F,PRNAR$
SFA% 400000,,[QTRP$]
SFA$ 400000,,[SO.TRP,,QTRP$]
JRST TERP1
TERPRI: SKIPE AR1,TAPWRT ;1/4-INTERNAL TERPRI
HRRZ AR1,VOUTFILES
SFA$ JSP F,PRTSTR ;DO SFA CHECKING STUFF
SFA$ [SO.TRP,,]
TERP1: JSP T,GTRDTB ;SEMI-INTERNAL TERPRI
MOVEI A,NIL
ITERPRI:
PUSH P,A ;INTERNAL TERPRI - SAVES A,B,C
MOVEI TT,↑M ;MUST HAVE FILE ARRAY IN AR1,
PUSHJ P,TYO6 ; READTABLE IN AR2A
MOVEI TT,↑J
PUSHJ P,TYO6
JRST POPAJ
PTYO: SKIPE V.RSET ; +TYO: SUBR 2
JRST PTYO2
PTYO1: MOVE TT,(A) ;FIRST ARG IS ASCII VALUE
CAIN B,TRUTH ;IF T
MOVE B,V%TYO
IFN SFA,[
MOVSI T,AS.SFA ;CHECK IF AN SFA
TDNE T,ASAR(B) ;SFA BIT SET IN ASAR?
JRST PTYO3 ;YUP, CALL AS AN SFA
] ;END IFN SFA
.5LKTOPOPJ
MOVE T,TTSAR(B) ;SECOND ARG IS FILE
MOVEI A,TRUTH ;RETURNS T
JRST TYOF4
IFN SFA,[
PTYO3: MOVEI C,(A) ;THIRD ARG IS THE FIXNUM
MOVEI A,(B) ;FIRST ARG IS SFA ITSELF
MOVEI B,Q%TYO ;TYO OPERATION
JRST ISTCSH ;DO FAST INTERNAL CALL
] ;END IFN SFA
PTYO2:
IFN SFA,[
JSP TT,AFOSP ;CHECK FOR AN SFA
JFCL
SKIPA ;NOPE
JRST PTYO3 ;YUP, SO CALL IT
] ;END IFN SFA
JSP T,FXNV1
MOVEI AR1,(B)
PUSHJ P,ATOFOK
UNLOCKI ;MARGINAL DANGER THAT FILE COULD
JRST PTYO1 ; GET SCEWED BY INTERRUPT HERE
;PRINT %PRO PRINTOBJECT %PRO3 %PROX %PRINT $PRINT CTY1 CTY2 PRIN1B PRIN1 %PRIN1 %PR1 $PRIN1 %PR1A PRINC %PRINC %PRC $PRINC X X
SUBTTL PRINT, PRIN1, PRINC, PRINT-OBJECT
PRINT: SKIPE AR1,TAPWRT ;INTERNAL "SUBR" VERSION OF PRINT
MOVE AR1,VOUTFILES
SFA$ JSP F,PRTSTR ;DO SFA CHECKING STUFF
SFA$ [SO.PRT,,]
JRST $PRINT
IFN HNKLOG,[
%PRO: ;PRINT-OBJECT SUBR (4 . 5)
PRINTOBJECT:
JSP TT,LWNACK ;Check number of arguments
LA45,,Q%PRO
CAMN T,IN0-5 ;5 arguments?
POP P,AR1 ; Ignore it for LISPM compatability
POP P,B ;STREAM
POP P,AR1 ;SLASHIFY-P
POP P,C ;I-PRINLEVEL
POP P,A ;Object
PUSH P,[TRUE] ;Arrange to return T
PUSH P,C ;Save these two values
PUSH P,AR1 ;From PRNARG harm and the GC
PUSH FXP,P ;Remember our stack pointer
PUSH P,A ;Now pretend we're a standard LSUBR (1 . 2)
PUSH P,B
MOVNI T,2 ;Called with 2 args
JSP F,PRNARG
SFA% JFCL [Q%PRO]
SFA$ JFCL [SO.OUT,,Q%PRO]
MOVE R,[PR.ATR,,$TYO] ;AR1 SHOULD BE SET UP BEFORE COMING HERE
POP FXP,P ;Flush cruft PRNARG pushed
MOVEI D,%PRO3 ;Come back to %PRO3 after checking PRINLEVEL
SKIPE V%TERPRI
TLZ R,PR.ATR ;TERPRI NON-NIL => NEVER AUTO-TERPRI
JRST PRINT0
%PRO3: POP P,A
POP P,TT ;SLASHIFY-P
SKIPN TT ;Is this really PRINC
TLO R,PR.PRC ; Note the fact
POP P,TT ;I-PRINLEVEL
MOVE TT,(TT)
MOVEM TT,PRINLV
PUSH P,A
JRST PRINT1 ;Print it as if called by PRIN1
%PROX:
] ; END of IFN HNKLOG,
%PRINT: JSP F,PRNARG ;LSUBR (1 . 2)
SFA% JFCL [Q%PRINT]
SFA$ JFCL [SO.PRT,,Q%PRINT]
$PRINT: JSP T,GTRDTB ;AR1 SHOULD BE SET UP BEFORE COMING HERE
PUSHJ P,ITERPRI
CTY1: PUSHJ P,$PRIN1
CTY2: %SPC%
POPJ P,
PRIN1B: MOVE A,B
PRIN1: SKIPE AR1,TAPWRT ;INTERNAL "SUBR" VERSION OF PRIN1
MOVE AR1,VOUTFILES
SFA$ JSP F,PRTSTR
SFA$ [SO.PR1,,]
JRST $PRIN1
%PRIN1:
%PR1: JSP F,PRNARG ;LSUBR (1 . 2)
SFA% JFCL [Q%PR1]
SFA$ JFCL [SO.PR1,,Q%PR1]
$PRIN1: MOVE R,[PR.ATR,,$TYO] ;AR1 SHOULD BE SET UP BEFORE COMING HERE
%PR1A: JSP T,GTRDTB
PUSHJ P,PRINTY
JRST TRUE
PRINC: SKIPE AR1,TAPWRT ;INTERNAL "SUBR" VERSION OF PRINC
MOVE AR1,VOUTFILES
SFA$ JSP F,PRTSTR
SFA$ [SO.PRC,,]
JRST $PRINC
%PRINC:
%PRC: JSP F,PRNARG ;LSUBR (1 . 2)
SFA% JFCL [Q%PRC]
SFA$ JFCL [SO.PRC,,Q%PRC]
$PRINC: MOVE R,[PR.PRC,,$TYO] ;AR1 SHOULD BE SET UP BEFORE COMING HERE
JRST %PR1A
;;; SUBR VERSIONS - *PRINT, *PRIN1, *PRINC
IFE SFA,[
IRPS X,,[PRT$:PR1$:PRC$:]Y,,[$PRINT,$PRIN1,$PRINC]
X: JSP F,PRNAR$
[Q!X]
JRST Y
TERMIN
] ;END IFE SFA
IFN SFA,[
IRPS X,,[PRT$:PR1$:PRC$:]Y,,[$PRINT,$PRIN1,$PRINC]Z,,[SO.PRT,SO.PR1,SO.PRC]
X: JSP F,PRNAR$
[Z,,Q!X]
JRST Y
TERMIN
] ;END IFN SFA
;PR.PRC PR.ATR PR.NUM PR.NVB PR.EFC PR.NLS PRINTY PRINTF PRINTA PRINT3 PRINT4 PRINH6 PRIN7A PRIN8A
SUBTTL MAIN PRINTOUT ROUTINE
;;; ***** OKAY, OUTPUT LOVERS, HERE'S YOUR MAIN PRINT ROUTINE *****
;;; CALLED WITH OBJECT TO PRINT IN A, ADDRESS OF "TYO" ROUTINE IN R.
;;; CLOBBERS A (RETURNS GARBAGE); TO SAVE A OVER PRINTY, USE APRINT.
;;; VARIOUS BITS ARE KEPT IN THE LEFT HALF OF R.
;;; SOME ARE PASSED IN, AND OTHERS ARE INITIALIZED AND USED INTERNALLY.
PR.PRC==400000 ;MUST BE SIGN BIT! 0 => PRIN1, 1 => PRINC. (PASSED IN)
PR.ATR==200000 ;1 => DO AUTO-TERPRI HACKS
PR.NUM==4000 ;SYMBOL LOOKS LIKE A NUMBER SO FAR
PR.NVB==2000 ;NOT PROVEN YET THAT VERTICAL BAR NEEDED
PR.EFC==1000 ;EMBEDDED FUNNY CHARACTER IN SYMBOL FLAG (1 => NONE SEEN)
PR.NLS==400 ;NOT PROVEN YET THAT LEADING SLASH NEEDED
;;; PRINTA EXPECTS B,C,T,TT,R SAFE OVER THE "TYO" ROUTINE.
;;; THE "TYO" ROUTINE GENERALLY EXPECTS AR1 AND AR2A SAFE OVER PRINTA.
;;; USES DIRECTLY OR INDIRECTLY A,B,C,T,TT,D,R,F.
;;; IN THE USELESS VERSION OF LISP, THERE ARE ABBREVIATION HACKS:
;;; PRINTY IS THE ENTRY FOR PRIN1/PRINC; ABBREVIATION IS CONTROLLED
;;; BY BIT 1.1 OF (STATUS ABBREVIATE). TYOSW INDICATES WHETHER
;;; A CHAR IS MEANT FOR TTY, FILES, OR BOTH (IN THIS WAY THE TTY
;;; CAN RECEIVE ABBREVIATIONS WHILE FILES RECEIVE FULL S-EXPRS).
;;; PRINTF IS THE ENTRY FOR FLATSIZE/EXPLODE; ABBREVIATION IS
;;; CONTROLLED BY BIT 1.2 OF (STATUS ABBREVIATE).
;;; PRINTA IS THE ENTRY FOR ALL OTHER PRINT HACKERS; IT
;;; NEVER ABBREVIATES.
IFE USELESS,[
PRINTY: SKIPE V%TERPRI ;TERPRI NON-NIL => NEVER AUTO-TERPRI
PRINTF: ;ENTRY FOR FLATSIZE/EXPLODE
PRINTA: TLZ R,PR.ATR ;OTHER GUYS DON'T WANT AUTO-TERPRI HACKS
PRINT3: PUSH P,A ;MAIN RECURSIVE ENTRY FOR PRINTING
ROT A,-SEGLOG ;NOTE THAT A IS SAFE ON PDL
SKIPL TT,ST(A) ;MUST DO A ROT, NOT LSH! SEE PRINX
JRST PRINX
%LPAR% ;PRINT A LIST. FIRST TYO A (
PRINT4: HLRZ A,@(P)
IFN HNKLOG,[
TLNE TT,HNK
JRST PRINH0
PRINH6:
] ;END OF IFN HNKLOG
PUSHJ P,PRINT3 ;NOW PRINT CAR OF THE LIST
HRRZ A,@(P)
JUMPE A,PRIN8A ;IF CDR IS NIL, NEED ONLY A )
PRIN7A: MOVEM A,(P)
%SPC% ;ELSE SPACE IN BETWEEN
LSH A,-SEGLOG ;WE KNOW A IS NON-NIL!
SKIPGE TT,ST(A)
JRST PRINT4 ;IF CDR IS NON-ATOMIC, LOOP
%DOT% ;ELSE DOTTED LIST
%SPC%
PUSHJ P,PRIN1A ;SO PRINT THE ATOM AFTER THE LISP DOT
PRIN8A: %RPAR% ;NOW TYO A )
JRST POP1J
] ;END OF IFE USELESS
;PRINTY PRINTF APRINT PRINTA PRINT0 PRIN0A PRINT1 PRIN1Q PRINT2
IFN USELESS,[
PRINTY: MOVEI D,PRINT1 ;ENTRY FOR PRIN1/PRINC
SKIPE V%TERPRI
TLZ R,PR.ATR ;TERPRI NON-NIL => NEVER AUTO-TERPRI
JRST PRINT0
PRINTF: MOVEI D,PRINT2 ;ENTRY FOR FLATSIZE/EXPLODE
TLZ R,PR.ATR
JRST PRINT0
APRINT: PUSH P,A
PUSH P,CPOPAJ
PRINTA: MOVEI D,PRIN3A ;ENTRY FOR NO ABBREVIATIONS
TLZ R,PR.ATR
PRINT0: PUSH P,A ;CLOBBERS ARG (RETURNS GARBAGE)
SKIPN V.RSET ;IF IN *RSET MODE, CHECK VALUES OF
JRST PRIN0A ; PRINLEVEL AND PRINLENGTH
IRP X,,[%LEVEL,%LENGTH]Y,,[%LV,%LN]
Y!CHK: SKIPN A,V!X ;NIL IS A VALID VALUE
JRST PRT!Y
SKOTT A,FX
JRST Y!ERR
SKIPGE (A)
JRST Y!ERR
PRT!Y:
TERMIN
PRIN0A: SETOM PRINLV ;PRINLV HAS <ACTUAL PRINT LEVEL>-1
SETZM ABBRSW ;ASSUME ABBRSW ZERO
JSP T,RSXST
MOVEI A,LRCT-2 ;GET (STATUS ABBREVIATE)
NW% HRRZ T,@RSXTB
NW$ LDB T,[001120,,RSXTB] ;PICK UP CHTRAN
HRRZ A,(P) ;MUST LEAVE ARG IN A FOR PRINT3, %PRO3
SETZM PRPRCT
JRST (D) ;DISPATCH TO PRINT1, PRINT2, PRINT3, %PRO3
PRINT1: SETOM ABBRSW ;PRIN1/PRINC
SKIPE TAPWRT ;OPEN FILES? WHETHER OR NOT TO ABBREVIATE THEM
JRST PRIN1Q
SKIPN TTYOFF ;IF NO FILES OPEN, THEN ABBREVIATE FOR TTY
JRST PRIN3A
PRIN1Q: TRNN T,1 ;ULTIMATE DECISION ON FILE ABBREVIATION
HRRZS ABBRSW ; COMES FROM (STATUS ABBREVIATE)
JRST PRIN3A
PRINT2: TRNE T,2 ;FLATSIZE/EXPLODE - DECIDE WHETHER IT
SETOM ABBRSW ; WANTS ABBREVIATION OR NOT
JRST PRIN3A
;PRINT3 PRIN3A FLTHNK SENDFL SENDPR SENDP1 SNDPR0 PRN3NH PRIN3F PRINT4 PRINT5 PRINT6 PRINT7 PRINH6 PRIN7A PRIN7B PRINT8 PRIN8A PRINT9
PRINT3: PUSH P,A ;MAIN RECURSIVE ENTRY FOR PRINTING
PRIN3A: ROT A,-SEGLOG ;NOT LSH! SEE PRINX
SKIPL TT,ST(A)
JRST PRINX ;IF SO, USE AN ATOM PRINTER
IFN HNKLOG,[
TLNN TT,HNK ;Is this a hunk?
JRST PRN3NH ; Nope...
PUSH FXP,PRPRCT
PUSH FXP,FLAT1 ;If for some totally random reason it called FLATSIZE..
MOVE A,(P)
PUSH P,TT ;TT get's used WAY WAY below!
PUSHJ P,USRHNP ;Is this a user hunk?
POP P,TT
POP FXP,FLAT1
POP FXP,PRPRCT
JUMPE T,PRN3NH ;If not, just print an ordinary hunk
MOVEI T,FLAT2
MOVEI B,FLATO2
CAIE B,(R) ;Is this really a FLATSIZE hack?
CAIN T,(R)
JRST FLTHNK ; Yes, just get the FLATSIZE and add it in
MOVEI B,TRUTH ;Say this comes from PRINT
PUSH FXP,PRINLV ;Don't let calls to FLATSIZE screw us!
PUSHJ P,SENDFL ;Send the message to the frob
POP FXP,PRINLV
MOVE T,(A) ;Get the size
PUSHJ P,PRINLP ;print all necessary lparens
MOVE A,(P) ;Recover the object
PUSHJ P,SENDPR ;Send it to the frob
JRST POP1J
FLTHNK: SETZ T,
PUSHJ P,PRINLP ;Be sure to get any needed parens out there
PUSH FXP,FLAT1 ;Remember how much we got so far
MOVEI A,FLATO2 ;For test
SETZ B, ;We are really comming from FLATSIZE
CAIN A,(R) ;Is this from FLATSIZE-OBJECT with PRINTP T?
MOVEI B,TRUTH ; Yes, we're really a recursive call from PRINT
MOVE A,(P) ;Recover our object from the stack
PUSHJ P,SENDFL ;Send the message to the frob
MOVE TT,(A) ;Get the result
POP FXP,FLAT1 ;Recover flatsize-so-far
ADDM TT,FLAT1 ;and add them up
JRST POP1J
SENDFL: PUSH P,AR1
MOVE AR1,B ;Get whether from PRINT
MOVEI B,QFLATSIZE
JRST SENDP1
SENDPR: PUSH P,AR1
MOVEI B,Q%PRINT
SENDP1: SAVE AR2A R
PUSH FXP,PRPRCT ;Save pending RPAREN count
PUSH FXP,PRINLV ;And paren level
PUSH P,[SNDPR0] ;LSUBR return (I hate this sequence)
PUSH P,A ;Object
PUSH P,B ;Message
MOVEI AR1,(AR1) ;Eliminate flags from left half
PUSH P,AR1 ;stream or printp if FLATSIZE
MOVEI A,(FXP) ;Fixnum level
PUSH P,A
PUSH P,NIL ;No slashification
MOVEI T,TRUTH
SKIPL R ;Are we doing PRIN1 instead of PRINC?
MOVEM T,(P) ; Then say to do slashification
MOVNI T,5
XCT SENDI ;Ask the SEND interpreter
SNDPR0: POP FXP,PRINLV
POP FXP,PRPRCT
RSTR R AR2A AR1
POPJ P,
PRN3NH:
]; END IFN HNKLOG,
MOVE T,TYOSW ;Save old value of TYOSW
HRLM T,-1(P) ; (I.E. that of previous level)
JUMPN T,PRINT4 ;If previous level was non-abbrev,
SKIPN ABBRSW ; Or if we don't ever want abbrev,
JRST PRINT4 ; Then needn't try to abbrev!
AOS T,PRINLV ;Else increment level count
SKIPE V%LEVEL ;If PRINLEVEL=NIL, or if actual level
CAMGE T,@V%LEVEL ; Is less, then don't abbrev
JRST PRINT4
SKIPL ABBRSW
SETOM TYOSW
CAME T,@V%LEVEL ;If we're exactly equal to PRINLEVEL,
JRST PRIN3F
MOVEI T,1
PUSHJ P,PRINLP
%NMBR% ; SHOOT OUT LEVEL ABBREVIATION
PRIN3F: SKIPGE ABBRSW ;IF WE ONLY WANT ABBREVIATION,
JRST PRINT9 ; NEEDN'T GROVEL OVER THE SUBLIST
HRRZS TYOSW ;ELSE SIGNAL NON-ABBREV ONLY MODE
PRINT4: PUSH FXP,PRPRCT ;SAVE PARENS COUNTS
HLLOS PRPRCT ;CLEAR RIGHT PARENS COUNT, AND
AOS PRPRCT ; INCREMENT LEFT PARENS COUNT
PUSH FXP,XC-1 ;<ACTUAL PRINT LENGTH>-1 FOR THIS LEVEL
MOVE T,TYOSW ;SAVE CURRENT TYOSW (DETERMINES WHETHER
HRLM T,(P) ; ABBREV MODE OUTPUT WANTS A ) AT END)
PRINT5: SKIPN TYOSW ;IF WE ARE IN NON-ABBREV ONLY MODE,
SKIPN ABBRSW ; OR IF WE NEVER WANT ABBREV,
JRST PRINT7 ; THEN DON'T TRY TO ABBREV!
AOS T,(FXP) ;ELSE INCREMENT PRINT LENGTH
SKIPE V%LENGTH ;IF PRINLENGTH=NIL, OR IF WE'RE LESS
CAMGE T,@V%LENGTH ; THAN IT, THEN DON'T ABBREV
JRST PRINT7
SKIPL ABBRSW
SETOM TYOSW
CAME T,@V%LENGTH
JRST PRINT6 ;IF WE'RE EXACTLY EQUAL, THEN ABBREV
MOVEI T,3
PUSHJ P,PRINLP
REPEAT 3, %DOT%
PRINT6: SKIPGE ABBRSW ;IF WE DON'T WANT NON-ABBREV ONLY MODE,
JRST PRINT8 ; THEN CAN IGNORE REST OF LIST
HRRZS TYOSW ;ELSE SIGNAL NON-ABBREV ONLY MODE
PRINT7: HRRZ A,(P)
HRRZ B,(A)
HLRZ A,(A)
HRRZ T,-1(FXP)
ADDI T,1
SKIPN B
HRRM T,PRPRCT
IFN HNKLOG,[
TLNE TT,HNK
JRST PRINH0
PRINH6:
] ;END OF IFN HNKLOG
PUSHJ P,PRINT3 ;SO PRINT THE CAR OF THE LIST
SETZM PRPRCT
HRRZ A,(P)
HRRZ A,(A)
JUMPE A,PRINT8 ;IF CDR IS NIL, NEED ONLY A ) NOW
PRIN7A: HRRM A,(P)
%SPC% ;ELSE SPACE BETWEEN
LSH A,-SEGLOG
SKIPL TT,ST(A)
JRST PRIN7B ; IF AN ATOM, THEN NEED A DOT
TLNN TT,HNK ; IF NOT A HUNK, THEN A CDR WHICH IS A LIST,
JRST PRINT5 ; SO LOOP. ELSE, WE HAVE A DOTTED LIST
PRIN7B: %DOT%
%SPC%
HRRZ T,-1(FXP)
ADDI T,1
MOVEM T,PRPRCT
HRRZ A,(P) ;SET UP A WITH CDR-OBJECT TO PRINT (HUNK OR ATOM)
PUSHJ P,PRINT3 ;JUMP TO GENERAL RECURSIVE PRINTER
PRINT8: HLRZ T,(P) ;THIS WILL TELL TYO WHAT TO
MOVEM T,TYOSW ; DO WITH THE )
PRIN8A: %RPAR% ;TYO A ) TO END THE LIST
IFE USELESS, PRIN8B: ;A normally useless symbol
SUB FXP,R70+1
POP FXP,PRPRCT
PRINT9: HLRZ T,-1(P) ;RESTORE TYOSW TO WHAT IT WAS
MOVEM T,TYOSW ; ON LAST (RECURSIVE!) ENTRY
JUMPN T,POP1J ;IF AND ONLY IF WE AOS'ED PRINLV,
SKIPE ABBRSW ; WE MUST NOW SOS IT, AND THEN POP1J
SOS PRINLV
JRST POP1J
] ;END OF IFN USELESS
;PRINH0 PRINH8 PRINH2 PRHN2B PRINH3 PRHN3A PRHN3B
SUBTTL PRINT A HUNK
IFN HNKLOG,[
PRINH0: SKIPN VHUNKP ;IF HUNKP IS NIL, THEN PRINT A HUNK
JRST PRINH6 ; AS IF IT WERE A LIST CELL
IFE USELESS,[
PUSHJ P,USRHNP ;Is this a user's extended hunk?
JUMPE T,PRINH8
PUSHJ P,SENDPR
JRST PRIN8B
PRINH8:
]; -- END of IFE USELESS,
HRRZS TT ;Flush left half
CAIN TT,QHUNK0
CAIE A,-1
JRST .+2
JRST PRHN3B
PUSH FXP,TT
PUSHJ P,PRINT3 ;PRINT FIRST ELT
IFN USELESS, SETZM PRPRCT
POP FXP,TT
MOVSI T,-1
2DIF [LSH T,(TT)]0,QHUNK0
HRR T,(P)
ADD T,R70+1
JUMPGE T,PRHN3A ;"HUNK2" CASE, WITH 2 ELEMENTS
PUSH P,T
PRINH2: MOVEM T,(P)
PRHN2B: HRRZ A,(P)
HRRZ A,(A)
CAIN A,-1
JRST PRINH3
%SPC%
%DOT%
%SPC%
PUSHJ P,PRINT3
HRRZ A,(P)
HLRZ A,(A)
CAIN A,-1
JRST PRINH3
%SPC%
%DOT%
%SPC%
PUSHJ P,PRINT3
MOVE T,(P)
AOBJN T,PRINH2
PRINH3: SUB P,R70+1 ;FINISHED WITH HUNK (EXCEPT FOR CDR)
PRHN3A: %SPC%
%DOT%
%SPC%
PRHN3B: HRRZ A,(P)
HRRZ A,(A)
PUSHJ P,PRINT3
%SPC%
%DOT%
JRST PRIN8A
] ;END OF IFN HNKLOG
;PRINX PRIN1A PRIN1Z PRINA1 PRINA2 PRINA3 PRINA4 PRINX5 PRINL4
SUBTTL PRINT ATOM DISPATCH, AND PRINT AN ARRAY OR A RANDOM
PRINX: PUSH P,CPOP1J ;PRINT AN ATOM (ON THE PDL)
PRIN1A: ;TT HAS ST ENTRY
HRRZ A,-1(P) ;NIL IS SYMBOL, NOT RANDOM!!!
JUMPE A,PRINIL
2DIF JRST (TT),.,QLIST .SEE STDISP ;TT MUST HAVE ST ENTRY
PRIN1Z: JRST PRINI ;FIXNUM
JRST PRINO ;FLONUM
DB$ JRST PRINDB ;DOUBLE
CX$ JRST PRINCX ;COMPLEX
DX$ JRST PRINDX ;DUPLEX
BG$ JRST PRINB ;BIGNUM
JRST PRINN ;SYMBOL
HN$ REPEAT HNKLOG+1, .VALUE ;HUNKS
JFCL ;RANDOM
IFN .-PRIN1Z-NTYPES+2, WARN [WRONG LENGTH TABLE]
IFN USELESS,[
MOVEI T,25.
PUSHJ P,PRINLP
SETZM PRPRCT
] ;END OF IFN USELESS
%NMBR% ;ARRAY (AND RANDOM)
TLNN TT,SA
JRST PRINX5
HRRZ A,-1(P)
MOVE TT,ASAR(A)
CAIE TT,ADEAD
JRST PRINA2
SKIPA TT,[440700,,[ASCIZ \DEAD-ARRAY\]]
PRINA1: PUSHJ P,(R)
ILDB A,TT
JUMPN A,PRINA1
POPJ P,
PRINA2: TLNE TT,AS<FIL>
JRST PRNFL
TLNE TT,AS<JOB>
JRST PRNJB
SFA$ TLNE TT,AS.SFA ;SFA?
SFA$ JRST PRNSR
JFFO TT,.+1
HRRZ A,ARYTYP(D)
TLC TT,AS<SX> ;CROCK FOR NSTORE ARRAYS
TLNN TT,AS<SX+GCP>
SETZ A,
PUSHJ P,PRINSY
%NEG%
HRRZ A,-1(P)
LDB F,[TTSDIM,,TTSAR(A)]
PRINA3: HRRZ A,-1(P)
MOVNI TT,(F)
MOVE TT,@TTSAR(A)
IFE USELESS, MOVE C,@VBASE ;BETTER BE A FIXNUM!
IFN USELESS,[
HRRZ C,VBASE
CAIE C,QROMAN
SKIPA C,(C)
PUSHJ P,PROMAN
] ;END OF IFN USELESS
PUSHJ P,PRINI9
SOJE F,PRINA4
%CLN%
JRST PRINA3
PRINA4: %NEG%
PRINX5: HRRZ TT,-1(P)
PRINL4: MOVEI C,10 ;N BASE 8
JRST PRINI3
;PRNSR PRNJB PRNFL PRNF5 PRNF6 PRNJ2 PRNF1 PRNSTO PRNJ1 PRNSR1
SUBTTL PRINT A FILE OBJECT, PRINT A JOB OBJECT, PRINT AN SFA
;;; PRINT A JOB OBJECT AS #JOB-|<NAME>|-<ADDRESS>
;;; PRINT A FILE OBJECT AS #FILE-<DIR>-|<NAME>|-<ADDRESS>
;;; PRINT AN SFA AS #SFA-|<SFA-PRINTNAME>|-<ADDRESS>
;;; WHERE <DIR> IS "IN" OR "OUT", <NAME> IS THE TRUENAME,
;;; <SFA-PRINTNAME> IS THE THING GIVEN AS THE THIRD ARG TO CREATE-SFA
;;; AND <ADDRESS> IS THE OCTAL ADDRESS OF THE SAR.
IFN SFA,[
PRNSR: MOVEI T,[ASCIZ \SFA-\]
JRST PRNF5
] ;END IFN SFA
PRNJB: MOVEI T,[ASCIZ \JOB-\]
JRST PRNF5
PRNFL: MOVEI T,[ASCIZ \FILE-\]
PRNF5: PUSHJ P,PRNSTO
HRRZ A,-1(P)
MOVE TT,ASAR(A)
SFA$ TLNE TT,AS.SFA ;SFA?
SFA$ JRST PRNSR1 ;YES, PRINT DIFFERENTLY
PUSH FXP,TT
TLNE TT,AS.JOB ;DON'T PRINT DIR FOR JOB ARRAY
JRST PRNF6
MOVE TT,TTSAR(A)
;FORMERLY, THIS ROUTINE USED PRINSY TO PRINT IN OR OUT. BUT, SINCE THIS
;ROUTINE CAN BE CALLED FROM THE GARBAGE COLLECTOR, THE POINTERS COULD BE
;MARKED AND THEREFORE INVALID. TO AVOID PRINTING LOSSAGE, PRINTING IS DONE
;MANUALLY.
MOVEI T,[ASCII \IN\] ;ASSUME INPUT FILE
TLNE TT,TTS<IO>
MOVEI T,[ASCII \OUT\]
PUSHJ P,PRNSTO
%NEG%
PRNF6: %VBAR%
POP FXP,T ;SAVED ASAR
MOVNI TT,LPNBUF
PUSH FXP,PNBUF+LPNBUF(TT) ;UNFORTUNATELY, SOMEONE MIGHT BE USING
AOJL TT,.-1 ; PNBUF, SO WE MUST SAVE IT
HRRZ A,-1(P)
PUSH FXP,R
20$ MOVE TT,TTSAR(A) ;FOR D20 CLOSED FILE NEEDS SPECIAL HANDLING
20$ TLNN TT,TTS.CL ;CLOSED? (ASAR SAVED IN T)
TLNE T,AS.JOB ;DON'T GET TRUENAME FOR JOB ARRRAYS
JRST PRNJ1
PUSHJ P,TRU6BT ;GET TRUENAME OF FILE ON FXP
PRNJ2: PUSHJ P,6BTNSL ;CONVERT THAT TO A NAMESTRING IN PNBUF
POP FXP,R
MOVEI TT,-LPNBUF+1(FXP)
MOVSI T,-LPNBUF
PRNF1: MOVE D,PNBUF(T) ;SWAP PNBUF WITH COPY ON PDL
EXCH D,(TT)
MOVEM D,PNBUF(T)
ADDI TT,1
AOBJN T,PRNF1
MOVEI T,-LPNBUF+1(FXP)
PUSHN FXP,1 ;BE SURE STRING ENDS WITH ZEROS
PUSHJ P,PRNSTO
POPI FXP,LPNBUF+1 ;POP THE CRUD
%VBAR%
JRST PRINA4
PRNSTO: HRLI T,440700
ILDB A,T
JUMPE A,CPOPJ
PUSHJ P,(R)
JRST .-3
PRNJ1: HRRZ TT,TTSAR(A)
HRLI TT,-L.F6BT
20% PUSH FXP,F.RDEV(TT)
20$ PUSH FXP,F.DEV(TT)
AOBJN TT,.-1
JRST PRNJ2
IFN SFA,[
PRNSR1: %VBAR%
MOVEI TT,SR.PNA ;GET THE PNAME
HRRZ A,-1(P) ;PICK UP ARRAY POINTER
HRRZ A,@TTSAR(A)
PUSH FXP,R ;REMEMBER R OVER RECURSIVE CALL TO PRINT
TLO R,PR.PRC
PUSHJ P,PRINTA ;PRINT THE NAME
POP FXP,R
%VBAR%
JRST PRINA4
] ;END IFN SFA
;PRINSY PRINN PRINIL PRNN1 PRNN2A PRNN2B PRNN2C PRNN2 PRNN3 PRNN3A PRNN3B PRNN3C
SUBTTL PRINT AN ATOMIC SYMBOL
;PRINIL:
;IFN USELESS, PUSHJ P,PLP1
; MOVEI A,"( ;PRINT () FOR NIL
; PUSHJ P,(R)
; MOVEI A,")
; JRST (R)
PRINSY: PUSH P,A
PUSH P,CPOP1J
JUMPE A,PRINIL
PRINN: SKIPA A,-1(P)
PRINIL: MOVEI A,[$$$NIL,,]
JSP C,MAPNAME
JUMPGE R,PRNN2 .SEE PR.PRC
IFN USELESS, PUSHJ P,PLP1
PRNN1: JSP C,(C) ;FOR PRINC, JUST OUTPUT THE CHARS
POPJ P,
MOVEI A,(TT)
PUSHJ P,(R)
JRST PRNN1
PRNN2A:
IFN USELESS,[
HLRZ T,PRPRCT
PRNN2B: SOJL T,PRNN2C
%LPAR%
JRST PRNN2B
PRNN2C: HRRZS PRPRCT
] ;END OF IFN USELESS
%VBAR% ;FOR NULL PNAME, PRINT ||
%VBAR%
JRST PLP1
PRNN2: JSP C,(C) ;GET FIRST CHAR
JRST PRNN2A ;FOR NULL PNAME, JUST PRINT HANGING LEFT PARENS
TLO R,PR.NVB+PR.NUM+PR.EFC+PR.NLS
SETZ F, ;F COUNTS: <# SLASHES,,# CHARS>
HRRZ A,VREADTABLE
MOVE D,@TTSAR(A)
TLNN D,14 ;IF NOT A DIGIT OR A SIGN,
TLZ R,PR.NUM ; THEN IT ISN'T NUMBER-LIKE
TLNN D,400 ;IF NOT SLASHIFIED AS FIRST CHAR,
AOJA F,PRNN3A ; JUST BUMP CHAR COUNTER
TLZ R,PR.EFC ;ELSE ONE FUNNY CHAR SEEN ALREADY
TLNE D,171000 ;REAL WEIRDIES FORCE VERTICAL BARS
TLZ R,PR.NVB
PRNN3: ADD F,R70+1 ;BUMP CHAR COUNT AND SLASH COUNT
PRNN3A: JSP C,(C) ;GET NEXT CHAR
JRST PRNN4
MOVE D,@TTSAR(A)
TLNN D,24 ;IF IT LOOKS LIKE A NUMBER SO FAR
TLZN R,PR.NUM ; BUT THIS NEXT CHAR ISN'T DIGIT OR ARROW,
JRST PRNN3B
TRNE F,777770 ; THEN WE NEED A LEADING SLASH IF THERE WERE
TLZ R,PR.NLS ; MORE THAN SEVEN LEADING NUMBER-LIKE CHARS
PRNN3B: TLNN D,100 ;IF NOT SLASHIBLE IN FIRST POSITION,
PRNN3C: AOJA F,PRNN3A ; JUST BUMP CHAR COUNTER
TLNN D,2000 ;VERTICAL BARS CAN'T HELP A SLASH
CAIN TT,"| ; OR VERTICAL BAR, SO COUNT THEM AS
AOJA F,PRNN3C ; TWO CHARACTERS AND NO SLASHES
TLNN D,171000 ;REAL WEIRDIES
TLZN R,PR.EFC ; OR TWO EMBEDDED FUNNY CHARS
TLZ R,PR.NVB ; FORCE VERTICAL BARS
JRST PRNN3
;PRNN4 PRNN4A PRNN4B PRNN5 PRNN5A VBARPOPJ PRNN6 PRNN6A
PRNN4: CAIN F,1 ;A SIGN WITH NO FOLLOWING
TLNN D,10 ; DIGITS DOESN'T NEED A SLASH
CAIA
JRST PRNN4A
TLNE R,PR.NUM ;IF THE WHOLE THING IS NUMBER-LIKE,
TLZ R,PR.NLS ; THEN DEFINITELY NEED A LEADING SLASH
PRNN4A: MOVEI T,2(F)
TLNN R,PR.NVB
JRST PRNN4B
HLRZ T,F ;WE AREN'T USING VERTICAL BARS
ADDI T,1(F) ; SO MUST COMPUTE UP ROOM TAKEN BY
TLNN R,PR.NLS ; CHARS AND SLASHES, PLUS ONE FOR THE SPACE
ADDI T,1 ; WHICH MAY FOLLOW
PRNN4B: PUSHJ P,PRINLP
SKIPN A,-1(P)
MOVEI A,[$$$NIL,,]
JSP C,MAPNAME
TLNE R,PR.NVB
JRST PRNN6
%VBAR% ;DO THE VERTICAL BAR THING
PRNN5: JSP C,(C)
JRST VBARPOPJ
CAIE TT,↑M
CAIN TT,"|
JRST PRNN5A
MOVE A,VREADTABLE
MOVE D,@TTSAR(A)
TLNE D,2000
PRNN5A: %SLSH%
MOVEI A,(TT)
PUSHJ P,(R)
JRST PRNN5
VBARPOPJ: %VBAR%
POPJ P,
PRNN6: MOVEI F,400
PRNN6A: JSP C,(C)
POPJ P,
20$ PUSH P,B ;B MUST BE PRESERVED
MOVE A,VREADTABLE
MOVE D,@TTSAR(A)
TLOE R,PR.NLS
TLNE D,(F)
%SLSH%
MOVEI A,(TT)
PUSHJ P,(R)
20$ POP P,B
MOVEI F,100
JRST PRNN6A
;MAPNAME MAPNM1 MAPNM2 MAPNM3 PRINLP PLP1 PRINLQ
;;; COROUTINE TO DELIVER UP CHARACTERS OF A PRINT NAME.
;;; USES JSP C,(C) TO CALL. USES B, T; YIELDS CHARS IN TT.
;;; SETUP USES A. SKIPS UNLESS NO MORE CHARS.
MAPNAME:
HLRZ B,(A)
HRRZ B,1(B)
JSP C,(C)
MAPNM1: HLRZ T,(B)
MOVE T,(T)
TRZ T,1 ;FORCE OFF LOW ORDER BIT, IS UNUSED IN ASCII
MAPNM2: SETZ TT,
ROTC T,7
SKIPN T ;ONLY CHECK FOR NULLS IF AT THE END OF THE WORD
JUMPE TT,MAPNM3
JSP C,1(C)
JRST MAPNM2
MAPNM3: HRRZ B,(B)
JUMPN B,MAPNM1
JRST (C)
;;; ROUTINE TO FEED FORMATTING INFORMATION TO TYO IF DESIRED,
;;; THEN PRINT ANY PENDING LEFT PARENTHESES.
;;; THE LENGTH OF THE ATOM TO BE PRINTED IS IN T.
;;; USES ONLY A AND T.
PRINLP: TLNN R,PR.ATR
JRST PLP1
IFN USELESS,[
MOVSI T,(T)
ADD T,PRPRCT
HLRZ T,T
ADD T,PRPRCT
] ;END OF IFN USELESS
TRNE T,777000
MOVEI T,777
HRROI A,1(T) ;ALLOW FOR FOLLOWING SPACE
PUSHJ P,(R)
PLP1: .SEE PRNN1
IFE USELESS, POPJ P,
IFN USELESS,[
HLRZ T,PRPRCT
PRINLQ: SOJL T,CPOPJ
%LPAR%
JRST PRINLQ
] ;END OF IFN USELESS
;PRINI PRI2D PRI2C PRI2Q PRI2A PRINI2 PRINI9 PRINI3 FP7A1 FP7B PRINI5 PRINI7 PRI.
SUBTTL PRINT A FIXNUM
PRINI: MOVE A,VBASE
IFN USELESS, CAIN A,QROMAN
IFN USELESS, JRST PRINRM
SKOTT A,FX
JRST BASER
MOVE C,(A) ;TRUE VALUE OF BASE IN C
CAIG C,36.
CAIGE C,2
JRST BASER
PRI2D: HRRZ A,-1(P)
JSP T,FXNV1 ;THE TYO ROUTINE MUST SAVE TT HERE
IFN USELESS,[
MOVMS TT ;ESTIMATE LENGTH OF FIXNUM
JFFO TT,.+2 ; ASSUMING OCTAL BASE
MOVEI D,43
MOVNI T,3
IDIVM D,T ;AVOID CLOBBERING EXTRA ACS
ADDI T,14
SKIPGE @-1(P) ;ALLOW FOR MINUS SIGN
ADDI T,1
PUSHJ P,PRINLP
MOVE TT,@-1(P)
] ;END OF IFN USELESS
CAIN C,8 ;FOR OCTAL NUMBERS, WE MAY WANT
JRST PRI2B ; TO USE A FUNNY SHIFTED FORMAT
PRI2C: JUMPL TT,PRI2Q
SKIPE V.NOPOINT
JRST PRINI2 ;HAPPY PRATT?
CAILE C,10.
%POS%
JRST PRINI2
PRI2Q: %NEG%
PRI2A: MOVNS TT
PRINI2: JSP T,PRI. ;INSERT DECIMAL POINT IF NECESSARY
PRINI9: MOVEI T,1 ;MUST SAVE F - SEE GCPNT1, GCWORRY
TLZN TT,400000 ;IF NUMBER COULD BE MOBY, THEN MOVE HIGH ORDER BIT
PRINI3: SETZ T, .SEE FP4B1 ;MUSTN'T DISTURB B
JSP D,PRINI5
SKIPE TT,T
PUSHJ P,PRINI3
FP7A1: HLRZ A,(P)
FP7B: MOVEI A,"0(A)
CAIE A,".
JRST (R)
%DCML%
POPJ P,
PRINI5: DIVI TT-1,(C)
CAILE TT,9
ADDI TT,"A-"9-1 ;KLUDGY DIGITS GREATER THAN 9 ARE "A, B, C, ..., Y, Z"
PRINI7: HRLM TT,(P)
JRST (D)
PRI.: CAIN C,10. ;IF THE RADIX IS 10.
SKIPE V.NOPOINT ; AND *NOPOINT IS NOT SET,
JRST (T) ; THEN KLUDGILY ARRANGE
HRLI T,".-"0 ; TO PRINT A "." AFTER THE
HLLM T,(P) ; DIGITS ARE PRINTED
PUSH P,[FP7A1]
JRST (T)
;PRI2B PRI2B3 PROMAN PRINRM PRINR0 PRINR1 PRINR2 PRINR3 PRINR4 PRINR5 PRINR6 PRINR9
PRI2B: MOVM D,TT
TRNN D,777
TLNN D,-1
JRST PRI2C
MOVEI T,(C)
MOVE C,VREADTABLE
MOVE D,TT
MOVEI TT,LRCT-1 ;RH OF LAST RCT ENTRY IS (STATUS ←)
HRRZ C,@TTSAR(C)
EXCH T,C
MOVE TT,D
JUMPE T,PRI2C
MOVNI D,11 ;PRINT OUT AS ONE OF:
TRNE TT,777000 ; NNNNNNNNN←11
JRST PRI2B3 ; NNNNNN←22
MOVNI D,22 ; NNN←33
TLNN TT,777 ; N←41
MOVNI D,33 ; IN ORDER THAT LOSERS NEED NOT
TLNN TT,77777 ; COUNT ALL THE ZEROS OF AN
MOVNI D,41 ; OCTAL NUMBER.
PRI2B3: ASH TT,(D)
PUSH FXP,D
PUSHJ P,PRI2C
%BAK%
POP FXP,TT
JRST PRI2A
IFN USELESS,[
PROMAN: AOS (P)
JRST PRINR0
PRINRM: HRRZ A,-1(P)
JSP T,FXNV1
PRINR0: MOVEI C,10.
JUMPLE TT,PRI2D
CAIL TT,4000.
JRST PRI2D
MOVEI T,15.
PUSHJ P,PRINLP
SETZ T,
PRINR1: IDIVI TT,10.
HRLM D,(P)
ADDI T,1
JUMPE TT,PRINR2
PUSHJ P,PRINR1
PRINR2: HLRZ TT,(P)
SUBI T,1
JUMPE TT,CPOPJ
CAIE TT,9
JRST PRINR3
HLRZ A,PRINR9(T)
PUSHJ P,(R)
HLRZ A,PRINR9+1(T)
JRST (R)
PRINR3: CAIE TT,4
JRST PRINR4
HLRZ A,PRINR9(T)
PUSHJ P,(R)
HRRZ A,PRINR9(T)
JRST (R)
PRINR4: CAIGE TT,5
JRST PRINR6
SUBI TT,5
HRRZ A,PRINR9(T)
PRINR5: PUSHJ P,(R)
PRINR6: SOJL TT,CPOPJ
HLRZ A,PRINR9(T)
JRST PRINR5
PRINR9: "I,,"V
"X,,"L
"C,,"D
"M,,
] ;END OF IFN USELESS
;PRINDB DFP0 PRINO FP0 FP0A FP0B FP1 FP3 FP3A FP3A1 FPX0
SUBTTL PRINT A FLONUM (SINGLE OR DOUBLE PRECISION)
IFN DBFLAG,[
PRINDB:
IFN USELESS,[
MOVEI T,30. ;GROSS ESTIMATE OF LENGTH OF DOUBLE
PUSHJ P,PRINLP
] ;END OF IFN USELESS
KA HRRZ A,-1(P)
KA MOVE T,(A)
KA MOVE TT,1(A)
KIKL DMOVE T,@-1(P)
DFP0:
KA MOVEI B,66 ;PRECISION OF "SOFTWARE FORMAT" DOUBLE
KIKL MOVEI B,76 ;PRECISION OF "HARDWARE FORMAT" DOUBLE
JRST FP0A
] ;END OF IFN DBFLAG
PRINO:
IFN USELESS,[
MOVEI T,17. ;GROSS ESTIMATE OF LENGTH OF FLONUM
PUSHJ P,PRINLP
] ;END OF IFN USELESS
MOVE T,@-1(P)
;A FLONUM TO PRINT IS IN T
FP0:
DB$ MOVEI B,33 ;PRECISION OF A FLONUM IN BITS
DB$ SETZ TT,
FP0A: JUMPGE T,FP0B
%NEG%
DB% MOVNS T
DB$ KA DFN T,TT
DB$ KIKL DMOVN T,T
FP0B:
;A POSITIVE FLONUM TO PRINT IS IN T (DB$: AND TT); IF DB$, PRECISION IN BITS IS IN B
FP1:
IFN DBFLAG,[
MOVE F,T ;MAKE A COPY OF NUMBER WITH JUST THE
AND F,[777400,,] ; MOST SIGNIFICANT BIT SET (ASSUME ARG NORMALIZED)
PUSH FXP,F ;THIS WILL BE USED FOR A MASK AFTER SCALING
PUSH FXP,R70 ; DOWN BY THE CONTENTS OF B (PRECISION)
SETZ F, ;F WILL BE THE EXPONENT TO PRINT FOR E/D NOTATION
CAMGE T,[0.1]
] ;END OF IFN DBFLAG
DB% SETZB TT,F ;TT IS SECOND WORD FOR T; F WILL BE EXPONENT
DB% CAMGE T,[0.01]
JRST FP4 ;0.01 (OR 0.1) AND 1.0↑8 ARE CHOSEN SO THAT THE
CAML T,[1.0↑8] ; FRACTIONAL PART WILL HAVE AT LEAST ONE
JRST FP4E0 ; BIT, BUT NOT LOSE ANY OFF THE RIGHT END
DB$ CAILE B,33 ;FOR DOUBLE PRECISION, MUST ARRANGE TO PRINT "D0"
DB$ JRST FP4B1 ; AT THE END OF THE NUMBER
IFE DBFLAG,[
;A POSITIVE FLONUM BETWEEN .01 AND 1.0↑8 IS IN T
FP3: SETZB TT,D
ASHC T,-33 ;SPLIT EXPONENT PART OFF - MANTISSA IN TT
ASHC TT,-243(T) ;SPLIT NUMBER INTO INTEGRAL AND FRACTIONAL PART
MOVSI F,200000 ;COMPUTE POSITION OF LAST SIGNIFICANT BITS
ASH F,-243+<43-33>(T) ;F GETS A VALUE EQUAL TO 1/2 LSB
PUSH FXP,F
PUSH FXP,D ;SAVE FRACTION
MOVEI C,10. ;PRINT INTEGER PART AS A DECIMAL FIXNUM
PUSHJ P,PRINI3
%DCML% ;PRINT DECIMAL POINT
POP FXP,TT
;NOW TT HAS FRACTION INFO BITS, AND (FXP) HAS SLIDING MASK BIT (TOLERANCE)
FP3A: MOVE T,TT ;REMAINING INFO BITS IN TT
MULI T,10. ;T GETS NEXT DIGIT TO PRINT, MORE OR LESS
POP FXP,F
JFCL 8,.+1 ;CLEAR OVERFLOW
IMULI F,10. ;OVERFLOW ON (FSC 231400000001 0) AND (FSC 175631463150 0)
JFCL 8,FP3A1 ;CUT OFF WHEN MASK BIT OVERFLOWS
CAMGE TT,F
JRST FP3A1 ; OR WHEN REMAINING INFO BITS ARE BELOW MASK
MOVN D,F
TLZ D,400000
CAMLE TT,D
AOJA T,FPX0 ;LAST SIG DIGIT, BUT ROUND UPWARDS
PUSH FXP,F
PUSHJ P,FPX0 ;OUTPUT A DIGIT, AND GO AROUND FOR ANOTHER
JRST FP3A
FP3A1: TLNE TT,200000 ;SIZE OF REMAINDER DETERMINES ROUNDING
ADDI T,1
FPX0: MOVEI A,"0(T) ;COME HERE TO OUTPUT A DIGIT IN T
JRST (R)
] ;END OF IFE DBFLAG
IFN DBFLAG,[
;FALLS THROUGH
;FP3
;;; IFN DBFLAG
;FALLS IN
;A POSITIVE FLONUM BETWEEN 0.1 AND 10.0↑8 IS IN T AND TT; PRECISION IN BITS IS IN B
; ON FXP, A TWO-WORD MASK VALUE, AS YET UNSCALED BY THE CONTENTS OF B
FP3:
KA ASH TT,10 ;PUT NUMBER IN HARDWARE FORMAT
LDB F,[331000,,T] ;GET EXPONENT (CANNOT BE LARGER THAN 200+33)
TLZ T,377000 ;CLEAR EXPONENT FROM FRACTION
PUSH FXP,TT
SETZ D,
ASHC TT,-233(F) ;CALCULATE LOW ALIGNED FRACTION WORD
PUSH FXP,D
MOVE TT,-1(FXP)
ASHC T,-233(F) ;CALCULATE HIGH ALIGNED FRACTION WORD
MOVEM TT,-1(FXP) ;INTEGER PART IS IN T
SKIPE KA10P
JRST .+3
DMOVE TT,-3(FXP)
JRST .+4
MOVE TT,-3(FXP) ;GET MASK INTO TT AND D
MOVE D,-2(FXP)
ASH D,10 ;CONVERT TO HARDWARE FORMAT
LDB F,[331000,,TT] ;GET EXPONENT
TLZ TT,377000 ;CLEAR EXPONENT, LEAVING FRACTION
SUBI F,(B)
ASHC TT,-200+4(F) ;CALCULATE MASK FRACTION VALUE, BINARY POINT BELOW BIT 4.5
SKIPE KA10P
JRST .+3
DMOVEM TT,-3(FXP)
JRST .+4
MOVEM TT,-3(FXP) ;SAVE IT BACK ON FXP
MOVEM D,-2(FXP)
MOVE TT,T ;PUT INTEGER PART IN TT
MOVEI C,10. ;PRINT INTEGER PART IN RADIX 10.
PUSHJ P,PRINI3 ;PRESERVES B
%DCML%
POP FXP,TT
POP FXP,T
ASHC T,-4 ;ALIGN FRACTION SO BINARY POINT IS BELOW BIT 4.5
;FALLS THROUGH
;DFP3A DFP3A1 DFP3A2 DFP3A8 DFP3A9
;;; IFN DBFLAG
;FALLS IN
;FRACTION IN T,TT WITH BINARY POINT BELOW BIT 4.5; MASK IN -1(FXP),(FXP)
DFP3A:
IMULI T,10. ;MULTIPLY FRACTION BY 10.
MULI TT,10.
ADD T,TT
MOVE TT,D
LDB A,[370400,,T] ;GET NEXT DIGIT (BITS 4.8-4.5) IN A
MOVEI A,"0(A) ;MAKE IT ASCII
TLZ T,360000 ;FORM REMAINDER IN TT,D
EXCH T,-1(FXP) ;EXCHANGE FRACTION WITH MASK
EXCH TT,(FXP)
IMULI T,10. ;MULTIPLY MASK BY 10.
MULI TT,10.
ADD T,TT
MOVE TT,D
CAMGE T,-1(FXP)
JRST DFP3A1
CAMG T,-1(FXP)
CAMLE TT,(FXP)
JRST DFP3A8 ;LAST DIGIT IF MASK > FRACTION
DFP3A1:
KA SETCM D,T ;NEGATE MASK
KA MOVN F,TT
KA TLZ F,400000
KA SKIPN F
KA ADDI D,1
KIKL MOVE D,T
KIKL MOVE F,TT
KIKL DMOVN T,T
KA TLZ D,760000 ;FORM 1-MASK
KIKL TLZ T,760000
KA CAMLE D,-1(FXP)
KIKL CAMLE T,-1(FXP)
JRST DFP3A2
KA CAML D,-1(FXP)
KIKL CAML T,-1(FXP)
KA CAMGE F,(FXP)
KIKL CAMGE TT,(FXP)
AOJA A,DFP3A9 ;LAST DIGIT, ROUNDED UP, IF FRACTION > 1-MASK
DFP3A2:
KA EXCH T,-1(FXP) ;EXCHANGE BACK MASK FOR FRACTION
KA EXCH TT,(FXP)
KIKL DMOVE T,-1(FXP)
KIKL MOVEM D,-1(FXP)
KIKL MOVEM F,(FXP)
PUSHJ P,(R) ;OTHERWISE OUTPUT DIGIT AND
JRST DFP3A ; GO AROUND AGAIN
DFP3A8: MOVE TT,-1(FXP) ;ROUND LAST DIGIT UP IF FRACTION >= 1/2
TLNE TT,10000
ADDI A,1
DFP3A9: SUB FXP,R70+2
JRST (R)
] ;END OF IFN DBFLAG
;FP4 FP4A FP4E0 FP4E1
;HERE ON FLONUMS < 0.01 (DB%) OR < 0.1 (DB$)
FP4: JUMPN T,FP4E ;FLOATING POINT "E" FORMAT
DB$ CAILE B,33 ;FOR DOUBLE PRECISION,
DB$ PUSH P,[[%D% ? JRST FP4A]] ;PRINT "0.0D0" CLEVERLY
PUSHJ P,FP4A ;CLEVER WAY TO PRINT OUT "0.0" QUICKLY
%DCML%
FP4A: MOVEI A,"0
JRST (R)
;HERE ON FLONUMS >= 1.0E8
FP4E0: SKIPN KA10P
JRST .+5
FDVL T,D1.0E8 ;BE DOUBLY PRECISE IN DIVIDING
FDVR TT,D1.0E8 ; BY 10↑8 TO GET NUMBER IN RANGE
FADL T,TT
JRST .+2
DFDV T,D1.0E8
IFN DBFLAG,[
EXCH T,-1(FXP)
EXCH TT,(FXP)
SKIPE KA10P
JRST .+3
DFDV T,D1.0E8
JRST .+4
FDVL T,D1.0E8 ;DIVIDE MASK TOO
FDV TT,D1.0E8 ;UNROUNDED!
FADL T,TT
EXCH T,-1(FXP)
EXCH TT,(FXP)
] ;END OF IFN DBFLAG
ADDI F,8
CAML T,D1.0E8
JRST FP4E0 ;KEEP DIVIDING UNTIL < 10↑8
FP4E1: CAMGE T,D10.0
JRST FP4B
SKIPN KA10P
JRST .+5
FDVL T,D10.0 ;NOW REDUCE UNTIL < 10.0
FDVRI TT,(10.0)
FADL T,TT
JRST .+2
DFDV T,D10.0
IFN DBFLAG,[
EXCH T,-1(FXP)
EXCH TT,(FXP)
SKIPE KA10P
JRST .+3
DFDV T,D10.0
JRST .+4
FDVL T,[10.0] ;DIVIDE MASK TOO
FDV TT,[10.0] ;UNROUNDED!
FADL T,TT
EXCH T,-1(FXP)
EXCH TT,(FXP)
] ;END OF IFN DBFLAG
AOJA F,FP4E1
;FP4E FP4E2 FP4E2A FP4B
;HERE FOR NON-ZERO FLONUMS < 0.01 (DB%) OR < 0.1 (DB$)
FP4E: CAML T,[1.0↑-8] ;BE DOUBLY PRECISE IN MULTIPLYING BY 10↑8
JRST FP4E2A
SKIPN KA10P
JRST .+7
FMPR TT,D1.0E8
MOVEM TT,D
FMPL T,D1.0E8
UFA TT,D
FADL T,D
JRST .+2
DFMP T,D1.0E8
IFN DBFLAG,[
EXCH T,-1(FXP)
EXCH TT,(FXP)
KA FMP TT,[1.0↑8] ;UNROUNDED! MULTIPLY MASK TOO
KA MOVEM TT,D
KA FMPL T,[1.0↑8]
KA UFA TT,D
KA FADL T,D
KIKL DFMP T,D1.0E8
EXCH T,-1(FXP)
EXCH TT,(FXP)
] ;END OF IFN DBFLAG
SUBI F,8
JRST FP4E
FP4E2: SKIPN KA10P
JRST .+7
FMPRI TT,(10.0) ;NOW INCREASE UNTIL >= 1.0
MOVEM TT,D
FMPL T,D10.0
UFA TT,D
FADL T,D
JRST .+2
DFMP T,D10.0
IFN DBFLAG,[
EXCH T,-1(FXP)
EXCH TT,(FXP)
KA FMP TT,[10.0] ;UNROUNDED! MULTIPLY MASK TOO
KA MOVEM TT,D
KA FMPL T,[10.0]
KA UFA TT,D
KA FADL T,D
KIKL DFMP T,D10.0
EXCH T,-1(FXP)
EXCH TT,(FXP)
] ;END OF IFN DBFLAG
FP4E2A: CAMGE T,[1.0]
SOJA F,FP4E2
;HERE WHEN NUMBER BETWEEN 1.0 (INCL) AND 10.0 (EXCL); F IS THE EXPONENT TO BE PRINTED.
FP4B:
IFE DBFLAG,[
SKIPE KA10P
JRST .+6
TLNN TT,200000 ;DECIDE WHETHER ROUNDING WILL HAVE ANY EFFECT
JRST FP4B1
HLLZ TT,T ;IF SO, CREATE A FLONUM WHOSE VALUE IS
TLZ TT,777 ; 1/2 LSB OF FRACTION IN T
ADD TT,[777000,,1]
FADR T,TT ;ADD LOW PART TO HIGH PART, ROUNDING
CAMGE T,D10.0 ;ROUNDING UP MAY TAKE US OUT OF RANGE AGAIN
JRST FP4B1
FDVRI T,(10.0)
ADDI F,1 ;ADJUST EXPONENT FOR THE DIVISION
] ;END OF IFE DBFLAG
;FOR DB$, JUST LET THE EXTRA INFO BITS SIT THERE, EVEN FOR SINGLE PRECISION!
; AFTER ALL, THE MASK HAS ALSO BEEN COMPUTED TO DOUBLE PRECISION
;FP4B1
;; FALLS THRU
FP4B1: PUSH FLP,F ;DON'T USE FXP! WILL CONFLICT WITH MASK FOR DB$
PUSHJ P,FP3 ;NUMBER HAS BEEN NORMALIZED FOR 1.0 .LE. X < 10.0
DB$ CAILE B,33
DB$ %D% ;FOR DOUBLE PRECISION, "D" INDICATES EXPONENT
DB$ CAIG B,33
%E% ;FOR SINGLE PRECISION, "E" INDICATES EXPONENT
POP FLP,TT ;POP EXPONENT
SKIPLE TT ;PRINT SIGN (BUT PRINT NO SIGN FOR 0)
%POS%
SKIPGE TT
%NEG%
MOVEI C,10.
MOVMS TT
JRST PRINI3 ;PRINT EXPONENT AS A DECIMAL INTEGER
;PRINCX PRNCX2 PRNCX3 PRNCX4 PRINDX PRNDX2 PRNDX5
SUBTTL PRINT A COMPLEX OR A DUPLEX
IFN CXFLAG,[
PRINCX:
IFN USELESS,[
MOVEI T,35.
SKIPN @-1(P)
MOVEI T,18.
PUSHJ P,PRINLP
] ;END OF IFN USELESS
SKIPE T,@-1(P) ;DON'T PRINT REAL PART IF 0
PUSHJ P,FP0
KA HRRZ A,-1(P)
KA MOVE T,(A)
KA MOVE TT,1(A)
KIKL DMOVE T,@-1(P)
JUMPE T,PRNCX2
SKIPL TT
%POS%
PRNCX2: JUMPE TT,PRNCX4
SKIPGE TT
%NEG%
MOVM T,TT
PUSHJ P,FP0
PRNCX3: MOVEI A,"J ;CROCK
JRST (R)
PRNCX4: MOVEI A,"0
PUSHJ P,(R)
JRST PRNCX3
] ;END OF IFN CXFLAG
IFN DXFLAG,[
PRINDX:
IFN USELESS,[
MOVEI T,60.
SKIPN @-1(P)
MOVEI T,30.
PUSHJ P,PRINLP
] ;END OF IFN USELESS
KA HRRZ A,-1(P)
KA MOVE T,(A)
KA MOVE TT,1(A)
KIKL DMOVE T,@-1(P)
SKIPE T ;DON'T PRINT REAL PART IF 0
PUSHJ P,DFP0
HRRZ A,-1(P)
KA MOVE T,2(A)
KA MOVE TT,3(A)
KIKL DMOVE T,2(A)
SKIPN @-1(P)
JRST PRNDX2
SKIPL T
%POS%
PRNDX2: JUMPE T,PRNCX4
SKIPGE T
%NEG%
JUMPGE T,PRNDX5
KA DFN T,TT
KIKL DMOVN T,T
PRNDX5: PUSHJ P,DFP0
JRST PRNCX3
] ;END OF IFN DXFLAG
;PRINB PRINB0 PRINBQ PRINBZ PRBAB PRINB3 PNFBLP
IFN BIGNUM,[
SUBTTL PRINT A BIGNUM
PRINB:
IFN USELESS,[
HRRZ B,@-1(P)
MOVEI T,1
PRINB0: ADDI T,12.
HRRZ B,(B)
JUMPN B,PRINB0
PUSHJ P,PRINLP
] ;END OF IFN USELESS
HRRZ A,-1(P)
SKIPGE A,(A)
JRST PRINBQ
IFE USELESS, HRRZ D,@VBASE
IFN USELESS,[
HRRZ D,VBASE
CAIE D,QROMAN
SKIPA D,(D)
MOVEI D,10.
] ;END OF IFN USELESS
CAILE D,10.
%POS%
JRST PRINBZ
PRINBQ: %NEG% ;NEGATIVE BIGNUM
PRINBZ: MOVEM R,RSAVE
HRRZM P,FSAVE ;STORE PDL POSITION SO AR1 AND AR2A CAN BE FOUND
PUSH P,AR1
PUSH P,AR2A
PUSHJ P,YPOCB
PUSH P,A
PUSH P,[PRINB4]
MOVE B,VBASE
IFN USELESS,[
CAIN B,QROMAN
SKIPA D,[10.]
] ;END OF IFN USELESS
JSP T,FXNV2
MOVE C,D
JSP T,PRI.
MOVE R,D
MOVEI F,1
MOVE T,D
PRBAB: MUL T,D
JUMPN T,.+4
MOVE T,TT
MOVE R,TT
AOJA F,PRBAB
MOVEM F,NORMF
MOVE D,R
PRINB3: MOVE C,A
HLRZ B,(C)
MOVE F,(B)
MOVEI R,0
PNFBLP: DIV R,D
MOVEM R,(B)
MOVE B,(C)
TRNN B,-1
JRST PRBFIN
MOVE C,(C)
MOVE R,F
HLRZ B,(C)
MOVE F,(B)
JRST PNFBLP
;PRBFNA PRBFIN PRINBI PRINBJ PRBNUF PRINB4
PRBFNA: HLR A,B
PRBFIN: MOVS B,(A)
TLNE B,-1
SKIPE (B)
JRST .+2
JRST PRBFNA
PUSH FXP,F
MOVE R,(A)
TRNN R,-1
JRST PRBNUF
PUSHJ P,PRINB3
PRINBI: POP FXP,TT
MOVE F,NORMF
MOVE R,RSAVE
PRINBJ: SETZ T,
JSP D,PRINI5
SOJE F,FP7A1
MOVE TT,T
PUSHJ P,PRINBJ
JRST FP7A1
PRBNUF: HLRZ A,R
MOVE TT,(A)
MOVE AR2A,FSAVE
MOVE AR1,1(AR2A) ;RESTORE AR1 AND AR2A
MOVE AR2A,2(AR2A)
HRRZ C,VBASE
IFN USELESS, CAIN C,QROMAN
IFN USELESS, SKIPA R,[10.]
JSP T,FXNV3
MOVE C,R
MOVE R,RSAVE
SKIPE TT
PUSHJ P,PRINI3
JRST PRINBI
PRINB4: POP P,A
MOVEI B,TRUTH
PUSHJ P,RECLAIM
POP P,AR2A
POP P,AR1
POPJ P,
] ;END OF IFN BIGNUM
;FLATSIZE FLAT5 FLAT4 FLAT3 FLAT2 CFLAT2 %FLO FLATOBJECT FLATO2 FLATC FLAT7 FLATC1 FLTC1A FLATC2 FLATC3 FLAT7A $EXPLODEC $$EXPU $$EXPLODEN $$EXSN $$EXP0 $$EXP1 EXPLY1 EXPLY2 EXPLY3 EXPLY4 EXPLY9
SUBTTL FLATSIZE, FLATC, EXPLODEC, EXPLODEN, EXPLODE
FLATSIZE:
PUSH P,CFIX1 ;SUBR 1
SKOTTN A,LS
IFN HNKLOG,[
TLNN TT,HNK
JRST FLAT5
PUSHJ P,USRHNP ;Is this a user's extended hunk?
JUMPE T,FLAT5
SETZ B, ;Say we aren't PRINT
SETZ R, ;Say to do slashification
PUSHJ P,SENDFL
MOVE TT,(A) ;Get the result
POPJ P, ;And make it into a FIXNUM
] ; End of IFN HNKLOG,
FLAT5: SKIPA R,CFLAT2 ;POPJ IS POSITIVE
FLAT4: HRROI R,FLAT2
FLAT3: SETZM FLAT1
PUSHJ P,PRINTF
SKIPA TT,FLAT1
FLAT2: AOS FLAT1
CFLAT2: POPJ P,FLAT2
IFN HNKLOG,[
%FLO: ;(FLATSIZE-OBJECT object printp i-depth slash)
FLATOBJECT: ;LSUBR (4 . 5)
JSP TT,LWNACK ;Check number of arguments
LA45,,Q%FLO
CAMN T,IN0-5 ;5 args?
POP P,AR1 ; Yes, throw one away
POP P,AR1
POP P,C
POP P,B
POP P,A
PUSH P,CFIX1
MOVE TT,(C)
MOVEM TT,PRINLV
MOVE R,[PR.ATR,,FLAT2]
SKIPE B ;Is this from inside print?
HRRI R,FLATO2 ; Yes, fake out PRINT to think it's from print
SKIPN AR1 ;Slashify?
TLO R,PR.PRC ; Nope, tell PRINT not to.
SETZM FLAT1
PUSHJ P,PRINTF
MOVE TT,FLAT1
POPJ P,
FLATO2: AOS FLAT1
POPJ P,
]; END of IFN HNKLOG,
FLATC: PUSH P,CFIX1 ;SUBR 1
SKOTTN A,LS
IFN HNKLOG,[
TLNN TT,HNK
JRST FLAT7
PUSHJ P,USRHNP ;Is this a user-extend HUNK?
JUMPE T,FLAT7 ;Maybe not
SETZ AR1 ;Say not from PRINT
SETO R, ;Say no slashification
SETZ B, ;Say we aren't print
PUSHJ P,SENDFL ;Send it the message to get value to return
MOVE TT,(A) ;Get result (better be fixnum)
POPJ P, ;We'll definately return a fixnum! (we cons it)
] ; End of IFN HNKLOG,
FLAT7: TLNN TT,SY
JRST FLAT7A
FLATC1: HLRZ TT,(A) ;FAST-FLATC FOR SYMBOLS
HRRZ A,1(TT)
FLTC1A: SETZ TT,
FLATC2: HRRZ B,(A) ;COUNT 5 CHARS PER PNAME WORD
ADDI TT,BYTSWD
JUMPE B,FLATC3
HRRZ A,(B)
ADDI TT,BYTSWD
JUMPN A,FLATC2
MOVEI A,(B)
FLATC3: HLRZ A,(A) ;LAST PNAME WORD MAY BE PARTIAL
SKIPN T,(A) ;WATCH OUT FOR NULL PNAME!
SUBI TT,1
TRNE T,177←1
POPJ P,
TRNE T,177←10
SOJA TT,CPOPJ
SUBI TT,3
TDNE T,[177←17]
AOJA TT,CPOPJ
TLNN T,(177←26)
SUBI TT,1
POPJ P,
FLAT7A: JUMPN A,FLAT4
HRRZ A,$$$NIL+1
JRST FLTC1A
$EXPLODEC:
PUSHJ P,USRHPP ;Is this a user hunk?
JUMPN T,$$EXPU ;If so, send an EXPLODEC message
MOVE R,EXPL0 ;SUBR 1 ;HRRZI IS NEGATIVE!!!
JRST $$EXP1
$$EXPU: PUSH P,A
PUSH P,[QEXPLODE]
PUSH P,NIL ;SLASHIFY-P
PUSH P,NIL ;NUMBER-P
JRST $$EXSN
$$EXPLODEN:
PUSHJ P,USRHPP ;Is this a user hunk?
JUMPE T,$$EXP0 ;Nope, hack normally
PUSH P,A
PUSH P,[QEXPLODE]
PUSH P,NIL ;SLASHIFY-P
PUSH P,[TRUTH] ;NUMBER-P
$$EXSN: MOVNI T,4
XCT SENDI ;Never returns
$$EXP0: HRROI R,EXPL2 ;SUBR 1
$$EXP1: SKOTT A,SY
JRST EXPL4
HLRZ T,(A)
HRRZ A,1(T)
PUSH P,R70 ;FORMING LIST OF CHARS
MOVEI B,(P)
PUSH P,A
PUSH P,B
XOR R,EXPL0
PUSH FXP,R
EXPLY1: SKIPN A,-1(P)
JRST EXPLY9
HLRZ B,(A)
MOVE D,(B)
HRRZ A,(A)
MOVEM A,-1(P)
EXPLY2: JUMPE D,EXPLY1
SETZ TT,
LSHC TT,7
SKIPE (FXP)
JRST EXPLY3
PUSH FXP,D
PUSHJ P,RDCH2
POP FXP,D
JRST EXPLY4
EXPLY3: MOVEI A,IN0(TT) .SEE HINUM
EXPLY4: PUSHJ P,NCONS
HRRM A,@(P)
HRRZM A,(P)
JRST EXPLY2
EXPLY9: SUB P,R70+2
SUB FXP,R70+1
JRST POPAJ
;EXPLODE EXPL0 EXPL4 EXPL1 EXPL3 EXPL6 EXPL2
EXPLODE:
PUSHJ P,USRHPP ;Is it a USERHUNK?
JUMPE T,EXPL0
PUSH P,A
PUSH P,[QEXPLODE]
PUSH P,[TRUTH] ;SLASHIFY-P
PUSH P,NIL ;NUMBER-P
JRST $$EXSN
EXPL0: HRRZI R,EXPL1 ;SUBR 1
EXPL4: PUSH P,R70
HRRZM P,EXPL5
PUSHJ P,PRINTF
JRST POPAJ
EXPL1: SAVE B C
SAVEFX TT R
ANDI A,177
PUSHJ P,RDCH3
POP P,C
EXPL3: PUSHJ P,NCONS
HRRM A,@EXPL5
HRRZM A,EXPL5
EXPL6: RSTRFX R TT
JRST POPBJ
EXPL2: PUSH P,B
SAVEFX TT R
MOVEI A,IN0(A)
JRST EXPL3
;BAKTRACE BAKLIST BKTR0 BKTR3 BKTR2 BKTR1 BKTR2X
SUBTTL BAKTRACE
BAKTRACE: ;PRINT A BAKTRACE
JSP TT,LWNACK
LA01,,QBAKTRACE
MOVNI TT,1
JRST BKTR0
BAKLIST: ;RETURN A LIST (SIMILAR TO PRINTED FORMAT)
JSP TT,LWNACK
LA01,,QBAKLIST
MOVSI TT,400000
BKTR0: MOVEM TT,BACTYF ;TYPE FLAG FOR BAKTRACE/BAKLIST
MOVEI A,NIL ;START WITH NIL
SKIPE T ;OR USER SUPPLIED ARG
POP P,A
JSP R,GTPDLP ;GET APPROPRIATE PDL POINTER
0
JFCL
MOVEI A,(D) ;SAVE PDL POINTER IN A
MOVE B,(A) ;GET TOP OF STACK
CAME B,[QBAKTRACE,,CPOPJ]
CAMN B,[QBAKLIST,,CPOPJ]
SOS A ;SKIP FIRST SLOT IF CALL TO US
MOVEI R,60 ;LOOK AT ABOUT 60 STACK LOCATIONS
HRRZ TT,C2 ;GET PDL ORIGION
SUBM A,TT ;SAVE PDL OFFSET IN TT
CAIG TT,(R) ;FEWER THAN 60 LOCATIONS TO LOOK AT?
MOVE R,TT ;YES, SO LOOK AT THAT MANY
MOVE T,A
SETZM CPJSW ;ASSUME *RSET HAS BEEN OFF
MOVEI B,CPOPJ
BKTR3: MOVE TT,(T) ;CUT OUT STUFF FROM *RSET LOOP, IF USED
CAIN B,(TT)
TLNN TT,-1
SKIPA
SETOM CPJSW ;APPARENTLY *RSET HAS BEEN ON
TLZ TT,-1#10000
CAMN TT,[10000,,LSPRET]
MOVEI A,-1(T)
SOS T
SOJG R,BKTR3
MOVEM A,BKTRP ;SET UP FOR BAKTRACE LOOP AND GO THERE
MOVE A,BACTYF
AOJE A,BKTR2 ;IF TRACING THEN SKIP LIST HACKING STUFF
PUSH P,R70 ;SET UP LIST TO HOLD BAKLISTING
HRLM P,(P) ;SET UP LAST-OF-LIST POINTER
BKTR2: HRRZ A,C2 ;THE PDL-HUNTING LOOP
ADDI A,1
CAML A,BKTRP
JRST BKTR2X ;EXIT WHEN BACKED UP TO BOTTOM OF PDL
AOSN BACTYF
STRT [SIXBIT \↑MBAKTRACE↑M!\]
HRRZ A,@BKTRP
CAIN A,CPOPJ ;IN *RSET MODE, THIS IS A TAG
JRST BKTR1C ;PUT ON PDL UPON ENTRY TO A FUNCTION
CAIN A,ILIST3
JRST BKTR1B
MOVE D,@BKTRP
TLNE D,10000#-1 ;TO BE A PUSHJ RETURN ADDR, THERE MUST
CAIN A,BKCOM1 ; BE PC FLAGS IN LH
JRST BKTR1
CAIL A,BEGFUN
CAIL A,ENDFUN
JRST BKTR1A
CAIE A,CON2
CAIN A,CON3
JRST BKTR1G
CAIN A,PG0A
JRST BKTR1E
CAIN A,LMBLP1
JRST BKTR1
CAILE A,BRLP1
CAILE A,BRLP2
SKIPA
JRST BKTR1H
CAIN A,REKRD1
JRST BKTRR3
CAIE A,UNBIND
JRST BKTR1A
BKTR1: SOS BKTRP
JRST BKTR2
BKTR2X: AOSE BACTYF
SKIPL BACTYF
JRST TERPRI
POP P,A
JRST RHAPJ
;BKTR1A BK1A2 BK1A4 BK1A1 BK1A1C BK1A3 BK1A1B
BKTR1A: CAMGE A,@VBPORG ;LETS HOPE THAT BPORG ISN'T SCREWED UP
CAIGE A,BBPSSG
JRST BKTR1
BK1A2: MOVEI AR1,-1(A)
BK1A4: HLRZ B,-1(A) ;SOMEWHERE IN BINARY PROGRAMS
MOVEI R,PRIN1B ;IF "CALL", THEN SUBR ATOM NAME WILL BE IN B
TRC B,37 ;LIKELY NOT AN INSTRUCTION IF ALL THE INDIRECT,
TRCE B,37 ; AND INDEXING BITS ARE ONES
CAIGE B,(CALL )
JRST BKTR1
CAIG B,(JCALLF 17,)
JRST BK1A1
CAIE B,(XCT) ;MIGHT BE A XCT OF A CALL, JRST, PUSHJ TO SUBR
JRST .+3
HRRZ A,-1(A) ;IF SO, CYCLE TO TRY TO FIND CALLED SUBR NAME
AOJA A,BK1A4
MOVEI R,ERRADR ;HA! MAYBE PUSHJ OR JRST, SO NOW WE HAVE
CAIN B,(JRST 0,) ; ONLY BEGINNING ADDRESS OF SUBR. HENCE
JRST BK1A1 ; IT HAS TO BE DECODED INTO ATOM NAME.
CAIE B,(PUSHJ P,)
JRST BKTR1 ;LOSE, DON'T KNOW WHAT KIND OF INST THIS IS
HLLZ B,@BKTRP
TLNN B,10000 ;USER MODE FLAG - STOPS RANDOM
JRST BKTR1 ; DATA NOT ENTERED BY PUSHJ
BK1A1: MOVE B,-1(A) ;EITHER "(J)CALL(F)", "JRST", OR "PUSHJ P,"
TLNE B,7777760 ;LET INDIRECTION HAPPEN, BUT CAN'T CHANCE
TLNE B,((17)) ; DOING IT IF THE UUO IS INDEXED, OR
JRST BK1A1B ; ADDRESSES AN AC
MOVEI B,@-1(A) ;LET INDIRECT DO ITS THING
BK1A1C: PUSH P,AR1 ;ORIGINAL PC WHEREFROM SUBR WAS CALLED
SKIPGE BACTYF
JRST BK1A3
PUSHJ P,(R) ;R HAS EITHER PRIN1B OR ERRADR
STRT [SIXBIT \←!\] ; DEPENDING ON WHETHER "CALL" OR "PUSHJ P,"
POP P,B
PUSHJ P,ERRADR
STRT [SIXBIT \ !\]
JRST BKTR1
BK1A3: CAIE R,ERRADR
SKIPA A,B
PUSHJ P,ERRDCD ;"ERRDCD" DECODES ADDRESS IN B, GETS ATOM IN A
EXCH A,(P)
PUSHJ P,ERRDCD
PUSH P,[QLA]
PUSH P,A
MOVNI T,3
JRST BKT1F2
BK1A1B: CAIN R,ERRADR
TDZA B,B
MOVEI B,QM
JRST BK1A1C
;BKTR1B BKTR1C BKTR1F BKT1B1 BKT1F1 BKT1F2 BKTR1H BKTR1E BKTR1D BKTR1G BKTR1I BKTRR3 BKTRR5 UREAD UREAD2 UREAD1 UREOF UCLOSE
BKTR1B: MOVE D,BKTRP
HRRZ B,-1(D) ;PROBABLY FOR ENTRY TO SOME SUBR, LSUBR, OR EXPR
CAIE B,ELSB1 ;LISTING TINGS UP ON THE PDL
CAIN B,ESB1
JRST .+3
CAIE B,IAPPLY
JRST BKTR1
HLRE B,-1(D)
ADDI B,-3(D)
HLRZ A,(B)
JUMPE A,BKTR1
HRRZM B,BKTRP
SKIPGE BACTYF
JRST BKT1B1
STRT [SIXBIT \(!\]
PUSHJ P,PRIN1
STRT [SIXBIT \ EVALARGS) !\]
JRST BKTR1
BKTR1C: HLRZ A,@BKTRP ;PROBABLY ENTERED AN F-TYPE FUNCTION
JUMPE A,BKTR1 ;WELL, NIL ISN'T REALLY A FUNCTION
BKTR1F: SKIPGE BACTYF
JRST BKT1F1
PUSHJ P,PRIN1
STRT [SIXBIT \← !\]
JRST BKTR1
BKT1B1: SKIPA B,[QEVALARGS]
BKT1F1: MOVEI B,QLA
PUSH P,A
PUSH P,B
MOVNI T,2
BKT1F2: PUSHJ FXP,LISTX
PUSHJ P,NCONS
HLRZ B,(P)
HRRM A,(B) ;NCONC MOST RECENT GOODIE ONTO END OF LIST
HRLM A,(P) ;UPDATE LAST-OF-LIST POINTER
JRST BKTR1
BKTR1H: MOVNI T,LERSTP+5-1 ;2 FROM BREAK, 2 FROM EDERRL, 1 FROM BRLP = 5
MOVEI A,QBREAK ;-1 SINCE BKTR1 WILL TAKE OFF ONE MORE
JRST BKTR1D
BKTR1E: MOVNI T,LPRP ;BACK UP OFF A PROG
MOVEI A,QPROG
BKTR1D: ADDM T,BKTRP
JRST BKTR1I
BKTR1G: MOVEI A,QCOND ;FOUND A COND ENTRY
BKTR1I: SKIPE CPJSW
JRST BKTR1 ;IF *RSET WAS ON, ENTRY IS BE MARKED BY CPOPJ
JRST BKTR1F
BKTRR3: SKIPA T,XC-3
BKTRR5: MOVNI T,5
ADDM T,BKTRP
JRST BKTR1
PGTOP PRT,[PRINT,TYO,EXPLODE,FLATC,BAKTRACE,ETC]
;;@ END OF PRINT 288
;;@ ULAP 142 UTAPE, LAP, AND AGGLOMERATED SUBRS
;;; ***** MACLISP ****** UTAPE, LAP, AND AGGLOMERATED SUBRS ******
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
PGBOT [UIO]
SUBTTL OLD I/O FUNCTIONS IN TERMS OF NEW I/O PRIMITIVES
;;; (DEFUN UREAD FEXPR (FILENAME)
;;; (UCLOSE)
;;; ((LAMBDA (FILE)
;;; (EOFFN UREAD
;;; (FUNCTION
;;; (LAMBDA (EOFFILE EOFVAL)
;;; (UCLOSE)
;;; EOFVAL)))
;;; (INPUSH (SETQ UREAD FILE))
;;; (DEFAULTF FILE))
;;; (OPEN (*UGREAT FILENAME) 'IN)))
UREAD: PUSH P,A ;FEXPR
PUSHJ P,UCLOSE
POP P,A
PUSHJ P,UGREAT
PUSH P,[UREAD2]
PUSH P,A
MOVNI T,1
JRST $EOPEN
UREAD2: MOVEM A,VUREAD
PUSH P,[UREAD1]
PUSH P,A
PUSH P,[QUREOF]
MOVNI T,2
JRST EOFFN
UREAD1: HRRZ A,VUREAD
PUSHJ P,INPUSH
PUSHJ P,DEFAULTF
HRRZ A,VUREAD
JRST TRUENAME ;RETURN TRUENAME OF FILE TO USER
UREOF: PUSH P,B ;+INTERNAL-UREAD-EOFFN - SUBR 2
PUSHJ P,UCLOSE
JRST POPAJ
;;; (DEFUN UCLOSE FEXPR (X)
;;; (COND (UREAD
;;; ((LAMBDA (OUREAD)
;;; (AND (EQ OUREAD INFILE) (INPUSH -1))
;;; (SETQ UREAD NIL)
;;; (CLOSE OUREAD))
;;; UREAD))
;;; (T NIL)))
UCLOSE: SKIPN A,VUREAD ;FEXPR
POPJ P,
CAMN A,VINFILE
PUSHJ P,INPOP ;SAVES A
SETZM VUREAD
JRST $CLOSE
;UAPPEND UWRITE UWRT0 UWRT1 UWRT2
;;; (DEFUN UWRITE FEXPR (DEVDIR)
;;; (OR DEVDIR (SETQ DEVDIR (CAR (DEFAULTF NIL))))
;;; (*UWRITE (CONS DEVDIR
;;; (COND ((STATUS FEATURE DEC10)
;;; (CONS (STATUS JNAME) '(OUT)))
;;; ((STATUS FEATURE DEC20)
;;; '(MACLISP OUTPUT))
;;; ((STATUS FEATURE ITS)
;;; '(.LISP. OUTPUT))))
;;; 'OUT
;;; (LIST DEVDIR)))
;;;
;;; (DEFUN UAPPEND FEXPR (FILENAME)
;;; (SETQ FILENAME (*UGREAT FILENAME))
;;; (*UWRITE FILENAME 'APPEND FILENAME))
;;;
;;; (DEFUN *UWRITE (NAME MODE NEWDEFAULT) ;INTERNAL ROUTINE
;;; (COND (UWRITE
;;; (SETQ OUTFILES (DELQ UWRITE OUTFILES))
;;; (CLOSE UWRITE)
;;; (SETQ UWRITE NIL)))
;;; ((LAMBDA (FILE)
;;; (SETQ OUTFILES
;;; (CONS (SETQ UWRITE FILE)
;;; OUTFILES))
;;; (CAR (DEFAULTF NEWDEFAULT)))
;;; (OPEN NAME MODE)))
UAPPEND: PUSHJ P,UGREAT ;FEXPR
MOVEI C,(A)
MOVEI B,QAPPEND
JRST UWRT1
UWRITE: JUMPN A,UWRT0 ;FEXPR
PUSHJ P,DEFAULTF
HLRZ A,(A)
UWRT0: PUSHJ P,NCONS
IFN ITS+D20,[
MOVEI C,(A)
HLRZ A,(C)
MOVEI B,QLSPOUT
PUSHJ P,CONS
] ;END OF IFN ITS+D20
IFN D10,[
PUSH P,A
PUSHJ P,SJNAME
MOVEI B,Q$OUT
PUSHJ P,CONS
POP P,C
HLRZ B,(C)
PUSHJ P,XCONS
] ;END OF IFN D10
MOVEI B,Q$OUT
UWRT1: PUSH P,C ;*UWRITE BEGINS HERE
PUSH P,[UWRT2]
PUSH P,A
PUSH P,B
SKIPE VUWRITE
PUSHJ P,UFILE5
MOVNI T,2
JRST $OPEN
UWRT2: MOVEM A,VUWRITE
HRRZ B,VOUTFILES
PUSHJ P,CONS
MOVEM A,VOUTFILES
POP P,A
PUSHJ P,DEFAULTF
JRST $CAR
;UFILE0 UFILE UFILE5 SCRUNIT CRUNIT
;;; (DEFUN UFILE FEXPR (SHORTNAME)
;;; (COND ((NULL UWRITE)
;;; (ERROR 'NO/ UWRITE/ FILE
;;; (CONS 'UFILE SHORTNAME)
;;; 'IO-LOSSAGE))
;;; (T (PROG2 NIL
;;; (DEFAULTF (RENAMEF UWRITE (*UGREAT SHORTNAME)))
;;; (SETQ OUTFILES (DELQ UWRITE OUTFILES))
;;; (SETQ UWRITE NIL)
;;; (OR OUTFILES (SETQ ↑R NIL))))))
UFILE0: MOVEI B,QUFILE
PUSHJ P,XCONS
IOL [NO UWRITE FILE!]
UFILE: SKIPN VUWRITE ;FEXPR
JRST UFILE0
PUSHJ P,UGREAT
MOVEI B,(A)
SETZ A,
EXCH A,VUWRITE
PUSH P,A
PUSH P,B
HRRZ B,VOUTFILES
PUSHJ P,.DELQ
MOVEM A,VOUTFILES
SKIPN VOUTFILES
SETZM TAPWRT
POP P,B
POP P,A
PUSHJ P,$RENAME ;CLOSES THE FILE AS WELL AS RENAMES IT
PUSHJ P,DEFAULTF
POPJ P,
UFILE5: HRRZ A,VUWRITE
HRRZ B,VOUTFILES
PUSHJ P,.DELQ
MOVEM A,VOUTFILES
HRRZ A,VUWRITE
PUSHJ P,$CLOSE
SETZM VUWRITE
SKIPN VOUTFILES
SETZM TAPWRT
POPJ P,
;;; (DEFUN CRUNIT FEXPR (DEVDIR)
;;; (CAR (DEFAULTF (AND DEVDIR (LIST DEVDIR)))))
SCRUNIT: SETZ A,
CRUNIT: SKIPE A ;FEXPR
PUSHJ P,NCONS
PUSHJ P,DEFAULTF
JRST $CAR
;UGREAT UGRT1 UPROBE UKILL
;;; (DEFUN *UGREAT (NAME) ;INTERNAL ROUTINE
;;; (MERGEF NAME
;;; (COND ((STATUS FEATURE ITS) '(* . >))
;;; ('(* . LSP)))))
UGREAT: PUSH P,[6BTNML]
UGRT1: PUSHJ P,FIL6BT
IFN ITS+D10,[
REPEAT 3, PUSH FXP,[SIXBIT \*\]
IT$ PUSH FXP,[SIXBIT \>\]
SA$ PUSH FXP,[SIXBIT \←←←\]
SA% 10$ PUSH FXP,[SIXBIT \LSP\]
10$ SETOM -2(FXP) ;FOR D10 DEFAULT PPN IS -1
] ;END OF IFN ITS+D10
IFN D20,[
PUSHN FXP,L.F6BT
MOVE T,[ASCII \LSP\]
MOVEM T,-L.6EXT-L.6VRS+1(FXP)
] ;END OF IFN D20
JRST IMRGF
;;; (DEFUN UPROBE FEXPR (FILENAME)
;;; (SETQ FILENAME (MERGEF (*UGREAT FILENAME) NIL))
;;; (PROBEF FILENAME))
UPROBE: PUSHJ P,UGRT1 ;FEXPR
JRST PROBF0
;;; (DEFUN UKILL FEXPR (FILENAME)
;;; (DEFAULTF (DELETEF FILENAME))))
UKILL: PUSHJ P,$DELETEF
JRST DEFAULTF
;TTSR TTSR1
SUBTTL SYMBOL MANIPULATION AND SQUOZE FUNCTIONS
;;; (TTSR| <SYMBOL>) GETS THE ARRAY PROPERTY OF <SYMBOL>,
;;; OR GIVES IT AN ARRAY PROPERTY WITH A DEAD SAR;
;;; IT MARKS THE SAR AS BEING NEEDED BY COMPILED CODE,
;;; AND THEN RETURNS THE ADDRESS OF THE TTSAR AS A FIXNUM.
;;; THIS IS USED PRIMARILY BY LAP.
TTSR: PUSH P,CFIX1 ;SUBR 1 - NCALLABLE (TTSR|)
MOVEI C,(A) ;SAVES AR1,R,F - SEE FASLOAD
PUSHJ P,ARGET
JUMPN A,TTSR1
JSP T,SACONS
MOVEI T,ADEAD
MOVEM T,ASAR(A)
MOVE T,[TTDEAD]
MOVEM T,TTSAR(A)
MOVEI B,(A)
MOVEI A,(C)
MOVEI C,QARRAY
PUSHJ P,PUTPROP
TTSR1: MOVSI T,TTS.CN
IORM T,TTSAR(A)
MOVEI TT,1(A)
POPJ P,
;RSQUEEZE SQUEEZE SQZCHR SQOK SQNOTL SQNOTD SQ%$
;;; BOTH ROUTINES ALWAYS RETURN THE LEFT-JUSTIFIED SQUOZE IN T
;;; AND THE SIXBIT IN R
;;; RSQUEEZE MAY LEAVE RIGHT-JUSTIFIED SQUOZE IN TT
RSQUEEZE: ;CANONICAL SQUOZE CONVERSION
IT% HRROS (P) ;FOR DEC-10, GIVES DEC-10 SQUOZE
SQUEEZE: ;THIS ALWAYS GIVES LEFT-JUSTIFIED SQUOZE
MOVEI AR1,6 ;CONVERT PNAME-ATOM TO SQUOZE AND SIXBIT
MOVE AR2A,[440600,,SQ6BIT] ;RETURNS SQUOZE IN TT, SIXBIT IN SQ6BIT
SETZM SQ6BIT ;CLEAR LOCS USED TO ACCUMULATE
SETZM SQSQOZ ; SIXBIT AND SQUOZE
HRROI R,SQZCHR
PUSHJ P,PRINTA ;"PRINT" OUT CHARS OR PNAME
IT% MOVE TT,SQSQOZ
SKIPA T,SQSQOZ
IMULI T,50
SOJGE AR1,.-1 ; MULTIPLY ITS SQUOZE UP TO SIZE
IT% MOVE R,(P)
IT% TLNN R,1
MOVE TT,T
MOVE R,SQ6BIT
POPJ P,
SQZCHR: TLNN AR2A,770000 ;IGNORE MORE THAN 6 CHARS
POPJ P,
SUBI A,40 ;CONVERT TO SIXBIT
CAIL A,1 ;LOSSAGE IF NOT SIXBIT CHAR
CAILE A,77 ; - ALSO, SPACE IS A LOSS
MOVEI A,'. ;LOSING NON-SQUOZE CHAR
IDPB A,AR2A ;DEPOSIT SIXBIT CHAR
CAIL A,'A ;CHECK FOR LETTER
CAILE A,'Z
JRST SQNOTL
SUBI A,'A-13 ;CONVERT TO SQUOZE VALUE
SQOK: EXCH T,SQSQOZ
IMULI T,50
ADDI T,(A)
EXCH T,SQSQOZ
SOJA AR1,CPOPJ ;DECR COUNT AND RETURN TO PRINTA
SQNOTL: CAIL A,'0 ;CHECK FOR DIGIT
CAILE A,'9
JRST SQNOTD
SUBI A,'0-1 ;CONVERT TO SQUOZE VALUE
JRST SQOK
SQNOTD: CAIE A,'$ ;CHECK FOR $ OR %
CAIN A,'%
JRST SQ%$
MOVEI A,'. ;ANY CHAR OTHER THAN A-Z, 0-9, $, OR %
DPB A,AR2A ; DEFAULTS TO . (E.G. *FOOBAR -> .FOOBA)
MOVEI A,45-42
SQ%$: ADDI A,42 ;SQUOZE VALUE FOR $,%,.
JRST SQOK
;5BTWD $5BTWD 5BTWD0 5BTWD1 5BTWD9 UNSQOZ UNSQZ1 UNSQZ2 UNSQZ3
5BTWD: PUSH P,CFIX1
$5BTWD: PUSH FXP,R70
5BTWD0: MOVEI C,(A)
HRRZ B,(A)
JUMPE B,5BTWD1
HLRZ A,(A)
JSP T,FXNV1
LSH TT,-2
MOVEM TT,(FXP)
MOVEI A,(B)
5BTWD1: HLRZ A,(A)
JSP T,SPATOM
JRST 5BTWD9
PUSHJ P,SQUEEZE
MOVE R,SQ6BIT
POP FXP,D
DPB D,[400400,,TT]
POPJ P,
5BTWD9: SETZM (FXP)
MOVEI A,(C)
WTA [BAD ARG - SQUOZE!]
JRST 5BTWD0
UNSQOZ: LDB T,[004000,,D] ;HAIRY MESS TO CONVERT
SETZM LD6BIT ; SQUOZE TO SIXBIT
UNSQZ1: IDIVI T,50 ;(THIS IS SEPARATE ROUTINE SO
JUMPE TT,UNSQZ2 ; LAP LOSERS CAN USE IT)
CAIL TT,45 ;<1SQUOZE .>
JRST UNSQZ3
CAIL TT,13 ;<1SQUOZ A> IS 13
ADDI TT,'A-13 ;CONVERT RANGE A - Z ,
CAIGE TT,13 ;<1SQUOZ 1> IS 1
ADDI TT,'0-1 ;CONVERT RANGE 0 - 9
UNSQZ2: IOR TT,LD6BIT
ROT TT,-6
MOVEM TT,LD6BIT
JUMPN T,UNSQZ1
MOVE A,[440600,,LD6BIT] ;MAKE SIXBIT INTO AN ATOM
JRST READ6C
UNSQZ3: SUBI TT,46-'$ ;[1SQUOZ $] IS 46, [1SQOZ .] IS 45
CAIN TT,45-<46-'$> ;CONVERT RANGE $ - %
MOVEI TT,'* ;BUT . IS EXCEPTIONAL
JRST UNSQZ2
;PUTDDTSYM PUTDD0 PUTDD2 PUTDD4 PUTDX
PUTDDTSYM:
MOVEI R,0 ;PUTDDTSYM| IS FOR LAP - OFFSETS VALUE BY LOAD OFFSET
PUTDD0:
IT$ JSP T,SIDDTP ;LOSE IF NO DDT TO GIVE SYMBOL TO
IT% 20% SKIPN .JBSYM"
JRST FALSE
PUSH FXP,R
PUSH P,B
10$ SKIPL R ;SEE LDPUT1
PUSHJ P,RSQUEEZE ;SQUEEZE ATOM'S PNAME DOWN TO SQUOZ CODE
POP P,B
PUSHJ P,GETDDG ;L-JUST SQUOZ IN T, CANONICAL-JUST IN TT
JRST PUTDX ;DONT REDEFINE GLOBALSYMS
IFE ITS,[
PUSHJ P,GETDDJ
JRST PUTDD4
MOVEI F,(D)
] ;END OF IFE ITS
PUTDD2: JSP T,FXNV2 ;GET VALUE OF SECOND ARG
POP FXP,R
ADDI D,(R) ;ADD IN OFFSET
IT$ .BREAK 12,[..SSYM,,TT]
10$ MOVEM D,(F) ;NON-ITS LEAVES IN F A PTR TO SYMTAB
JRST TRUE ; SLOT WHERE ENTRY IS TO BE MADE
IFE ITS,[
PUTDD4: SOSGE SYMLO
JRST FALSE
MOVE F,R70+2
SUBB F,.JBSYM"
TLO TT,100000 ;LOCAL SYMBOL
MOVEM TT,(F)
AOJA F,PUTDD2
] ;END OF IFE ITS
PUTDX: POPI FXP,1
JRST FALSE
;LAPSETUP LAP5HAK L5H1 L5H2 L5XIT L5ERSTP L5SPBND L5H3 L5MKUNBD L5INHIBIT L50.0P L5NILP LAPSMH LAPSM1 LAPST2 LSYMPUT FSLSTP FSLST2
SUBTTL LAPSETUP AND FASLAPSETUP
LAPSETUP:
JUMPN A,LAPSMH ;ARG = NIL => SETUP SOME SYM PROPERTIES
MOVEI T,LAPST2
LAP5HAK:
PUSH P,T ;APPLIES THE ROUTINE FOUND IN T
; TO ALL THE GLOBALSYMS
PUSH P,[441100,,LAP5P] ;ATOMIC SYMBOL PLACED IN A,
; GLOBALSYM INDEX IN TT
MOVSI F,-LLSYMS
L5H1: ILDB TT,(P) ;HAFTA GET THE GLOBALSYM INDEX FROM
; PERMUTATION TABLE
CAIL TT,LGSYMS ;IF NOT A GLOBALSYM [BUT AN XTRASYM], SKIP IT
JRST L5XIT
CAIN TT,3 ;****NEVER CHANGE THE GLOBALSYM INDICES FOR:
JRST L5SPBND ; SPECBIND 3
CAIN TT,25 ; ERSETUP 25
JRST L5ERSTP ; MAKUNBOUND 34
CAIN TT,34 ; INHIBIT 47
JRST L5MKUNBD ; 0*0PUSH 53
CAIN TT,47 ; NILPROPS 54
JRST L5INHIBI ;THOSE HAVE MORE THAN 6 CHARS IN THEIR PNAME
CAIN TT,53 ;AND CANT BE RECONSTRUCTED BY UNSQOZ'ING FROM
JRST L50.0P ;FROM THE LAPFIV TABLE
CAIN TT,54
JRST L5NILP
MOVE D,LAPFIV(F)
PUSHJ P,UNSQOZ
L5H2: LDB TT,(P)
PUSHJ P,@-1(P)
L5XIT: AOBJN F,L5H1
JRST POP2J
L5ERSTP:
MOVEI A,[SIXBIT \ERSETUP \]
JRST L5H3
L5SPBND:
MOVEI A,[SIXBIT \SPECBIND \]
L5H3: HRLI A,440600
PUSHJ P,READ6C
JRST L5H2
L5MKUNBD:
MOVEI A,[SIXBIT \MAKUNBOUND \]
JRST L5H3
L5INHIBIT:
MOVEI A,[SIXBIT \INHIBIT \]
JRST L5H3
L50.0P: MOVEI A,[SIXBIT \0*0PUSH \]
JRST L5H3
L5NILP: MOVEI A,[SIXBIT \NILPROPS\]
JRST L5H3
LAPSMH: CAIE A,TRUTH ;(LAPSETUP| T 2) MEANS
JRST LAPSM1 ; SET UP THE XCT HACK AREAS
10$ JSP T,FXNV2 ; WITH 2 XCT PAGES
10$ MOVE TT,D
10$ JRST LDXHAK
10% POPJ P, ;FOR NON TOPS-10, NO NEED TO DO ANY SETUP
LAPSM1: MOVEI T,(B) ;OTHERWISE, FIRST ARG IS ADDRESS
MOVEI R,(A) ; TO HACK, SECOND NON-NIL =>
MOVE TT,(R) ; TRY THE XCT-PAGE HAK
PUSHJ P,PRCHAK ;TRY TO SMASH (SKIP ON FAILURE)
JRST TRUE
MOVEI A,(AR2A)
MOVE B,VPURCLOBRL
PUSHJ P,CONS
MOVEM A,VPURCLOBRL
JRST TRUE
LAPST2: MOVE TT,LSYMS(TT) ;GET ACTUAL VALUE FROM GLOBALSYM INDEX
MOVEI C,QSYM
LSYMPUT: ;EXPECTS SYMBOL IN A, "SYM" OR "GLOBALSYM"
MOVEI B,(A) ; IN C, AND VALUE IN TT
JSP T,FXCONS
EXCH A,B
JRST PUTPROP
FSLSTP:
MOVEI T,FSLST2
PUSHJ P,LAP5HAK
MOVE TT,LDFNM2
JRST FIX1
FSLST2: MOVEI C,(A) ;MAKE UP ATOMIC SYMBOLS AND GIVE THEM SYM PROPERTIES
JSP T,FXCONS ; OF THE FORM (0 (NIL <N>))
PUSHJ P,NCONS ; WHERE <N> IS THE INDEX OF THE SYMBOL
SETZ B, ; (THESE ARE THE "GLOBALSYMS")
PUSHJ P,XCONS
PUSHJ P,NCONS
MOVE B,CIN0
PUSHJ P,XCONS
MOVEI B,(A)
MOVEI A,(C)
MOVEI C,Q%GLOBALSYM
JRST PUTPROP
;LSYMS LGSYMS LLSYMS ZZ LAPSIX ZZ LAPFIV LAP5P GETDDTSYM GETDDJ GETDD1 GETDDG LGTSPC PAGEBPORG PGBP4
R70 ;GLOBALSYM NUMBER -1
LSYMS: GLBSYM A
LGSYMS==.-LSYMS ;END OF GLOBALSYMS HACKED BY FASLAP
XTRSYM A
LLSYMS==.-LSYMS ;END OF ALL GLOBAL SYMBOLS
;;; SIXBIT FOR LAP SYMBOL NAMES; MUST MATCH IRP LIST OF GLBSYM
ZZ==0
LAPSIX: .BYTE 6
SIXSYM [
IRPC Q,,[A]
'Q
TERMIN
0
ZZ==ZZ+1
] ;END OF SIXSYM ARGUMENT
.BYTE
IFN ZZ-LGSYMS, WARN [LAPSIX OUT OF PHASE]
EXPUNGE ZZ
LAPFIV:
GLBSYM [SQUOZE 0,A]
XTRSYM [SQUOZE 0,A]
HAOLNG LOG2LL5,<LLSYMS-1> ;CROCK FOR BINARY SEARCH
REPEAT <1←LOG2LL5>-LLSYMS, 377777,,777777
LAP5P: BLOCK <LLSYMS+3>/4 ;PERMUTATION, STORED 4/WD, TO GET GLOBALSYMINDEX FROM LAPFIV INDEX
GETDDTSYM:
PUSHJ P,RSQUEEZE
PUSHJ P,GETDDG ;GET GLOBALSYM INDEX, AND NO-SKIP IF WIN
JRST FIX1
IFN ITS,[
MOVE D,TT ;SAVE SQUOZE OVER CALL TO SIDDTP
JSP T,SIDDTP ;LOSE IF NO DDT FROM WHICH TO GET SYMBOL
JRST FALSE
MOVE TT,D
.BREAK 12,[..RSYM,,TT]
JUMPE TT,FALSE
MOVE TT,TT+1
JRST FIX1
] ;END OF IFN ITS
IFE ITS,[
PUSHJ P,GETDDJ
JRST FALSE
JRST FIX1
GETDDJ: SKIPA D,.JBSYM" ;SQUOZ IN TT - FIND SYMBOL IN JOB SYMBOL TABLE
GETDD1: ADD D,R70+2 ; SKIP IF FOUND
JUMPGE D,CPOPJ
MOVE T,(D)
TLZ T,540000
TLZN T,200000 ;SYMBOL MUSTN'T BE KILLED
CAME T,TT ;MUST BE THE ONE WE WANT
JRST GETDD1
MOVE TT,1(D)
AOJA D,POPJ1
] ;END OF IFE ITS
GETDDG: MOVEI R,0 ;SQUOZ IN T, SEARCH "GLOBALSYM" TABLE,
TLZ T,740000 ; SKIP IF LOSE, LEAVE VALUE IN TT IF WIN
REPEAT LOG2LL5,[
CAML T,LAPFIV+<1←<LOG2LL5-.RPCNT-1>>(R)
ADDI R,1←<LOG2LL5-.RPCNT-1>
] ;END OF REPEAT LOG2LL5
CAME T,LAPFIV(R) ;IF DDTSYM REQUEST IS FOR A GLOBAL SYM
JRST POPJ1 ;THEN FIND IT IN THE LAPFIV TABLE, AND GET ITS
LSHC R,-2 ;GLOBALSYM INDEX FROM THE PERMUTATION TABLE
LSH F,-42
LDB TT,LDGET6(F) ;USE TABLE FROM FASLOAD
MOVE TT,LSYMS(TT)
POPJ P,
LGTSPC: MOVEM TT,GAMNT
ADD TT,@VBPORG ;INSURE THAT BPEND-BPORG > (TT)
SUB TT,@VBPEND
JUMPGE TT,GTSPC1 ;MUST RELOCATE, OR GET MORE CORE.
MOVE A,VBPEND ;ALREADY OK
MOVE TT,(A)
POPJ P,
PAGEBPORG: MOVE A,VBPORG ;MAKE SURE BPORG IS ON PAGE BOUNDRY
MOVE TT,(A) ;NUMERIC VALUE OF BPORG
TRNN TT,PAGKSM
POPJ P,
ADDI TT,PAGSIZ-1
ANDCMI TT,PAGKSM
CAMGE TT,@VBPEND
JRST PGBP4
PUSH FXP,TT ;NEW VALUE FOR BPORG
JSP T,SPECBIND
0 VNORET
AOS VNORET
PUSH P,CUNBIND
SUB TT,(A)
PUSHJ P,LGTSPC
JUMPE TT,[LERR [SIXBIT \NO CORE - PAGEBPORG!\]]
POP FXP,TT
PGBP4: JSP T,FIX1A
MOVEM A,VBPORG ;GIVE BPORG NEW PAGIFIED VALUE
POPJ P,
;MAKUBE MAKUNBOUND MAKUN1 $PURIFY FPURF0 FPURF3 ZEROP MINUSP PLUSP ZMP MINUS MNSFX
SUBTTL MAKUNBOUND AND PURIFY
;NEVER FLUSHES VALUE CELL
MAKUBE: %WTA [SIXBIT \UNCHANGEABLE VALUE - MAKUNBOUND!\]
MAKUNBOUND: ;SUBR 1 - FLUSH VALUE OF ATOMIC SYMBOL
BAKPRO
JSP D,SETCK ;MAKE SURE IT'S A SYMBOL
JUMPE A,MAKUBE
CAIN A,TRUTH
JRST MAKUBE
HLRZ T,(A)
MOVE B,(T)
IFE 0, NOPRO
IFN 0,[
TLNE B,300 ;CAN'T RECLAIM VALUE CELL IF PURE
JRST MAKUN1 ; OR IF COMPILED CODE NEEDS IT
TLZ B,-1
CAIN B,SUNBOUND ;CAN'T RECLAIM SUNBOUND!!!
POPJ P,
CAIL B,BXVCSG+NXVCSG*SEGSIZ
JRST MAKUN1 ;CAN'T RECLAIM CELL NOT IN VALUE CELL AREA
EXCH B,FFVC ;SO RECLAIM THE VALUE CELL ALREADY
XCTPRO
MOVEM B,@FFVC
MOVEI B,SUNBOUND ;USE SUNBOUND FOR A VALUE CELL
HRRM B,(T)
NOPRO
POPJ P, ;THAT'S ALL
] ;END IFN 0
MAKUN1: PUSH P,A ;MAKE SURE WE RETURN THE ARGUMENT
PUSH P,CPOPAJ
MOVEI B,QUNBOUND ;FALL INTO SET WITH "UNBOUND" VALUE
JRST SET+1
IFN USELESS,[
$PURIFY:
IFN D10, POPJ P,
IFN ITS+D20,[
LOCKTOPOPJ
SETZ AR1,
JSP T,FXNV1 ;GET TWO MACHINE NUMBERS
JSP T,FXNV2
ANDCMI TT,1777 ;PAGIFY FIRST DOWNWARD
IORI D,1777 ;PAGIFY SECOND UPWARD
CAMLE TT,D
LERR [SIXBIT \ARG 2 < ARG 1 - PURIFY!\]
JUMPE C,FPURF3 ;NULL THIRD ARG MEANS DEPURE
MOVE T,LDXLPL
HRRZ T,LDXPSP(T) ;GET ADR OF POSSIBLY PURE PAGE
CAIG TT,(T)
CAIGE D,(T)
SKIPA
SETZM LDXLPC ;FOR PURE PAGE JUST FORCE FREE COUNT TO ZERO
FPURF0: CAIE C,QBPORG
JRST FPURF3
PUSHJ P,FPURF7
JRST FPURF2
FPURF3: JSP R,IP0
POPJ P,
] ;END OF IFN ITS+D20
] ;END OF IFN USELESS
PGTOP UIO,[UTAPE, LAP, AND AGGLOMERATED SUBRS]
;;@ END OF ULAP 142
;;@ ARITH 90 STANDARD ARITHMETIC FUNCTIONS
;;; ***** MACLISP ****** STANDARD ARITHMETIC FUNCTIONS ***********
;;; **************************************************************
;;9 ** (C) COPYRIGHT 1980 MASSACH@+M))&↓∪∃')%)+)
↓∨A)∃π⊃≥∨1∨∂2@(T~∀vlr@@@(TTTT(A)⊃∪LA∪&A∧A%β⊂[∨≥→dA
∪→∀B@Qβ1_A/%%)&AI'%YλR@(TTTT(T~∀vlv@@@(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(T~∀~(~∀~∃A∂¬∨(↓β%∩~(~∀~∀m)⊃
A¬%∪)⊃5)∪ε↓!β∂
@Z@A¬%∪)⊃5)∪ε↓'+¬%=+)∪≥∃&~∀~)∪
≤A ∪∂≥+4Y6~∃M+¬))0∪β%∪Q⊃≠)%εA
+9π)∪∨9&A/∪Q⊂A¬∪≥≥+~ztb~∀~)5β%∨@t∪≠∨Y∩A$0d~∀∪)%'(Ai≠ ~∃5∪≥+'@t∪) iαA$YH~∃!→U' t∪5∨-∩↓$Xb~)5≠ t%∃' APY≥-'-∪ ~∀@∪∃%M(@\VH~∀∪∃→π_~∀%1π(@8VdQ$$~∀∪∃I'(A
¬→'
~(∪∃+≠A_A)(1)%+
$w
∨$↓≠∪≥+M ~∀∪)+≠!∞↓)(Y)I+
∩w→∨$A!1+' ~(∪∃+≠A
A)(1)%+
$w
∨$↓5%∨@~∀~∀4∃≠∪≥U&t∪∃M A(Y9-'↔∪@~∀∪∃I'(A≠9'¬∞~(∪∃%'PA≠≥'→0~∀∪5∨-≥&↓)(~∀%∃%'(↓
→∨βPb~∀~)≠≥'
`t∪πβ5≤A)(16h``@````@``a:4∀∪∃%M(Aβ¬M∨,~∀%≠∨-≥LA)(~(∪∃%'PA
∪0D~∀_wβ ⊂bA'+λbA'+λbbAαE&c
0↓αc&bDAαc&E¬εAβ '∨,~(~∃β ⊂btβ≠=-∩AHXb~∀%∃%'(↓'+∧bD~∃'+λbtβ≠=)≥∩AHXb~∃M+∧bbh∪∃' ↓(Y≥-M↔∪ ~(∪∃%'PAαc&E¬ε~∀%∃%'(↓αc&c→0~∧∪)+≠!_↓$X\VL~∀&4
⊃αR"beE9¬h4(εU∩NQα4b>εQλh(&~≤⊃αRQeYE 3QPPL**5"∧iIt
#⊃Q hT⊗~35π!∀833@
J⊗l+vp∞FB∧e*fT&⊂)⊗⊂XiXHCE`b⊃⊂**ε∀εE∧aPfg⊂*∃⊗-XoM→nD]Q'g*∃`g*⊂∃'P#bU⊂⊗Y"LZW⊂!⊗P b"FE∧e∃fh#@∀⊗ a)SkαE∧R))j⊃$l⊂⊃
AE&bbt%!+'⊃(A Yβ '∨,∩mββ≥(↓'+∧b↓
%∨~Ze
fT\Aβ≥⊂~∀@@%⊃%%∨L@QαR4∃αc&E¬≥hMαVN!¬↓2λ$KZε∩⊃
αε:⊃¬~V E∧26Iα∀J≡:Vhh(&B-~!αAd~B>B∀P4)↓J6.Z,Iα 2LqD4(LRV6BbαI1:$J_4(LRJNQαrB2V_h(4*∩N.YPJBVNBαA2λHIf.Z-∩~2>:α~J>hαε∩⊃
aαNV⊃ 1αε∃→04(Lj>Z⊗JαRQ1λH%mαlJ2VMbα"ε&∧
JQ1∧:∞⊃1∧*R
8hP&BV≤B)αAd→F∞≡u_4(εlzZ¬α∩b∧4(Lj>Z⊗JαRQ1h(&B-~")ααb
F∞|rL4(LBJJ5∧⊃1"¬Hh)↓MαVN"RαA2
t~>:LhP&*J≥!αB>∧∩(4(1n∞|jBIα$J~~¬¬α2VN
αR&6-~¬αF,z¬αF,z>Iα
*>ε-¬
V>ε[⊃αFV|
-D4Ph)mmZα6>
Jα∩&N∧
R∞!¬"ε
2-→α~>∩αR"∃¬2εJ&⎇*Mαε∀JR"⊗-"&
α⎇α⊗Jε$J6:LhP4(ε≤
&∧∀PI0$$KZV:V≤*⊃α↑⎇∩⊂4λLRJNQ∧:JN↑0h*∞>mαIh&U∩NQα=∩N↑`hP&*~≤a↓@4PJ*JN α≡J
5@4(εU∩NQα=∩~b h(&*∃~Qα≡∀∩λ4(hP&N.Mα∃αZT2VjhhP%@4PJ~N
∩α⊃2R h*∩&42¬h&≥* α⊃e"P4(LRJNQ¬α2>XhP&*J≥!αB1∀∩84(LRJNQ¬α1F
ph(&*∃~Qα
t"_4(hP&N.Mα∃αZT2VjhKY5M"∩H&N.M↓αV:d*NMα5*jiαD
∞-α$yα
∃¬αV22, 4(%H%m5∩BI$&⎇α⊗Jε$J>9αL"⊗:RM"e↓5¬2ε2V*α↑"⊗rα:=α
∩≡Mα<JR⊗8hP&~ε%⊃α⊃2% %m5
BI$&4b>εRLr≥αB|J:QαLrNRJ,~R&>rα~>I∧zB⊗J
"&>8hRB2V≤ h&ε$!α⊃2% %mAE⊃$&~MB⊗⊃α∧z&:Q∧J:NR∃*∞R&|qα~>∩α6B⊗∀
R&>pH4(&U∩NQα∧b>X%[ "I$L
∞R&|qα>9∧
J&RDj⊗R&~α>Z⊗∀22>\hP&*J≥!αB1∀∩8%m∩BI$&∀J≡:Vl∩⊗Iα~∞V6,bεR&|qα6⊗-"Mα~MB:V5∧
J≤4PJ*JN"αB1F∀p%mME⊃$&~MB:V5∧
∞∞Vm*2εRLz9α6,*RMα∀J≡:VjαεJ≤hP&*J≥!α
:∧`%mQE⊃$&
L::V5∧
∞∞Vm*2εRLz91α∀J≡:VjαεJ≤hP4(&≤
&∧4PID4(L26BI∧!2RPhRR&6-~¬h&LjV1α"bRP4PJ*JN"αR&6⎇04(εU∩NQα
JRST TIM1BN
JRST BNTIM
CAIA
1
FDVR D,TT
QUOA: JRST QUOAK
JRST QUOOV
JRST DV2BN
JRST DV1BN
JRST BNDV
¬
QUOOV: SKIPN RWG
↓ JRST OVBLER
↓AOS D,T
↓JFCH 8∞,PLOV
∪∃I'(A(Di
∀4∃#+∨¬⊗tβπ¬≠∀Aλ12``@@``@1cαt%@9z$$Lh~%J∧i≠∧,"
tLUDλDM∀~9∀|PQ!∩∧U*:B¬
Yx∀[λ⊃↔4$|X9b="λ→E 84∧iP∃dg⊂'S⊂)bj⊗∧¬
QUMAK2: IDIVM D,TT
∀∪5∨ ~∃∧!2RPhP&*J≥!αQE$*aH∀Ph"FV|
-EhL~ε69¬"Q2b~iD$¬]~⊗RizA5E%βiyαB⎇~&B~hR¬≤XK hPα(∩J*uλ⊃ ~Tq6AQ@∧a`Rg⊂ ∀T,1 ;SETZ/1 => SETZ
JRSP T⊃4EX"
JRST QUOAK2 9IDIVM WORKS FOR OTHER CASES
;T1,QUO .TIMES &DIF .PLUS T∩1 QUOTIENT TAMES DIFFERENCE @LUS T∩2 T20 T24 T4 T7 T7A↓(o0APk0bAPk⊂≥αT2b∞"Xα`∀∃(9βHh!Q%#αB2JY4⊃(
E∪S0i6α.si@&,P'S ¬ ARG GIVEJ -GIVE IPλA∨U(~∧∪5∨-
AQ(XJdαBI$%\r5αε∀:Mα≡M2⊗)↓hα≡&Z*α>FQ∧zB-(~D`:Th∩(Hαg*$U,FE∧R))j⊃$l⊂FBεEεE(jg]αiedh⊂P)⊗-Tjg`nB]aP%Qbh)P⊂b")"TiP'cλ#*g!U$gg∃,h"FB↔*$fQi]∧fSk"dP∀⊗*$fQi`FEαibj-∪P)"fQ&εE∧R))j⊂∃→_FE ∧IF: SKIPA R,[DIFFA]
.PLUS: MOVEI R,PLUSA
T21: MKVNI T,1
PUSH P,A
∪!U'⊂A 1∧~∧∪)%'(APd`~∀4⊃#+∨Q∪≥(h∪'↔∪AαA$Ym#+∨βt~∃)∪5&t∪5∨-∩↓$Y)∪5'α~(∪')i~A%5
_~∀%∃%'(↓(dd~) ∪
∃%≥π∀t@A'-∪!αAHY7 ∪→
β*~)!→+&h@@@@@@A≠=)β∩AHY!→+Mα~∃(Hdtββ=∃∂
APY(b~)(d`t%≠∨-
↓Y(∩$sλ@Z↓βππ+5+→β)∃λA-β1+
∀%β ∩↓XbQ@R∩∩wQ(@ZA91(AYβ→+
↓∪⊂→αdJ:∧4PJ"J1∧12P4U!IQhLj>Z:JαQ15
BQ$4PJ"J2~αP$$KZI↓5∧
∩∩J-~Mα>2α&:N%∩V∞RLz9α∩M~BεR≤AαRε∀b∀4(Lj>Z⊗jαQ2Be*M`$KZ→↓5∧
>
*rαB>&u"⊗Iα$yαεJ:αZ⊗∞$zIα>pαB∩0hP&6>4)α¬1k "→$hP&*NααQ2:5~.&@HInB&≤YαVA∧2&JN"αεJ≥∧
:⊃α$JNBε$~!αRzαεBB∀zBJ&
"∃α2|z@4(LRJNQ¬!H4(LRJNQ¬!L4(Lj>Z∃∧!2RPhP&*J≥!↓I2¬Y9-Fhh*QQPJ6>Z*α¬1"2I↓↓↓α↓↓↓↓βZ~2>
"&:≥¬α>&:"αεJ&$B6⊗RL→α2>⎇4(εU~AαQdrZN9~hP→*%≥"
F`hP→*%≥"
FPhUFw MD:@αk
%⊂K\iIt
$→hr¬≥YT∧m∧Z(∃$,D
tM$∧λdd|~I∀t: hUE"λ~$8h!≠∧≥α¬V2E∩⊃↔5≤\~∧¬,tHZ5~¬(jUUR λ∀≤Z
(U
,~(T h!∀∧U≥∧λ∩eTk(4DXQ*C<!_∀|∀)d∧2eFAPPL(h4bβ¬eE#<qQ%#=π!∀l⎇hT¬%"HA∪\- ~B∧
)~DDlZI∀~∧Iyuα¬y~DB∧_85,mYH∃$,D
deXQPU#{ε∪PM:X"¬αJ E-≠↓Q LU*:B∧4Ix∃#λQ!PU#yw LU:∧¬"eFysh!→%∃≥D
C=C⊃Q hU(k$≤D7!∀l⎇hT¬"dAQ LU*:Bβ∩H2r[≠QPPLhJe∩¬EJE h!→$4≤DπαeTk(4CHQ!∀l⎇iT¬"eAQ L≤→Xt*¬EH¬5Tj[%Ph!∀¬≤-K$∧"`Q+$5T9π∪PL**5"β%E∧
H⊃↔4$|dzB∧dZD∧4%j$∧4hX5"∧zhU∀4Izr⎇hHU∀4IzphPc]FT¬#2
Bd
¬F4¬#T
Cλ∃&H6H
F-⊃(
F-⊃6∧
-⊃+ε(⊃V _⊃3Hλi∩1⊃)D⊂0TaQA"B'7nh∩(iH⊂R(yU3"'84R5 ∧∪t∀dλStHλ 1sU)W/,(λ9sU∩)j11β!!"U
'!16⊂i∧⊃⊂(x⊂Uβ!!2Tt∧
∩1IIp5α'8S∪p*I3Qh
:3+λ h6∃λ ~h⊃R+λ1λ∀ y3Uβ!!16⊂i∧⊃⊂(x⊂Uβ!!2TTjD∃
c!!"U
G!0p2)d∀K∀*Yp#"A→TTu∧
P#!!4∃4i H∀λi⊂R1a↔qS∪h~∩3Qd
u3+∧ Q6∃∧
p4hλ)1sU)Q"B2J*uλ∃εq"C"JFP.B*
4r∩D
⊃Sλ)1t"!↔tt⊃(903λ λ0rhλitH∩Jλc"B)*Tuλ
Fc"B*85⊗HλEα".i_H⊂R(yU3(
Ish∪λ~Qq+∧
q(⊃hZβ"B)*Tuλ
Fp".d
3Q⊃*(S∪ueD∪Su∧ uQ4Hi∪uc!!"Ug!33uHT⊃∃
A".qI≠⊃1λ
r3U∧λ4R5 15∩(4∪∪sj↓"B2J*uλEH⊗kJf≠#"Uε⊗,B3)zQ(⊂%E⊃J#!!2Tt∧
∪UJ9r4β!!6⊂u∧εj∀J!↔q∩4jλ5⊂r∧
∪h⊂iyUQ4JD∀u3$
∪h⊂I_sU3!QB2TJ:λ∃&A.stλZP5⊃$ sH∃
yh⊃R+λ1λ∀ y3Uβ!!33uHY(∃∃¬H1q⊂JA"B3)zQ(∃
E⊃α.hi6⊃1∧
∪r3JD∀u3$λssUHZU⊃1∧
∪h⊃IIp5∩)hc"B)*tλ∃¬I1S∪h~α.p)hλ⊃3JH4H⊃IIp5∩)hh∪∪izβ"B)YuQ(λE∃∃β!!33uHT∃∃λ_q⊂U↓QB2TJ:λ∃
a⊃.r1IIp5λλ83SSjD∩⊂5HT∀q5∧ qUS t⊃S⊃aQC"Uε⊗∞B3)zQ(∃¬Hα.th~Q(∪iHλ∀u)Uλ∩U*:λ∩3H84q(
I⊃4Q$ 4h∪jh4QS q"B6λ:λ
%".sjλ4P5λT⊃R6λXλ∀∪i→Uβ"JF-⊃6ε'B2QH9λ∞ε∃∀J"'8r⊃0i4⊃StD uQ4Hi∪kλ _H∀sdλ∩4tλ~⊂rλ
Ih⊂R(yU3#!*-⊃'!03pI)H⊃K
F-#"JF-⊃6π!33uHT∃∃λA"U&H6.A~u0H
¬∀∪∃*7β"B)*Tuλλi6#!!"C"Hk∩1⊃)gB2Tj∧∃⊃K UL#!!2TTjD∀⊃∪ irC"AQQS∩(H3NB)*tλ∃¬HS∪UF⊃"B2J*uλ∀λI∪RrAQC"C!(0TnA→Ttλ
E∪UTi94β"A→TTu∧λ0TpHq"B4i94⊂(
E⊂qR+ε#"B)YuQ2$
⊃S x5#!!2U3*λq(∃
E∀⊃∪ i2c"A_p33D
∃⊗f≠mw!⊃.p0J4∪qH¬VJJLfUH∩4d Sh∪ yQq4DλR6∪JY#"B)*Tuλλ_TsuAQB33ji4h∃
A"B2J*uλ
E#"@↓GtQ3(→3Q⊃*$∀Q3(→,H⊃IIp5λλi6
λλi∪p5εD∩1VλZTH _R6λ∧I1R6ε∀ ⊃R+↓"C"J(302)h⊃4NA~q5⊗H$⊃K∀ J4nβ!!2Tt∧
∪UJ9r4β!!(∩TJ:λ∀Q)XR1b!↔pR1ij3#"A∀∀rr*λ(⊃
Jβ"B$∧∩Tt∧
∀Q)X24B!↔qS∪ij3(∩*4⊃4TIzH(
(5∃4Ijh∃∪d
∩⊃( jTrr*↓"B1+λrλ⊂%HB".hi4Tu∧λ4Qh ~h⊃R+ U3#!!2Tt∧
∪UJ9r4β!!(∩TJ:λ∀Q)X2,B!↔r1H
80ssHD∩4hλ)1sU)T∪SueD∪06(((⊃r*h(∪u*D⊃R4J:β"B$
rr4λ∀∃⊃↓QB(λ *tλ∃¬JQ30)~B".hi∪sU)T∩4hλZTStAQB2U)Z⊃(∃
E⊂T⊃ IRrC!!33uHT⊃∃
A"B4hZ⊗H∃
Eα".i→H∃∩λT⊂p4hT∪qH¬λ∀q*KH*%D∃∀V$
∪h∃i→C"B)_∩5H
E⊃β"A→TTu∧λR6!QC"THY02,G!4rr* λ∃¬λJ""':q3∪¬D∩1Hλi4Tu∧λ4Qh ~h∀q*KKλ⊂)hβ"B$ TTu∧λT⊃∪ irB"'4∀q0iyQλ⊂*(h∩4d¬tq5%λ∃∩λYH∀Q)X23QλZC"B(831(
E⊗mεε¬K".h
9∪u3λD⊂Q(ε¬λ∪SjD∀q5$#"B$ TTu∧λT⊃∪ irC"A→3uQ$λ+
⊂%⊃"B4
Zrλ∀¬H4L"!↔s54jD∀p5HT⊂4L!QB4∃*9∩H∀¬HSU∀J6"".j9r4∀dεH∃3IH4thλ)1sU)T∩4c!!4∪t∧
⊂4F⊃".h¬:q5⊗D¬∪tH
85⊗J!QB(∩J*uλ
t∩C!!4∪t∧
⊂4F⊃"B2J*uλ⊂Jλ∪∪Ri!"C"AQQS∪h~∞B5λKP(∀EJC"B$ 3uQ)∀∀K∃
*5∩β!!2Tt∧
∪UJ9r4β!!(∩TJ:λ⊃Sλ)1qC!!(∩TJ:λ⊃S x5
β!(R6
π!2U3*λ(∀K
λ∪∪Ri!.p4Ht∩4hλ→∀Q0(K(∪qD
Q45)~Q1λ
K4⊃+D∧∩1H∧(p3∪∧(1λ
I⊃3H
(5∃4Id∪∩4j∧⊂3Tjx4H∩)d⊂#"A~∪t∩D
α"'83∀q$ 1HλIhp3∪∧(1λ
(5∃4Id∪U3(ZR0hλ→Tuq*$∩3H
Jβ"C!(S∪p*F∞B2J:λ∃ _S∪p*A"B2JY4⊃(
%⊃S∪h~#"A~∪t∩D
β"AQC"R(k⊃4TG!5u⊂$p4Qd
∪shλ)1h⊃IzH⊃R+ U3(¬T∩1R+∧7#"A→TTu∧∧∩1R+ε#"I _R6∞A~∃4r∧
⊂qI≠#"DI1R6ε↔B2Tj∧∃⊃IJ∀rt↓QB(∀ z∩H∀¬A"B0h→3λ∃
E⊗lMεF¬K#"B$ TTu∧ 1V⊃**C"B)*tλ∃¬I1R6↓QB4∪j H∀↓QC"Iλi6∞B)*tλ∃¬IUTri~β"B$∧∀∪t $∀β!!(∀∪j H∀↓QB33ji(∃
Jβ"B(833λ
E⊗lMεF¬K#"B$ TTu∧λR6⊂I_c"B)*Tuλλi6C! ↓GkQtHX5λIH4th H4tt∧λtQ0*H4Tλλz∀L(λz∀N( Y3H∪(≠λ∪6λd∪6∀d 06⊃I→H∪0+π,Lc!!"KQj(05∞A_6⊂r∧λ+⊂C!%S⊃4j7B4∃*9λ∀λ⊃"B4
Zrλ∀¬HC"B)YuSR$
C!)⊃4tjπB4ri~⊂(⊂%Kpp3)D⊃KQ"QtHX5⊃4JπB2∀IKR(⊂%E⊂p3(tMOVEI R,GRSUCE
GTR1: MOVE F,T
AOJGE T,GTR9
HRRI A,TT
ADDI F,2(P)
HRLI F,(T)
PUSHJ FXP,SAV5M2
HRLI D,(JRST)
MOVEM D,CFAIL
HRLI R,(JRST)
MOVEM R,CSUCE
MOVEI R,COMPR
MOVEM A,GRESS0
JRST T24
GTR9: MOVEI D,QMAX+1(A)
SOJA T,WNALOSS
MIN: SKIPA A,[CAML D,1]
MAX: HRLOI A,(CAMG D,)
AOJE T,NMCK0
MOVEI D,MXF
MOVEI R,MXS
SOJA T,GTR1
MXF: MOVE AR1,AR2A
SKIPA D,TT
MXS: MOVE AR2A,AR1
AOBJN F,GRSUC1
MAXFIN: MOVEI B,(AR1)
PUSHJ FXP,RST5M2
2DIF JRST @(B),MAX923,QFIXNUM
MAX923: T14EX ;FIXNUM
T7X ;FLONUM
T13X ;BIGNUM
;GRSUC2 GRSUC1 GRS923 GRSUCE GRSFIN GRSF1 GRFAIL GRSWF GRSWX
GRSUC2: MOVE D,TT
GRSUC1:
2DIF JRST @(AR2A),GRS923,QFIXNUM
GRS923: T15 ;FIXNUM
T4 ;FLONUM
T12 ;BIGNUM
GRSUCE: AOBJN F,GRSUC2
GRSFIN: MOVEI A,TRUTH
GRSF1: PUSHJ FXP,RST5M2
SUB P,PLUS8
POPJ P,
GRFAIL: MOVEI A,NIL
JRST GRSF1
GRSWF: SKIPA AR1,[QFLONUM]
GRSWX: MOVEI AR1,QFIXNUM
MOVE AR2A,AR1
JRST GRESS0
] ;END OF ARITH OPS WITH BIGNUM==1
;ADD1 SUB1 REMAINDER MINUS ABS MINUSP PLUSP ZEROP
IFE BIGNUM,[
SUBTTL ARITHMETIC FUNCTIONS WITH BIGNUM==0
ADD1: JSP T,FLTSKP
AOJA TT,FIX1
FAD TT,[1.0]
JRST FLOAT1
SUB1: JSP T,FLTSKP
SOJA TT,FIX1
FSB TT,[1.0]
JRST FLOAT1
REMAINDER: JSP T,FXNV1
JSP T,FXNV2
IDIV TT,TT+1
MOVE TT,TT+1
JRST FIX1
MINUS: JSP T,FLTSKP
SKIPA T,CFIX1
MOVEI T,FLOAT1
MOVNS TT
JRST (T)
ABS: JSP T,FLTSKP
SKIPA T,CFIX1
MOVEI T,FLOAT1
MOVMS TT
JRST (T)
MINUSP: SKIPA R,[JUMPGE TT,FALSE]
PLUSP: MOVE R,[JUMPLE TT,FALSE]
JSP T,FLTSKP
JFCL
XCT R
JRST TRUE
ZEROP: JSP T,FLTSKP
JFCL
JUMPE TT,TRUE
JRST FALSE
;$IFIX $FIX FIX4 FLOAT FIXFLO FLOAT3
$IFIX:
$FIX: TDZA R,R
MOVEI R,TRUTH
JSP T,FIXFLO
TLNN T,FL ;FIXFLO LEFT TYPE BITS IN T
JRST FIX4
JSP T,IFIX
JUMPE R,FIX1
POPJ P,
FIX4: JUMPE R,PDLNKJ
POPJ P,
FLOAT: TDZA R,R
MOVEI R,TRUTH
JSP T,FIXFLO
TLNN T,FX ;FIXFLO LEFT TYPE BITS IN T
JRST FIX4
JSP T,IFLOAT
JUMPE R,FLOAT1
POPJ P,
FIXFLO: PUSH P,A
LSH A,-SEGLOG
HLL T,ST(A) ;LEAVES TYPE BITS IN T
TLNN T,FX+FL
JRST FLOAT3
POP P,A
MOVE TT,(A)
JRST (T)
FLOAT3: POP P,A
%WTA NMV3
JRST FIXFLO
;MIN MAX MINMAX .GREAT .LESS LESSP GREATERP MNMX1 MNMX9 GRESS GRUSE
MIN: SKIPA A,[CAMLE F,1]
MAX: HRLOI A,(CAMGE F,)
AOJE T,NMCK0
MOVEI D,MINMAX
SOJA T,MNMX1
MINMAX: XCT MNMX0 ;CAMG F,TT OR CAML F,TT
MOVE F,TT
JRST PLUS4
.GREAT: EXCH A,B
.LESS: PUSH P,A
PUSH P,B
MOVNI T,2
LESSP: SKIPA A,[CAML F,2]
GREATERP:
HRLZI A,(CAMG F,)
MOVEI D,GRESS
MNMX1: HRLI D,(JRST)
MOVEM D,PLUS3
MOVNM T,PLUS8
MOVE R,T
AOJGE T,MNMX9
HRRI A,TT
MOVEM A,GRESS0 ;THIS IS ALSO MNMX0
ADD R,P
MOVE A,1(R)
SETOM PLUS0
JSP T,FLTSKP
SETZM PLUS0
MOVE F,TT
AOJA R,PLUS7
MNMX9: MOVEI D,QMAX+1(A)
SOJA T,WNALOSS
GRESS: XCT GRESS0
JRST GRUSE
MOVE F,TT
CAME P,R
JRST PLUS9
SUB P,PLUS8
JRST TRUE
GRUSE: SUB P,PLUS8
JRST FALSE
;.DIF DIFFERENCE DIF2 .QUO QUOTIENT QUO2 QUO3
.DIF: PUSH P,A
PUSH P,B
MOVNI T,2
DIFFERENCE: MOVE R,[JRST DIF2]
MOVE D,R
SOJA D,DIF1
SKIPA D,[FSBR F,TT]
DIF2: MOVE D,[SUB F,TT]
MOVEM D,PLUS3
MOVE D,[FSBR F,TT]
MOVEM D,PLUS6
MOVE F,TT
JRST PLUS4
.QUO: PUSH P,A
PUSH P,B
MOVNI T,2
QUOTIENT: MOVE R,[JRST QUO2]
MOVE D,R
SOJA D,QUO1
SKIPA D,[FDVR F,TT]
QUO2: MOVE D,[JRST QUO3]
MOVEM D,PLUS3
MOVE D,[FDVR F,TT]
MOVEM D,PLUS6
MOVE F,TT
JRST PLUS4
QUO3: CAIN TT,1
CAME F,[400000,,0]
CAIA
SKIPA TT,F
IDIVM F,TT
EXCH F,TT ;ALL THIS LOSSAGE SO THAT F+1 WONT BE DISTURBED
JFCL 8.,.+2
JRST PLUS4
SKIPN RWG
JRST OVFLER
SKIPGE TT
SOSA F,TT
AOS F,TT
JFCL 8.,OVFLER
JRST PLUS4
;.TIMES TIMES QUO1 .PLUS PLUS DIF1 PLUS1 PLUS7 PLUS5 PLUS3A PLUS4 PLUS9 PLUS2 PLUS2A PLUS2V T7O0
.TIMES: PUSH P,A
PUSH P,B
MOVNI T,2
TIMES: MOVE R,[IMUL F,TT]
MOVE D,[FMPR F,TT]
QUO1: MOVEI F,1
JRST PLUS1
.PLUS: PUSH P,A
PUSH P,B
MOVNI T,2
PLUS: MOVE R,[ADD F,TT]
MOVE D,[FADR F,TT]
DIF1: MOVEI F,0
PLUS1: MOVNM T,PLUS8
JUMPE T,PLUS2
ADD T,P
MOVEM R,PLUS3
SETZM PLUS0
MOVE R,T
PLUS7: MOVEM D,PLUS6
HRLS PLUS8
JRST 2,@[PLUS4]
PLUS5: MOVE D,PLUS6 ;FAD F,TT OR FMP F,TT OR ETC.
MOVEM D,PLUS3
SETOM PLUS0
EXCH F,TT
JSP T,IFLOAT
EXCH F,TT
PLUS3A: XCT PLUS3
PLUS4: CAMN P,R
JRST PLUS2
PLUS9: MOVE A,1(R)
JSP T,FLTSKP
JRST .+4
SKIPE PLUS0
AOJA R,PLUS3A
AOJA R,PLUS5
SKIPE PLUS0
JSP T,IFLOAT
AOJA R,PLUS3A
PLUS2: MOVE TT,F
JFCL 8.,PLUS2V
PLUS2A: SUB P,PLUS8 ;FALL THRU TO MAKNUM
SKIPN PLUS0
JRST FIX1
JRST FLOAT1
PLUS2V: JSP T,T7O0
JRST PLUS2A
] ;END OF ARITH OPS WITH BIGNUM=0
T7O0: SKIPE VZUNDERFLOW ;NON-NIL => FLOATING UNDERFLOW
TLNN T,100 .SEE %PCFXU ; YIELDS ZERO RESULT INSTEAD OF ERROR
JRST UNOVER
MOVEI TT,0
JRST (T)
;EXPT XPTLL XPT.X XPTLX XPTLX1 XPTLX2 XPTOV
SUBTTL GENERAL EXPONENTIATION ROUTINE
EXPT: JRST 2,@[.+1] ;SUBR 2 - COMPUTE A↑B
EXCH A,B ;FIND TYPE OF EXPONENT FIRST
IFN BIGNUM,[
JSP T,NVSKIP ;EXPONENT IS . . .
JRST XPT.B ;IT'S A BIGNUM
JRST XPT.X ;IT'S A FIXNUM
EXCH A,B ;IT'S A FLONUM
JSP T,NVSKIP ;BASE IS . . .
JRST XPTBL ;BIGNUM BASE
JSP T,IFLOAT ;FIXNUM BASE - FLOAT IT
] ;END OF IFN BIGNUM
IFE BIGNUM,[
JSP T,FLTSKP ;EXPONENT IS . . .
JRST XPT.X ;IT'S A FIXNUM
EXCH A,B ;IT'S A FLONUM
JSP T,FLTSKP ;BASE IS . . .
JSP T,IFLOAT ;FIXNUM BASE - FLOAT IT
] ;END OF IFE BIGNUM
XPTLL: PUSH P,CFLOAT1 ;FLONUM↑FLONUM
SKIPN (B) ; X↑0.0 => 1.0
JRST 1.0PJ
JUMPE TT,CPOPJ ; 0.0↑X => 0.0
PUSHJ P,LOG.. ;SO COMPUTE FLONUM↑FLONUM BY USING THE FORMULA:
FMPR TT,(B) ; B (B LOG A)
JRST EXP.. ; A = E
XPT.X: EXCH A,B ;FIXNUM EXPONENT FOUND
MOVE D,TT
BG$ JSP T,NVSKIP ;CHECK BASE FOR FIXNUM EXPONENET
BG$ JRST XPTBX ;BIGNUM BASE
BG% JSP T,FLTSKP
JRST XPTXX0 ;FIXNUM BASE
PUSH P,CFLOAT1 ;FLONUM BASE => FLONUM RESULT
XPTLX: JSP R,XPTZL ;CHECK EASY CASES
SKIPA R,TT ;NORMAL CASE - USE THE MULTIPLY
XPTLX1: FMPR R,R ; AND SQUARE HACK
TRNE D,1
FMPR T,R
JFCL 8,XPTOV ;CHECK FOR OVERFLOW
LSH D,-1
JUMPN D,XPTLX1
XPTLX2: MOVE TT,T ;ANSWER GOES IN TT
POPJ P,
XPTOV: JSP T,T7O0
POPJ P,
;XPTXX0 XPTXX XPTXX5 XPTXX3 XPTXX4 2XPT 2BGXPT 2BGXP1
XPTXX0: PUSHJ P,XPTXX
JRST FIX1
POPJ P,
;;; SKIPS IF ANSWER IS A BIGNUM
XPTXX: JSP R,XPTZX ;FIXNUM↑FIXNUM - CHECK EASY CASES
JUMPL D,ZPOPJ
IFE BIGNUM,[
SKIPA R,TT
XPTXX5: IMUL R,R
TRNE D,1
IMUL T,R
LSH D,-1
JUMPN D,XPTXX5
MOVE TT,T
JFCL 8,XPTOV
POPJ P,
] ;END OF IFE BIGNUM
IFN BIGNUM,[
SKIPGE R,TT
JRST XPTXX3
JFFO R,.+1
LSH R,1(F)
JUMPE R,2XPT ;XPTZX HAS CHECKED BASE, SO IT'S NOT 0/1/-1
MOVE R,TT
XPTXX3: MOVE TT,T ;HERE YOU GO FANS, YOU BASIC MULTIPLY BY SQUARING LOOP.
MOVEM D,NORMF
TRNE D,1
IMUL T,R
JFCL 8.,EXPT6C
LSH D,-1
JUMPN D,XPTXX4
MOVE TT,T
POPJ P,
XPTXX4: MOVE F,R
IMUL R,R
JFCL 8.,EXPT6B
JRST XPTXX3
2XPT: MOVNI F,(F)
IMULI D,36.-1(F)
MOVEI TT,1
CAIL D,35.
JRST 2BGXPT
ASH TT,(D)
POPJ P,
2BGXPT: IDIVI D,35.
ASH TT,(R)
JSP T,FIX1A
PUSHJ P,NCONS
2BGXP1: MOVE B,CIN0
PUSHJ P,XCONS
SOJG D,2BGXP1
PUSHJ P,BGNMAK
JRST POPJ1
] ;END OF IFN BIGNUM
;XPTBL XPT.B XPTZX0 EXPT6B EXPT6C EXPT1A EXPT1 EXPT3 EXPT2 EXPT4 XPTBX XPTBX1
IFN BIGNUM,[
XPTBL: PUSH P,A ;BIGNUM↑FLONUM
PUSHJ P,FLBIG ;SO FLOAT THE BIGNUM, THEN USE
SUB P,R70+1 ; FLONUM↑FLONUM
JRST XPTLL
XPT.B: EXCH A,B ;BIGNUM FOUND AS EXPONENT
HLRZ D,(TT)
HRRZ D,(D)
TLNE TT,400000
TLO D,400000 ;D GETS SIGN-BIT IN 4.9, RANDOM-NON-ZERO-BIT IN 3.1
TLO D,1 ;AND ODDP-BIT IN 1.1
JSP T,NVSKIP
JRST OVFLER
JRST XPTZX0
PUSH P,CFLOAT1
JSP R,XPTZL ;FLONUM↑BIGNUM -- CHECK EASY CASES
MOVMS TT
CAML TT,T ;T SUPPOSED TO HAVE 1.0
JRST OVFLER
SKIPN VZUNDERFLOW
JRST UNFLER
JRST ZPOPJ ;PUTS A RANDOM ZERO IN TT, AND POPJS
XPTZX0: PUSH P,CFIX1
JSP R,XPTZX ;FIXNUM↑BIGNUM -- CHECK EASY CASES
JUMPL D,ZPOPJ ;N↑-<M> ==> 0
JRST OVFLER
;;; MUST SKIP 1 AS POPJ SINCE ONLY COME HERE FROM XPTXX
EXPT6B: MOVE R,F ;RESTORE R, AND LEAVE OLD D IN NORMF
EXPT6C: PUSHJ FXP,SAV5 ;EXPECTS RUNNING SQUARER IN R, ACCUMULATION IN TT
PUSHJ P,BNCV ;NOTE THAT D CANT BE ZERO WHEN WE COME HERE
MOVE B,A ;ACCUMULATION AS BIGNUM IN B
MOVE TT,R
PUSHJ P,BNCVTM
MOVE A,TT ;RUNNING SQUARER IN A
EXPT1A: MOVEM A,-4(P)
MOVE D,NORMF
EXPT1: TRNN D,1 ;-4(P) AND A HAVE RUNNING SQUARER, B HAS ACCUMULATION
JRST EXPT2
MOVEM D,NORMF
PUSHJ P,BNMUL
MOVE D,NORMF
EXCH A,-4(P)
EXPT3: LSH D,-1 ;-4(P) NOW HAS ACCUMULATION, A HAS RUNNING SQUARER
JUMPE D,EXPT4
MOVE B,A
MOVEM D,NORMF
PUSHJ P,BNMUL
MOVE B,-4(P)
JRST EXPT1A
EXPT2: MOVEM B,-4(P)
JRST EXPT3
EXPT4: JSP R,RSTR5
PUSHJ P,BNCONS
JRST POPJ1
XPTBX: SOJG D,XPTBX1 ;BIGNUM↑FIXNUM
AOJG D,CPOPJ ; X↑1 => X
MOVEI A,IN0
JUMPL D,CPOPJ ; X↑-N => 0
AOJA A,CPOPJ ; X↑0 => 1 ;HACK HACK - IN0 => IN1
XPTBX1: MOVE A,TT ;EXPONENT > 1
SOS (P) ;COUNTERACT POPJ1 IN EXPT1
PUSHJ FXP,SAV5
MOVE B,BN.1 ;1, STORED AS A BIGNUM
AOJA D,EXPT1 ;RESTORE VALUE OF D
] ;END OF IFN BIGNUM
;XPTII XPTI$ XPTZL 1.0PJ XPTZL1 XPTZL2 XPTZX XPTZX1 XPTM1
XPTII: PUSH P,CFIX1 ;SUBR 2 NCALLABLE (REAL NAME: ↑)
JSP T,FXNV1
JSP T,FXNV2
JRST 2,@[.+1]
PUSHJ P,XPTXX
POPJ P,
LERR [SIXBIT \RESULT LARGER THAN FIXNUM - #↑!\]
XPTI$: PUSH P,CFLOAT1 ;SUBR 2, NCALLABLE (REAL NAME: ↑$)
JSP T,FLNV1
JSP T,FXNV2
JRST 2,@[XPTLX] ;OVERFLOW MUST BE CLEAR ON ENTRY TO XPTLX
XPTZL: JUMPN TT,XPTZL1 ;FLONUM BASE (CFLOAT1 ON PDL)
SKIPN D ; 0.0↑X => 0.0,
1.0PJ: MOVSI TT,(1.0) ; EXCEPT 0.0↑0.0 => 1.0
POPJ P,
XPTZL1: JUMPGE D,XPTZL2 ; -Y 1 Y
MOVSI T,(1.0) ; X = (---)
FDVR T,TT ; X
MOVE TT,T
MOVMS D
XPTZL2: CAMN TT,[-1.0]
JRST XPTM1 ;BASE IS -1.0
CAMN TT,[1.0]
POPJ P, ;BASE IS 1.0
MOVSI T,(1.0) ;T GETS 1.0 IN ANY CASE
JRST (R)
XPTZX: JUMPN TT,XPTZX1 ;FIXNUM BASE - PDL HAS CFIX1
JUMPN D,CPOPJ ; 0↑X => 0,
AOJA TT,CPOPJ ; EXCEPT 0↑0 => 1
XPTZX1: CAMN TT,XC-1 ;BASE = -1
JRST XPTM1
CAIN TT,1 ;FOR BASE = 1, ALSO EASY
POPJ P,
MOVEI T,1 ;T GETS 1 IN ANY CASE
JRST (R)
XPTM1: TRNN D,1 ;FOR BASE = -1 OR -1.0, SIMPLY
MOVMS TT ; ASCERTAIN PARITY OF EXPONENT
POPJ P,
;RANDOM RAND1 IRAND IRAND0 IRAND3 IRAND5 RNDM1 RNDM2 RNDM0 RNDM1A RNDM2A
SUBTTL RANDOM
RANDOM: SKIPA F,CFIX1
MOVEI F,CPOPJ
AOJG T,RNDM0
AOJLE T,RAND9
POP P,A
JUMPE A,IRAND ;ONE ARG OF NIL CAUSES INITIALIZATION
PUSH P,F
JSP F,RNDM0
MOVE D,TT ;ANY OTHER ARGUMENT SHOULD BE A
JSP T,FXNV1 ; FIXNUM N, AND WE GENERATE A
JUMPLE TT,RAND1 ; FIXNUM IN THE RANGE 0 TO N-1
TLZ D,400000
IDIV D,TT
SKIPA TT,R
RAND1: SETZ TT, ;RETURN 0 FOR NON-POSITIVE ARGUMENTS
POPJ P,
IRAND: MOVE TT,[171622221402] ;A GOOD STARTING NUMBER
IRAND0: MOVEI T,LRBLOCK-1 ;INITIALIZE THE RANDOMNESS
IRAND3: MOVE D,TT
MULI D,3125.
DIV D,[377777777741]
MOVEM R,TT
TLCE T,400000
JRST IRAND5
HRLM R,RBLOCK(T)
JRST IRAND3
IRAND5: HRRM R,RBLOCK(T)
SOJGE T,IRAND3
MOVEI D,ROFSET
MOVEM D,RNOWS
RNDM1: MOVEI T,LRBLOCK-1
MOVEM T,RBACK
JRST RNDM1A
RNDM2: MOVEI D,LRBLOCK-1
MOVEM D,RNOWS
JRST RNDM2A
RNDM0: SOSGE T,RBACK ;BASIC COMBINATION FOR RANDOMNESS
JRST RNDM1
RNDM1A: SOSGE D,RNOWS
JRST RNDM2
RNDM2A: MOVE TT,RBLOCK(T)
ADDB TT,RBLOCK(D)
JRST (F)
;HAULONG .HAU 4HAU 3HAU1 1HAU 2HAU 3HAU
SUBTTL HAULONG FUNCTION
HAULONG: PUSH P,CFIX1
.HAU:
BG$ JSP T,NVSKIP
BG$ JRST 1HAU
BG% JSP T,FLTSKP
JRST 4HAU
%WTA FXNMER
JRST .HAU
4HAU: MOVM D,TT
MOVEI TT,35.+1
3HAU1: JFFO D,.+2
TDZA TT,TT
SUBI TT,(R)
POPJ P,
IFN BIGNUM,[
1HAU: MOVEI F,(TT) ;RECEIVES BN HEADER IN TT
HRRZ R,(F) ;LEAVES HAULONG IN TT, PTR TO NEXT TO LAST
MOVEI TT,35.+1 ;IN F, CNT OF # OF ZEROS FOR LAST WD IN R
JUMPE R,3HAU
2HAU: ADDI TT,35.
HRRZ D,(R)
JUMPE D,3HAU
MOVEI F,(R)
MOVEI R,(D)
JRST 2HAU
3HAU: HLRZ T,(R)
MOVE D,(T)
JRST 3HAU1
] ;END OF IFN BIGNUM
;HAIPART 0HAI 0HAI1 0HAI2 0HAI3 3HAI 3HAI1 3HAI2 3HAI3
SUBTTL HAIPART FUNCTION
HAIPART:
IFN BIGNUM,[
JSP T,NVSKIP
JRST 1HAI
]
IFE BIGNUM,
JSP T,FLTSKP
JRST 0HAI
%WTA FXNMER
JRST HAIPART
0HAI: MOVM TT,TT
JFFO TT,.+2
JRST 0POPJ ;FOR ZERO ARG, JUST RETURN ARG!
HRREI F,-36.(D) ;-<# OF BITS IN ARG> NO IN AC F
JSP T,FXNV2
JUMPLE D,0HAI1
ADD D,F
JUMPG D,PDLNKJ ;MORE DIGITS REQUESTED THAN ARE AVAILABLE
LSH TT,(D) ;GETTING HAI PART INTO AC TT
JUMPGE TT,FIX1
IFN BIGNUM, JRST ABSOV
IFE BIGNUM, JRST OVFLER
0HAI1: JUMPE D,0POPJ ;RETURNS A FIXNUM ZERO
CAMGE D,F
JRST 0HAI3
MOVNS D
0HAI2: SETO F, ;REQUESTING LOW PART BY NEG COUNT
LSH F,(D) ;CREATE MASK TO LET PROPER BITS THRU
ANDCM TT,F
JRST FIX1
0HAI3: JUMPGE TT,PDLNKJ
IFN BIGNUM, JRST ABSOV
IFE BIGNUM, JRST OVFLER
IFN BIGNUM*USELESS,[
3HAI: MOVNS D ;ACTUALLY ASKING FOR LOW PART
CAILE D,35.
JRST 3HAI1
JUMPE D,0POPJ
HLRZ TT,(TT)
MOVE TT,(TT)
JRST 0HAI2
3HAI1: PUSH FXP,D
PUSHJ P,1HAU
POP FXP,D
CAIL D,(TT)
JRST PDLNKJ
IDIVI D,35.
PUSH P,C
MOVEI F,C ;F WILL BE POINTER TO LAST OF FORMNG LIST
MOVE C,(A) ;C HOLDS POINTER TO FNAL RESULT
MOVEI B,(C) ;B GOES CDR'ING DOW INPUT ARG
3HAI2: HLRZ TT,(B)
MOVE TT,(TT)
PUSHJ P,C1CONS
HRRM A,(F)
MOVEI F,(A)
HRRZ B,(B)
SOJG D,3HAI2 ;D HOLDS HOW MANY WORDS TO USE
JUMPE R,3HAI3 ;R HOLDS HOW MANY LEFT OVER BITS FROM D WORDS
HLRZ TT,(B)
MOVE TT,(TT)
MOVNI D,1
LSH D,(R)
ANDCM TT,D
JUMPE TT,3HAI3
PUSHJ P,C1CONS
HRRM A,(F)
3HAI3: MOVEI A,(C)
PUSH P,AR1
PUSHJ P,BNTRUN ;IN LOPART CASE, MAY NEED TO GET
POP P,AR1 ; RID OF LEADING ZEROS
POP P,C
HRRZ B,(A) ;MAYBE WHAT WE HAVE IS SHORT ENOUGH
JUMPN B,BGNMAK ; TO FIT IN A FIXNUM; IF SO, WE CAN
JRST CAR ; USE ONE WE JUST CONSED FOR BIGNUM!
] ;END OF IFN BIGNUM*USELESS
;LNGTER LENGTH LNGTH0 LNG1A LNGTH1 LNGTE1 LNGTH2 LNGTH5 LNGTH6 BIGP
SUBTTL LENGTH AND BIGP FUNCTIONS
LNGTER: WTA [NON-LIST - LENGTH!]
JRST LNGTH0
LENGTH: SKIPA T,CFIX1
MOVEI T,CPOPJ
LNGTH0: SKIPE V.RSET
JRST LNGTH5 ;FOR *RSET MODE, USE SLOW ERROR-CHECKING LOOP
LNG1A: MOVEI TT,777777 .SEE $LISTEN ;SAVES R
LNGTH1: JUMPE A,LNGTH2
HRRZ A,(A)
SOJG TT,LNGTH1
LNGTE1: MOVEI TT,(A) ;MAKNUM
JSP T,FXCONS
WTA [LIST IS CIRCULAR - LENGTH!]
JRST LNGTH0
LNGTH2: XORI TT,777777 ;ONE'S COMPLEMENT!
JRST (T)
LNGTH5: MOVEI TT,777777
LNGTH6: SKIPN D,A ;DONE IF NIL SEEN
JRST LNGTH2
LSH D,-SEGLOG
SKIPL ST(D) .SEE LS
JRST LNGTER
HRRZ A,(A)
SOJG TT,LNGTH6
JRST LNGTE1
IFE BIGNUM, BIGP==:FALSE
IFN BIGNUM,[
BIGP: PUSHJ P,TYPEP ;SUBR 1 - IS IT A BIGNUM?
CAIE A,QBIGNUM
SETZ A, ;RETURNS T OR NIL
JRST NOTNOT
] ;END OF IFN BIGNUM
;BOOLE BOOLL BOOLG BOOL1 ODDP1 ODDP ODDP2 ODDP21 ODDP4 ODDP3
SUBTTL BOOLE AND ODDP FUNCTIONS
BOOLE: SKIPA F,CFIX1
MOVEI F,CPOPJ
MOVE R,T
ADDI R,2(P)
HRLI T,-1(T)
MOVEM T,PLUS8
MOVE A,-1(R)
JSP T,FXNV1
DPB TT,[350400,,BOOLI]
PUSHJ P,BOOLG
MOVE D,TT
BOOLL: PUSHJ P,BOOLG
XCT BOOLI
JRST BOOLL
BOOLG: CAIL R,(P)
JRST BOOL1
MOVE A,(R)
JSP T,FXNV1
AOJA R,CPOPJ
BOOL1: ADD P,PLUS8
POP P,B
JRST (F)
ODDP1: %WTA FXNMER
ODDP: SKOTT A,FX
IFN BIGNUM, JRST ODDP4
IFE BIGNUM, JRST ODDP1
ODDP2:
MOVE TT,(A)
ODDP21: TRNN TT,1
JRST FALSE
JRST TRUE
IFN BIGNUM,[
ODDP4: TLNN TT,BN
JRST ODDP1
MOVE TT,(A)
ODDP3: HLRZ TT,(TT)
MOVE TT,(TT)
JRST ODDP21
] ;END OF IFN BIGNUM
;$FSC $ASH $ROT $LSH SHIFTX SHIFTY $LOADB %LOADB .LODB1 $LDB %LDB .LDB2 $DEPOB %DEPOB .DPOB1 $DPB %DPB .DPB1 .DPB2 .GCD .GCD0 .GCD3 .GCD1 .GCD2 GCD0 GCD GCDXX
SUBTTL FSC, ROT, LSH, AND GCD FUNCTIONS
$FSC: JSP T,FLTSKP ;SUBR 2
JFCL
JSP T,FXNV2
CAIG D,-1
FSC TT,(D)
JRST FLOAT1
$ASH: HRLZI R,(ASH TT,(D))
JRST SHIFTX
$ROT: SKIPA R,[ROT TT,(D)] ;SUBR 2
$LSH: HRLZI R,(LSH TT,(D)) ;SUBR 2
SHIFTX: PUSH P,CFIX1
SHIFTY: JSP T,FLTSKP
JFCL
JSP T,FXNV2
XCT R
POPJ P,
$LOADB: PUSH P,CFIX1
JSP T,FXNV1
JSP T,FXNV2
JSP T,FXNV3
JRST .LODB1
%LOADB: PUSH P,CFIX1
.LODB1: MOVE D,(C)
ROT D,-6
HRR D,(B)
ROT D,-6
MOVE TT,(A)
JRST .LDB2
$LDB: PUSH P,CFIX1
JSP T,FXNV1
JSP T,FXNV2
EXCH TT,D
LSH D,30
JRST .LDB2
%LDB: PUSH P,CFIX1
MOVE D,(A)
MOVE TT,(B)
.LDB2: HRRI D,TT
LDB TT,D
POPJ P,
$DEPOB: PUSH P,CFIX1
JSP T,FXNV1
JSP T,FXNV2
JSP T,FXNV3
JSP T,FXNV4
JRST .DPOB1
%DEPOB: PUSH P,CFIX1
.DPOB1: MOVE R,(AR1)
MOVE D,(C)
ROT D,-6
HRR D,(B)
ROT D,-6
MOVE TT,(A)
JRST .DPB2
$DPB: PUSH P,CFIX1
JSP T,FXNV1
JSP T,FXNV2
JSP T,FXNV3
LSH D,30
JRST .DPB1
%DPB: PUSH P,CFIX1 ;Args = ( newbyte position←30.+size←24. word )
MOVE D,(B)
.DPB1: MOVE TT,(C)
MOVE R,(A)
.DPB2: HRRI D,TT
DPB R,D ;puts result in TT
POPJ P,
IFN USELESS,[
IFE BIGNUM, GCD:
.GCD: PUSH P,CFIX1 ;SUBR 2 - NCALLABLE
JSP T,FXNV1 ;GCD OF FIXNUM ARGS ONLY
JSP T,FXNV2
MOVM TT,TT ;GCD(-X,Y) = GCD(X,Y)
MOVM D,D ;GCD(X,-Y) = GCD(X,Y)
.GCD0: JUMPE TT,.GCD2 ;GCD(0,Y) = ABS(Y)
JUMPE D,CPOPJ ;GCD(X,0) = ABS(X)
CAMGE D,TT
EXCH D,TT
JRST .GCD1
.GCD3: MOVE D,TT
MOVE TT,R
.GCD1: IDIV D,TT ;GOOD OLD EUCLIDEAN ALGORITHM
JUMPN R,.GCD3
POPJ P,
.GCD2: MOVE TT,D
POPJ P,
IFN BIGNUM,[
GCD0: %WTA FXNMER ;NON-FIXNUM VALUE
GCD: SETZ R, ;SUBR 2 - GCD, EVEN OF BIGNUM ARGS
JSP T,NVSKIP
TRO R,1 ;TURN ON BIT IF BIGNUM
JRST .+2 ;FIXNUMS ARE OK TOO
JRST GCD0 ;DON'T LIKE FLONUMS
EXCH A,B
MOVE D,TT
JSP T,NVSKIP ;NOW CHECK OTHER ARG
TRO R,2
JRST .+2
JRST GCD0 ;I TOLD YOU, I DON'T LIKE FLONUMS!
JRST .+1(R) ;SO FIGURE OUT THIS MESS
JRST GCDXX ;FIXNUM AND FIXNUM
EXCH A,B ;FIXNUM AND BIGNUM
JRST GCDBX ;BIGNUM AND FIXNUM
JRST GCDBG ;BIGNUM AND BIGNUM
GCDXX: MOVM TT,TT ;GCD OF TWO FIXNUMS
JUMPL TT,GCDOV1 ;CHECK OUT -400000000000 CASES
MOVM D,D
JUMPL D,GCDOV
PUSH P,CFIX1 ;EVERYTHING OKAY - CAN USE .GCD0
JRST .GCD0
] ;END OF IFN BIGNUM
] ;END OF IFN USELESS
;$EQUAL $EQL1 $IEQ IEQUAL $LESS $GREAT $IGL1 $IGL IGRT IADD1 $ADD1 ISUB1 $SUB1
SUBTTL FUNCTIONS: = < > 1+ 1+$ 1- 1-$
$EQUAL: JSP T,FLTSKP ;NUMERIC EQUAL =
JRST IEQUAL
EXCH A,B
MOVE D,TT
$EQL1: JSP T,FLTSKP
JRST 2EQNF
$IEQ: CAME D,TT
JRST FALSE
JRST TRUE
IEQUAL: EXCH A,B
MOVE D,TT
JSP T,FLTSKP
JRST $IEQ
JRST 1EQNF
$LESS: EXCH A,B
$GREAT: JSP T,FLTSKP ;NUMERIC GREATERP AND LESSP <,>
JRST IGRT
MOVE D,TT
EXCH A,B
$IGL1: JSP T,FLTSKP
JRST 2GPNF
$IGL: CAMG D,TT
JRST FALSE
JRST TRUE
IGRT: MOVE D,TT
MOVE A,B
JSP T,FLTSKP
JRST $IGL
JRST 1GPNF
IADD1: JSP T,FLTSKP ;FIXNUM ADD1 1+
AOJA TT,FIX1
%WTA IARERR
JRST IADD1
%WTA $ARERR
$ADD1: JSP T,FLTSKP ;FLONUM ADD1 1+$
JRST $ADD1-1
FADRI TT,(1.0)
JRST FLOAT1
ISUB1: JSP T,FLTSKP ;FIXNUM SUB1 1-
SOJA TT,FIX1
%WTA IARERR
JRST ISUB1
%WTA $ARERR
$SUB1: JSP T,FLTSKP ;FLONUM SUB1 1-$
JRST $SUB1-1
FSBRI TT,(1.0)
JRST FLOAT1
;$ARITH IARITH I$B I$ART2 ARITH IARDS ARIT0
SUBTTL FUNCTIONS: + +$ - -$ * *$ // //$
$ARITH: SETOM PLUS0
SKIPA
IARITH: SETZM PLUS0 ;SET UP FOR FIXNUM ARITHMETIC
AOJGE T,ARIT0
I$B: JRST 2,@[.+1]
SKIPA B,T
I$ART2: XCT R
POP P,A ;MAIN LOOP FOR FIXNUM AND FLONUM ARITHMETIC
ARITH: JSP T,FLTSKP ;MAKE SURE NO MIXED MODES, RETURN MACHINE NUMBER IN TT
TDZA T,T
MOVNI T,1
CAME T,PLUS0
JRST ARTHER
AOJLE B,I$ART2
CAIN B,69.+1 ;SIGNAL FOR CASE WITH ONE ARG
EXCH TT,D
XCT F
IARDS: SKIPE PLUS0 ;DISPATCH TO CONS UP FINAL ANSWER
JRST FLOAT1
JRST FIX1
ARIT0: MOVE TT,D
JUMPN T,IARDS
MOVEI T,69.
JRST I$B
;IDIFFERENCE IPLUS IQUOTIENT ITIMES $DIFFERENCE $PLUS $QUOTIENT $TIMES IARZAR
IDIFFERENCE:
SKIPA F,[SUB TT,D] ;-
IPLUS: MOVE F,[ADD TT,D] ;+
MOVE R,[ADD D,TT]
MOVEI D,0
JRST IARITH
IQUOTIENT:
SKIPA F,[IDIV TT,D] ;/
ITIMES: MOVE F,[IMUL TT,D] ;*
MOVE R,[IMUL D,TT]
MOVEI D,1
JRST IARITH
$DIFFERENCE:
SKIPA F,[FSBR TT,D] ;-$
$PLUS: MOVE F,[FADR TT,D] ;+$
MOVE R,[FADR D,TT]
MOVEI D,0
JRST $ARITH
$QUOTIENT:
SKIPA F,[FDVR TT,D] ;/$
$TIMES: MOVE F,[FMPR TT,D] ;*$
MOVE R,[FMPR D,TT]
MOVSI D,(1.0)
JRST $ARITH
IARZAR: MOVE TT,D
JRST FIX1
;$SIN SIN. SIN.0 SIN.1 SIN.2 SIN.XT PI%2 SIN.CF COS COS.
;;; ********** NUMBER SUBRS FOR LISP **********
SUBTTL SIN AND COS FUNCTIONS
;;; SIN IS A TOPS-10/TENEX JSYS, SO MUST CALL THIS $SIN. FOO! - GLS
$SIN: PUSH P,CFLOAT1
SIN.: JSP T,FLTSKP
JSP T,IFLOAT
MOVM T,TT ;SIN(-X)=-SIN(X)
CAMLE T,C1.0E5 ;ARG SHOULD BE <= 1.0E5 (ELSE RESULT
JRST SIN.ER ; WOULD BE GROSSLY INACCURATE)
CAMG T,[.001] ;THE RELATIVE ERROR OF APPROXIMATION [BY THIS RATIONAL
; ; FUNCTION] IS BOUNDED BY ABOUT 2.0E-7, BUT OCCASIONALLY
; ; COMES CLOSE TO THIS. SINCE THE ERROR OF TRUNCATION
; ; INHERENT IN TAKING X-(1/6)*X**3 FOR THE TAYLOR SERIES
; ; OF SIN(X) IS MUCH LESS THAN 2.0E-7, IT WILL BE SUFFICIENT
; ; TO TAKE X FOR SIN(X) WHENEVER THE RELATIVE ERROR TERM
; ; [(1/6)*X**3] IS LESS THAN 2.0E-7. SOLVING, WE FIND
JRST SIN.XT ; X=.001 WILL DO.
EXCH T,TT
SIN.0: FDVR TT,PI%2 ;DIVIDE ARG BY PI/2 (ARG IS NOW IN QUADRANTS)
MULI TT,400 ;TT GETS CHARACTERISTIC, R GETS MANTISSA
SETZB R,F
ASHC D,-243(TT) ;D GETS INTEGER PART, R GETS FRACTION (OF ARG)
ASHC R,-8. ;R GETS HIGH 27. BITS OF FRACTION, F GETS REST
TLO R,200000 ;FLOAT R
LSH F,-8.
TLO F,145000 ;FLOAT F (NOTE: 145=200-33; R,F NOW FORM 2-WORD FLOATING NUMBER)
FADR R,F ;ADD F TO R (THIS WHOLE MESS PRESERVES PRECISION AND NORMALIZES)
TRCN D,3 ;R IS NOW A QUADRANT 1 ANGLE - WHAT WAS ORIGINAL QUADRANT?
JRST SIN.1 ;QUADRANT 1 - ALL IS WELL
TRCE D,3
MOVN T,T ;QUADRANT 2 OR 3 - MUST REVERSE SIGN: SIN(X)=-SIN(X-PI)
TRNE D,1
FSBR R,FPWUN ;QUADRANT 2 OR 4 - SUBTRACT 1 TO PUT IN RANGE -1.0 TO 0
SIN.1: SKIPGE T ;TEST SINE SIGN FLAG
MOVN R,R ;IF NEGATIVE, RESULT MUST BE NEGATIVE
MOVE D,R
FMPR D,D ;D <- R*R IS ALWAYS NON-NEGATIVE
MOVE TT,SIN.CF+4 ;MOBY APPROXIMATION
MOVEI T,3
SIN.2: FMPR TT,D
FADR TT,SIN.CF(T)
SOJGE T,SIN.2
FMPR TT,R
SIN.XT: CAMLE TT,[1.0] ;THIS IS A CROCK TO MAKE SURE ABS(RESULT) NOT >1
MOVSI TT,(1.0)
CAMGE TT,[-1.0]
MOVSI TT,(-1.0)
POPJ P, ;RETURN - RESULT IS IN TT
PI%2: 1.570796326 ;A PIECE OF PI (ABOUT 50%)
SIN.CF: 1.5707963185 ;COEFFICIENTS FOR SIN APPROXIMATION
-0.6459637111
0.07968967928
-0.00467376557
0.00015148419
COS: PUSH P,CFLOAT1
COS.: JSP T,FLTSKP
JSP T,IFLOAT
SKIPLE T,TT
MOVN T,TT
FADR T,PI%2 ;PI/2-X IN T, SINCE COS(X) = SIN(PI/2-X)
MOVM TT,T ;|PI/2-X| IN TT
CAMLE TT,C1.0E5
JRST COS.ER
JRST SIN.0
;SQRT SQRT. SQRT.. SQRT.1
SUBTTL SQRT FUNCTION
COMMENT | OLD SQRT ALGORITHM
SQRT: PUSH P,CFLOAT1
SQRT.: JSP T,FLNV1
JUMPL TT,SQR$ER ;NEGATIVE ARG IS AN ERROR
SQRT..: MOVE D,TT ;D GETS ARG
LDB T,[341000,,TT] ;FOR FIRST APPROXIMATION, TRY
ADDI T,100 ; HALVING CHARACTERISTIC OF ARGUMENT,
DPB T,[331100,,TT] ; AND USE SAME MANTISSA
MOVEI T,5 ;NOW DO MOBY ITERATION
SQRT.1: MOVE R,TT ; R <- TT
MOVE TT,D
FDVR TT,R ; R + D/R
FADR TT,R ; TT <- ---------
FSC TT,-1 ; 2
SOJN T,SQRT.1
POPJ P,
| ;END OF OLD SQRT ALGORITHM
;SQRT SQRT. SQRT..
COMMENT | ANOTHER OLD SQRT ALGORITHM
;;; THIS SQRT ALGORITHM IS BASED ON ONE BY KAHAN, ORIGINALLY
;;; DESIGNED FOR THE IBM 7094. THAT VENERABLE MACHINE LOOKED
;;; LIKE THE PDP-10 (27.-BIT MANTISSA AND 8-BIT EXPONENT).
;;; (THANKS TO RJF FOR HELP IN CODING THIS.)
;;;
;;; THE IDEA IS TO DECOMPOSE THE ARGUMENT X INTO:
;;; F * 2.0↑(2*I - J)
;;; WHERE THE FRACTION F IS BETWEEN 0.5 (INCLUSIVE) AND 1.0
;;; (EXCLUSIVE), AND I AND J ARE INTEGERS, J BEING 0 OR 1.
;;; ONE THEN COMPUTES THE INITIAL APPROXIMATION AS:
;;; A0 = (C + F/2.0 - J/4.0) * 2.0↑I
;;; WHERE C IS THE MAGIC CONSTANT 0.4826004, CHOSEN FOR THE
;;; BEST POSSIBLE FIT TO A CURVE. ONE THEN PERFORMS AN
;;; ITERATION CALCULATING:
;;; A<K+1> = (A<K> + X/A<K>)/2.0
;;; ALL ARITHMETIC IS DONE WITHOUT ROUNDING EXCEPT LAST ADD.
;;; THREE ITERATIONS SHOULD SUFFICE; A3 IS THE RESULT.
;;; THE INITIAL APPROXIMATION CAN BE CALCULATED QUICKLY BY
;;; MEANS OF THE FOLLOWING TRICK. LET THE EXPONENT BE
;;; E = 2*I - J = 2*N + M
;;; SUCH THAT M IS 0 OR 1; THEN J=M AND I=N+M. MOREOVER,
;;; NOTE THAT THE PDP-10 EXPONENT X=E+200 (OCTAL), BECAUSE
;;; OF EXCESS-200 NOTATION. HENCE X=2*(N+100)+M.
;;; WE FIRST PICK OFF THE M BIT AS A SEPARATE WORD AND
;;; SHIFT IT RIGHT. THANKS TO THE PARTICULAR REPRESENTATION
;;; OF EXPONENT AND FRACTION, THIS PRODUCES A WORD WITH
;;; A FRACTION OF M/2. NOW WE WILL ADD TOGETHER THIS WORD,
;;; THE ORIGINAL ARGUMENT, AND A MAGIC CONSTANT, AND SHIFT
;;; THE SUM RIGHT BY 1. SHIFTING AFTERWARDS GIVES GREATER
;;; ACCURACY AND TAKES FEWER INSTRUCTIONS, BUT FOR PURPOSES
;;; OF EXPOSITION LET US ASSUME THE THREE SUMMANDS TO HAVE
;;; BEEN PRE-SHIFTED.
;;; SHIFTING THE ORIGINAL ARGUMENT RIGHT PRODUCES A WORD WITH
;;; FRACTION F/2+M/2 AND MACHINE EXPONENT N+100. SHIFTING
;;; THE M/2 PRODUCES M/4. THE MAGIC CONSTANT IS CHOSEN SUCH
;;; THAT, WHEN SHIFTED, ITS FRACTION IS C (0.4826004) AND
;;; ITS MACHINE EXPONENT IS 100. ADDING THESE TOGETHER
;;; PRODUCES FRACTION F/2 + 3*M/4 + C AND MACHINE EXPONENT
;;; N+200. HOWEVER, SINCE F IS NORMALIZED, THE ADDITION
;;; OF 3*M/4 IS GUARANTEED TO OVERFLOW INTO THE EXPONENT FIELD;
;;; THIS RESULTS IN SUBTRACTING M/4 FROM THE FRACTION, AND
;;; ADDING M INTO THE MACHINE EXPONENT. THE RESULT IS THUS:
;;; (C + F/2 - M/4) * 2.0↑(N+M)
;;; WHICH IS THE DESIRED VALUE.
SQRT: PUSH P,CFLOAT1
SQRT.: JSP T,FLNV1
JUMPG TT,SQRT..
JUMPL TT,SQR$ER ;NEGATIVE ARG IS AN ERROR
POPJ P, ;ZERO ARGUMENT => ZERO
;;; POSITIVE ARGUMENT IS IN TT NOW
SQRT..: MOVE R,TT ;SAVE ARGUMENT IN R FOR LATER
MOVS D,TT
ANDI D,1000
LSH D,22-1 ;D HAS M/2 AS A SINGLE BIT
ADD TT,D ;ADD INTO ORIGINAL ARGUMENT
ADD TT,[200756135462] ;EXPONENT 200, FRACTION 2*0.4826004
LSH TT,-1 ;NOW WE HAVE INITIAL APPROXIMATION
IRPC ROUND,,[ R]AC,,[DDR]
IFSN AC,R, MOVE D,R ; TT + R/TT
FDV AC,TT ;COMPUTE TT <- ---------
FAD!ROUND TT,AC ; 2
FSC TT,-1 ;LAST TIME ONLY, ADD ROUNDED
TERMIN
POPJ P,
| ;END OF ANOTHER OLD SQRT ALGORITHM
;SQRT SQRT. SQRT.. SQRT.2 SQRT.3
;;; I HAVE NO IDEA HOW THIS WORKS! - GLS
;;; THANKS TO RJF AND KAHAN.
;;; KAHAN CLAIMS THE ERROR LIES BETWEEN -.5 AND +.516 LSB'S
SQRT: PUSH P,CFLOAT1
SQRT.: PUSHJ P,NUMFLT
JUMPG TT,SQRT..
JUMPL TT,SQR$ER ;NEGATIVE ARG IS AN ERROR
POPJ P, ;ZERO ARGUMENT => ZERO
;;; POSITIVE ARGUMENT IS IN TT NOW
SQRT..: MOVE R,TT ;SAVE ARG FOR LATER
ASH TT,-1
ADD TT,[265116421] ;THAT'S 265116421 (KAHAN BLACK MAGIC)
TLON TT,400
JRST SQRT.2
FMPRI TT,301456 ;(301456=(FSC 1.1796875 100)
;; BKPH suggested using 301456 instead of 301461 in mid 1980 (JONL 10/16/80)
JRST SQRT.3
SQRT.2: FMPRI TT,300653 ;(300653)=(FSC 0.833984375 100)
;NOW TWO NEWTON ITERATIONS, MODIFIED
SQRT.3: MOVE D,R
FDV D,TT ;UNROUNDED DIVIDE
FAD TT,D ;UNROUNDED ADD
; FSC TT,-1
SUB TT,[1000002645] ;KAHAN SEZ: INSTEAD OF DIVISION BY 2, SUBTRACT 1000002645
FDV R,TT ;UNROUNDED DIVIDE
FADR TT,R ;ROUNDED ADD!
FSC TT,-1
POPJ P,
;;; A FEW HINTS, PAINFULLY WORKED OUT BY GLS AND RZ:
;;; THE ASH BY -1 DIVIDES THE EXPONENT BY 2, AND MUNCHES
;;; THE MANTISSA IN A BIZARRE WAY.
;;; THE ADDITION OF 265116421 IS GUARANTEED TO CARRY
;;; INTO THE 3.9 BIT, ASSUMING A NORMALIZED INPUT. THIS
;;; WILL COMPLEMENT THE ORIGINAL LOW EXPONENT BIT.
;;; THIS IS THEN TESTED BY THE TLON, WHICH ALSO FORCES
;;; THE 3.9 BIT ON, MAKING THE NEW NUMBER NORMALIZED.
;;; THE SUBTRACTION OF 1000002645 INDEED DIVIDES BY 2,
;;; BY SUBTRACTING 1 FROM THE EXPONENT; AND THE REST DOES
;;; A WEIRD LITTLE PERTURBATION WHICH, HOWEVER, CANNOT
;;; BORROW FROM THE EXPONENT.
;LOG LOG. LOG.. LOG.1 LOG.2 ROOT2 LOG.CF NUMFLT NUMFL3
SUBTTL LOG FUNCTION
LOG: PUSH P,CFLOAT1
LOG.: PUSHJ P,NUMFLT
LOG..: JUMPLE TT,LOG.ER ;NON-POSITIVE ARG IS AN ERROR
MULI TT,400
HRREI TT,-201(TT) ;SAVE CHARACTERISTIC IN TT
LSH D,-8. ;REDUCE ARG TO VALUE X BETWEEN 1.0 AND 2.0
TLO D,201000
MOVEI R,0
CAMN D,FPWUN ;LOG(1.0)=0.0 (ALSO FOR WHOLE POWERS OF 2 THIS SAVES TIME)
JRST LOG.2
MOVE T,D ; X - SQRT(2)
FSBR T,ROOT2 ; T <- -------------
FADR D,ROOT2 ; X + SQRT(2)
FDVRB T,D
FMPR D,D ; D <- T*T
MOVEI F,3 ;MOBY APPROXIMATION TO LOG BASE 2
LOG.1: FMPR R,D
FADR R,LOG.CF(F)
SOJGE F,LOG.1
FMPR R,T
FADR R,[0.5]
LOG.2: JSP T,IFLOAT ;FLOAT CHARACTERISTIC
FADR TT,R ;ADD TO LOG OF MANTISSA
FMPR TT,[0.6931471806] ;MULTIPLY BY LN 2 TO GET LOG BASE E
POPJ P,
ROOT2: 1.4142135625 ;SQRT(2)
LOG.CF: 2.885390073 ;COEFFICIENTS FOR LOG APPROXIMATION
0.9618007623
0.5765843421
0.4342597513
NUMFLT:
IFE BIGNUM, JSP T,FLTSKP
IFN BIGNUM, JSP T,NVSKIP
IFN BIGNUM, JRST NUMFL3
JSP T,IFLOAT
POPJ P,
IFN BIGNUM,[
NUMFL3: PUSH P,A
PUSHJ P,FLBIG
JRST POPAJ
] ;END OF IFN BIGNUM
;ATAN ATAN. ATAN.1 ATAN.2 ATAN.3 ATAN.4 PI% ATAN.C
SUBTTL ATAN FUNCTION
ATAN: PUSH P,CFLOAT1
ATAN.: EXCH A,B
PUSHJ P,NUMFLT
PUSH FXP,TT
MOVEI A,(B)
PUSHJ P,NUMFLT
POP FXP,D
MOVM R,TT ;GET ABSOLUTE VALUE OF Y
MOVM F,D ;GET ABSOLUTE VALUE OF X
MOVEM R,ATAN.Y ;SAVE ABS(Y)
MOVEM F,ATAN.X ;SAVE ABS(X)
HLR D,TT ;D HAS <LEFT HALF OF X>,,<LEFT HALF OF Y>
MOVEM D,ATAN.S ;SAVE THAT MESS (HAS SIGNS OF X AND Y)
MOVE T,R
JFCL 8,.+1
FSBR T,F ; ABS(Y)-ABS(X)
FADR R,F ; T <- -----------------
FDVRB T,R ; ABS(Y)+ABS(X)
FMPR R,R ; R <- T*T
MOVE D,ATAN.C+7 ;MOBY APPROXIMATION
MOVEI F,6
ATAN.1: FMPR D,R
FADR D,ATAN.C(F)
SOJGE F,ATAN.1
FMPR D,T
MOVM TT,D
CAMGE TT,[.7855]
CAMGE TT,[.7853]
JRST ATAN.3
JUMPGE D,ATAN.2 ;PATCH UP FOR WHEN RATIONAL APPROXIMATION NOT VERY GOOD
MOVE D,ATAN.Y ;WE CAN USE Y/X FOR ATAN (Y/X)
FDVR D,ATAN.X
JRST ATAN.4
ATAN.2: MOVN D,ATAN.X
FDVR D,ATAN.Y
FADR D,PI%2
JRST ATAN.4
ATAN.3: FADR D,[0.7853981634] ;PI/4
ATAN.4: MOVN TT,D ;NOW WE HAVE A QUADRANT 1 RESULT (CALL IT Q)
FADR TT,PI% ;PATCH-UP STUFF TO GET RIGHT QUADRANT
SKIPL F,ATAN.S ; X>0 I X<0
EXCH D,TT ;-------------------------I-------------------------
FSC D,1 ; D <- PI-Q I D <- Q
TRNE F,400000 ; TT <- Q I TT <- PI-Q
FADR TT,D ; Y>0 I Y<0 I Y>0 I Y<0
JFCL 8,ATAN.7 ;------------I------------I------------I------------
POPJ P, ; TT<-Q I TT<-2*PI-Q I TT<-PI-Q I TT<-PI+Q
PI%: 3.1415926536 ;A WELL-KNOWN NUMBER
ATAN.C: 0.9999993329 ;COEFFICIENTS FOR ATAN APPROXIMATION
-0.3332985605
0.1994653599
-0.139085335
0.0964200441
-0.0559098861
0.0218612288
-0.004054058
;EXP EXP. EXP.. EXP.A EXP.1 EXP.2 EXP.RX EXP.3 EXP.CF FPWUN INTLG C1.0E5 YPOCB BCOPY BCOP1 BNARSV BNARRS
SUBTTL EXP FUNCTION
EXP: PUSH P,CFLOAT1
EXP.: JSP T,FLTSKP
JSP T,IFLOAT
EXP..: SETZ R,
MOVEM TT,EXP.S ;SAVE SIGN OF ARG ON PDL
MOVM TT,TT ;GET ABSOLUTE VALUE OF ARG
CAMLE TT,[88.0] ;WAS REQUESTED POWER > 88.0?
JRST EXP.A ;YES, CAN'T REPRESENT SOMETHING THIS BIG
FMPR TT,[0.4342944819] ;LOG BASE 10. OF E
;FROM NOW ON WE DO 10.↑X, NOT E↑X
MOVE F,FPWUN ;F HOLDS 10.↑<INTEGER PART OF ARG>
CAMG TT,FPWUN ;IF ARG <=1.0 GO DO RATIONAL APPROXIMATION
JRST EXP.RX
MULI TT,400
ASHC D,-243(TT) ;D GETS INTEGER PART OF ARG
; CAIG D,43 ;THIS IS OLD CHECK, JONL SAYS OK TO ALLOW
JRST EXP.1 ; LARGER RANGE
EXP.A: SKIPGE TT,EXP.S ;TOO LARGE - RESULT CAN'T BE REPRESENTED
TDZA TT,TT
JRST EXP.ER
POPJ P, ;NEGATIVE ARG PRODUCES ZERO (UNDERFLOW)
EXP.1: CAIG D,7 ;SKIP IF INTEGER PART OF ARG > 7
JRST EXP.2
LDB T,[030300,,D] ;GET TOP 3 BITS OF 6 BIT INTEGER PART
ANDI D,7 ;AND THEM OUT OF D
MOVE F,INTLG(T) ;F GETS (10.↑T)↑8. = 10.↑(T*8.)
FMPR F,F
FMPR F,F
FMPR F,F
EXP.2: FMPR F,INTLG(D) ;MULTIPLY F BY APPROPRIATE 10.↑D (0<=D<=7)
LDB TT,[103300,,R] ;NOW GET FRACTION PART OF ARG
TLO TT,177000 ;THIS STRANGENESS FLOATS
FADR TT,TT ; AND NORMALIZES THE FRACTION
EXP.RX: MOVEI T,6 ;MOBY APPROXIMATION
SKIPA R,EXP.CF+6
EXP.3: FADR R,EXP.CF(T)
FMPR R,TT
SOJGE T,EXP.3
FADR R,FPWUN
FMPR R,R
FMPR F,R ;MULTIPLY FRACTION APPROXIMATION BY 10.↑<INTEGER PART>
MOVE TT,FPWUN
SKIPL EXP.S
SKIPA TT,F ;IF ARG>0, RETURN RESULT
FDVR TT,F ;IF ARG<0, RETURN 1.0/RESULT
POPJ P,
EXP.CF: 1.151292776 ;COEFFICIENTS FOR EXP APPROXIMATION
0.6627308843
0.2543935748
0.07295173666
0.01742111988
2.55491796↑-3
9.3264267↑-4
FPWUN: ;FLOATING POINT 1.0
INTLG: 1.0 ;TABLE OF 10.↑X FOR INTEGRAL 0<=X<=7
REPEAT 7, 1.0↑<.RPCNT+1>
C1.0E5=FPWUN+5
PGTOP ARI,[ARITHMETIC SUBROUTINES]
;;@ END OF ARITH 90
;;; REMEMBER THE SUNDER HACK, AND DONT HACK THIS $INSRT
IFN BIGNUM,[
;;@ BIGNUM 18 BIGNUM ARITHMETIC PACKAGE
;;; ***** MACLISP ****** BIGNUM ARITHMETIC PACKAGE **************
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
PGBOT BIG
SUBTTL BIGNUM PACKAGE - RANDOM ROUTINES
;THE BIGNUM ARITHMETIC PAGE - SPECIAL STUFF FOR BIGNUM OPERATIONS ONLY
YPOCB: PUSH P,[NREVERSE]
BCOPY: HRRZ C,A ;COPIES A BIGNUM IN ACCUMULATOR A [INTERNAL FORMAT]
PUSH P,A
MOVEI AR1,(P) ;CLOBBERS C AR1 TT D
BCOP1: JUMPE C,POPAJ
HLRZ TT,(C)
MOVE TT,(TT)
PUSHJ P,C1CONS
HRRM A,(AR1)
HRRZ AR1,(AR1) ;UPDATE POINTER TO END OF LIST
HRRZ C,(C) ;GET NEXT OF LIST TO BE COPIED
JRST BCOP1
BNARSV: PUSH P,C ;SAVE ACCUMULATORS
PUSH P,AR1
PUSH P,AR2A
MOVEM F,FACD
MOVEM R,FACF
JRST (T)
BNARRS: POP P,AR2A ;RESTORE ACCUMULATORS
POP P,AR1
POP P,C
MOVE F,FACD
MOVE R,FACF
JRST (T)
;PLOV PLOV2 PL1BN TIMOV TIM1BN T2 T12 PL2BN
PLOV: PUSH P,AR1 ;OVERFLO WHILE ADDING OR SUBBING TWO FIXNUMS
SKIPN TT,D
JRST PLOV2
TLNN TT,400000
MOVNS TT
TLZ TT,400000
PUSH FXP,TT
PUSHJ P,ABSOV
MOVE A,(A)
HLR B,(A)
POP FXP,(B)
SKIPL D
TLC A,-1
SKIPA D,A
PLOV2: MOVE D,BNM236
POP P,AR1
JRST T13
PL1BN: EXCH D,TT ;FIXNUM SUM MEETS BIGNUM ARG
PUSHJ P,BNCVTM
EXCH D,TT
JRST T11
TIMOV: MOVEM T,AGDBT ;OVERFLO WHILE MULING TWO FIXNUMS
PUSHJ P,BNCV
MOVE D,A
MOVE TT,AGDBT
PUSHJ P,BNCVTM
JRST BNTIM
TIM1BN: JUMPE D,T14EX ;FIXNUM PRODUCT MEETS BIGNUM NEXT ARG
EXCH D,TT
PUSHJ P,BNCVTM
EXCH D,TT
JRST T11
T2: MOVE D,TT
T12: MOVE A,(F) ;BIGNUM ARITHMETIC LOOP
JSP T,NVSKIP
XCT 4(R) ;OPERATE ON TWO BIGNUMS
JRST 2(R) ;DISPATCH TO OPERATE ON BIGNUM SUM WITH FIXED
EXCH D,TT ;CONVERT BIGNUM SUM TO FLOATING
PUSHJ P,FLBIG
EXCH D,TT
JRST T7 ;AND ENTER FLOATING POINT LOOP
PL2BN: PUSHJ P,BNCVTM ;BIGNUM SUM MEETS FIXNUM NEXT ARG
JRST T11
;TIM2BN T11 T13 T13X BNDF BNPL BNPL1 T19A T19B T19C BNXTIM BNTIM
TIM2BN: JUMPE TT,T14EX1 ;BIGNUM PRODUCT MEETS FIXNUM NEXT ARG
PUSHJ P,BNCVTM
EXCH D,TT
T11: XCT 4(R) ;TRANSFERS TO BNTIM
T13: AOBJN F,T12
T13X: MOVE A,D
SUB P,PLUS8
JRST BNCONS
BNDF: JSP A,BNPL1 ;DIFFERENCE OF TWO BIGNUMS
BNPL: JSP A,BNPL1 ;PLUS OF TWO BIGNUMS
BNPL1: EXCH A,D
MOVE B,TT
JSP T,BNARSV
PUSHJ P,BNADD(D)-BNPL1
T19A: PUSHJ P,BNTRSZ ;SKIPS 2 IF ALL RIGHT
MOVE D,[1←43]
JRST T19B
MOVE D,A
HRRZ B,(A) ;WHAT IF OPERATE RESULTS IN SCRUNCHING
JUMPN B,T19C ;ACCUMULATED VALUE INTO ONE WORD?
HLRZ D,(A)
MOVE D,(D)
JUMPGE A,.+2
MOVNS D
T19B: JSP T,BNARRS
JRST 2,@[T14E]
T19C: JSP T,BNARRS
JRST T13
BNXTIM: JUMPE TT,0POPJ ;FIXNUM IN TT TIMES ABS(BIGNUM IN A)
HRRZ D,(A)
SETOM REMFL
PUSHJ P,BNCVTM ;CONVERT FIXNUM TO BIGNUM FOR BNMUL
BNTIM: JSP T,BNARSV ;PRODUCT OF TWO BIGNUMS
MOVE A,D
MOVE B,TT
PUSHJ P,BNMUL
JSP T,BNARRS
MOVE D,A
SKIPN REMFL
JRST T13
SETZM REMFL
JRST BNCONS ;FOR BNXTIM, CONS UP A REAL BIGNUM
;DIVSEZ REM2BN DV2BN DV1BN BNDV
DIVSEZ: SKIPA D,BNM235 ;DIVISION BY 1←43 [-2E35.]
REM2BN: JUMPE TT,BPDLNKJ
DV2BN: JSP T,BNARSV ;BIGNUM DIVIDEND GETS FIXNUM DIVISOR
MOVE A,D
JUMPN TT,DV2BN1
SKIPN RWG
JRST OVFLER
MOVEI TT,1 ;ON ATTEMPT TO DIVIDE BY ZERO [WHEN RWG NOT ZERO]
JUMPGE A,.+2
MOVNS TT
MOVEM TT,BNV1
MOVE B,BNV2
PUSHJ P,BNADD
JRST T19A
DV1BN: CAME D,[400000,,] ;FIXNUM DIVIDEND, BIGNUM DIVISOR
TDZA TT,TT ;ORDINARILY ZERO
SKIPA D,BNM235 ;BUT -4←41/4←41 => 1, NOT 0
JRST T14EX1
BNDV: MOVE B,TT ;BIGNUM QUOTIENT, BIGNUM DIVEND
MOVE A,D
JSP T,BNARSV
PUSHJ P,BNQUO
SKIPE REMFL
CAMN TT,XC-1
JRST T19A
SETZM REMFL
JSP T,BNARRS
MOVE D,A ;DIVIDE OUT NORMALIZATION
JRST DV2BN
;DV2BN1 DV2BN2 BNFXLP DV2BN3 D1FIN
DV2BN1: MOVEM A,NORMF ;SO DIVIDE A BIGNUM BY A REGULAR FIXNUM
PUSHJ P,REVERSE
MOVE AR1,NORMF ;AR1 HAS SIGN OF ORIGINAL ARG IN LH
HRR AR2A,A ;AR2A HAS SIGN OF PRODUCT ON COPY
HLL AR2A,AR1
JUMPGE TT,DV2BN2
MOVNS TT
JUMPL TT,DV2BN3 ;FOO! LOUSY SETZ CASE - PRODUCT WILL BE NEGATIVE
TLC AR2A,-1
DV2BN2: HRRZ C,(A)
MOVE D,TT
HLRZ F,(A)
MOVE F,(F)
MOVEI R,0
DIV R,D
MOVE TT,R
PUSHJ P,C1CONS
BNFXLP: MOVE B,A
JUMPE C,D1FIN
MOVE R,F
HLRZ F,(C)
MOVE F,(F)
DIV R,D
MOVE TT,R
PUSHJ P,C1CONS
HRRM B,(A)
HRRZ C,(C)
JRST BNFXLP
DV2BN3: MOVE TT,BNM235
JSP T,BNARRS
JRST BNDV
D1FIN: HLL A,AR2A
PUSHJ P,BNTRUN
EXCH A,AR2A
MOVEI B,NIL
PUSHJ P,RECLAIM ;RECLAIM ONLY FREE STORAGE
EXCH A,AR2A
SKIPN REMFL
JRST T19A
MOVE D,F
JUMPGE AR1,.+2
MOVNS D
JSP T,BNARRS
MOVEI B,TRUTH
PUSHJ P,RECLAIM ;RECLAIM QUOTIENT SPACE, SINCE ONLY REMAINDER NEEDED
JRST T14EX
;BNTRUN BNTR4 BNTRSZ BNTRS1 BNPJ2 BNCV BNCVTM T17 T16 T23
SUBTTL GENERAL UTILITY ROUTINES FOR BIGNUM ARITHMETIC
BNTRUN: HRR AR1,A ;TRUNCATE OFF LEADING ZEROS FROM BIGNUM
HRRZ B,(AR1) ;PRESERVE LH OF AR1
JUMPE B,CPOPJ
BNTR4: MOVS C,(B)
SKIPE (C)
HRR AR1,B
HLRZ B,C
JUMPN B,BNTR4
HRRZ C,(AR1)
HLRM C,(AR1)
JUMPE C,CPOPJ ;EXIT IF THERE WERE NO LEADING ZEROS
EXCH A,C
PUSHJ P,RECLAIM ;OTHERWISE, RECLAIM SPACE OCCUPIED
EXCH A,C ; BY LIST HOLDING THEM (B IS ZERO)
POPJ P,
BNTRSZ: JUMPGE A,BNPJ2 ;SKIPS 2 IF NOT -1←43 IN BIGNUM FORMAT. ELSE NO SKIP
BNTRS1: HRRZ AR1,(A) ;MUNGS ONLY AR1
JUMPE AR1,BNPJ2
MOVS AR1,(AR1)
TLNE AR1,-1
JRST BNPJ2
HLL AR1,(AR1) ;ALL THIS KLUDGERY SO THAT RANDOM
TLNE AR1,-1 ; NUMERIC QUANTITIES WILL NOT GET
JRST BNPJ2 ; IN THE RIGHT HALF OF AR1
HRLZ AR1,(AR1)
TLC AR1,1
JUMPN AR1,BNPJ2
HLRZ AR1,(A)
SKIPN (AR1)
POPJ P,
BNPJ2: POP P,AR1
JRST 2(AR1)
BNCV: PUSH FXP,D
PUSHJ FXP,SAV5M1
PUSHJ P,BNCVTM
MOVE A,TT
PUSHJ P,BCOPY
JRST UUOSE1
BNCVTM: JUMPL TT,T16 ;CONVERT NUMBER IN TT TO INTERNAL BIGNUM
T17: MOVEM TT,BNV1
MOVE TT,BNV2
POPJ P,
T16: MOVNS TT
JUMPL TT,T23 ;400000,,
PUSHJ P,T17
TLCA TT,-1
T23: MOVE TT,BNM235 ;CONVERTED TO BIGNUM -2E35.
POPJ P,
;BNSUB BNADD BN4 BN15 BN20 BN7 BN9 BNADD2 BN14 BN8 BN5 BN13 BN6
SUBTTL BIGNUM ADDITION SUBROUTINE
BNSUB: TLC B,-1 ;CHANGE SIGN OF 2ND ARG
BNADD: MOVE C,A ;FIRST ARGUMENT TO C
HLLZ A,C ;SET UP NULL BIGNUM WITH SIGN OF FIRST ARG
PUSH P,A
HLLZ F,B ;DITTO SECOND ARG
MOVEI R,BNADD2 ;SET UP FOR REAL ADD
CAME A,F ;CHECK FOR SAME SIGNS
MOVEI R,BNSUB2 ;CHANGE TO SUBTRACT
MOVE F,P ;F POINTS TO BOTTOM WORD OF ANSWER
MOVEI TT,0 ;ARITHMETIC DONE IN TT
BN4: MOVE AR2A,C
MOVE C,(C) ;CDR C
MOVE B,(B) ;CDR B
BN15: MOVEI D,0 ;CLEAR CARRY
HLRZ AR1,C
ADD TT,(AR1)
HLRZ AR1,B
XCT -1(R) ;ADD/SUB TT,(AR1)
TLZE TT,400000 ;CARRY OR BORROW
MOVE D,-2(R) ;PLUS OR MINUS 1
JSP T,FWCONS
MOVE AR1,A
PUSHJ P,ACONS
HRRM A,(F) ;NCONC ONTO ANSWER
MOVE F,A ;UPDATE POINTER TO LAST WORD
BN20: TRNN B,-1 ;END OF SECOND ARG?
JRST @-3(R)
BN7: TRNN C,-1 ;END OF FIRST ARG?
JRST (R)
BN9: MOVE TT,D ;MOVE CARRY TO TT
JRST BN4
BN5
1 ;CARRY
ADD TT,(AR1)
BNADD2: JUMPN D,BN8 ;FIRST ARG DONE; IF CARRY, SIMULATE A ZERO
BN14: HRRM B,(F) ;USE REST OF SECOND ARG
JRST POPAJ
BN8: MOVEI C,[R70,,]
JRST BN9
BN5: JUMPN D,BN6 ;2ND ARG EXHAUSTED; IF CARRY, SIMULATE A ZERO
BN13: HRRM C,(F)
JRST POPAJ
BN6: MOVEI B,[R70,,]
JRST BN7
;BNSUB2 BN10 BN11 BN11A BN12 BNM1 BNM2
BN12
-1 ;BORROW
SUB TT,(AR1)
BNSUB2:
;COME HERE ONLY IF ABS(1)<ABS(2)
;FIRST ARG DONE, AND (2ND IS NOT DONE, OR THERE IS A BORROW)
;IT IS NECESSARY TO TAKE THE TWOS COMPLEMENT OF THE PARTIAL ANSWER
MOVE A,(P)
TLC A,-1
MOVEM A,(P)
MOVSI TT,400000 ;TT IS INITIALIZED TO 400000000000
;AND UNCHANGED WHILE THE PARTIAL ANSWER IS ZEROS
;AFTER A NONZERO WORD, TT IS RESET TO 377777777777 AFTER EACH SUBTRACT
SKIPA C,(A) ;SCAN DOWN NUMBER; LEFT HALF OF C NOW POINTS AT LOW ORDER WORD
BN10: MOVE C,(C)
HLRZ AR1,C
SUBB TT,(AR1)
SKIPL TT ;IFF TT IS STILL SETZ, (AR1) WAS ZERO AND MUST BE FIXED
SKIPA TT,[377777777777]
SETZM (AR1)
TRNE C,-1
JRST BN10
JUMPL D,BN11 ;IF BORROW: THE PARTIAL ANSWER WAS NONZERO TO GENERATE THE BORROW
;A RECOMPLEMENT BORROW OCCURED. TT IS 377777777777.
;SHOULD USE REST OF 2ND ARGUMENT
JUMPL TT,BN14 ;TT<0: THE PARTIAL ANSWER WAS ZERO; 1ST ARG IS PROPER INITIAL SEGMENT OF 2ND ARG
;USE REST OF 2ND ARG, GUARANTEED TO BE NONZERO
MOVNI TT,1 ;RECOMPLEMENT BORROW BUT NO ORIGINAL BORROW; USE REST OF 2ND ARG WITH BORROW
MOVE C,(B) ;SWAP ARGS
MOVSI B,[0]
JRST BN15 ;CONTINUE AS A SUBTRACT IN WHICH "2ND" ARG IS EXHAUSTED, AND A BORROW PROPAGATED
;CURIOUS THINGS HAPPEN IF THE REST OF "1ST" ARG IS ZERO(AN IMPROPER FORMAT)
BN11: TLNE B,-1 ;TRY TO AVOID USING THE TRUNCATE ROUTINE
JRST BN14 ;REST OF 2ND ARG IS NOT NULL, SO USE IT
BN11A: POP P,A
SKIPE (AR1) ;AR1 POINTS AT HIGH WORD OF DIFFERENCE
POPJ P,
JRST BNTRUN
BN12: JUMPN D,BN6 ;2ND ARG EXHAUSTED; IF BORROW, INVENT A ZERO
TRNE C,-1 ;IF 1ST ARG IS NOT EXHAUSTED, USE REST OF IT
JRST BN13
JRST BN11A ;BOTH ARGS EXHAUSTED
BNM1: JUMPE D,POPAJ ;SWAP OUT ONLY A NONZERO CARRY
PUSH P,CPOPAJ ;FOR MULTIPLICATION ROUTINE
BNM2: EXCH D,TT
JSP T,FWCONS
PUSHJ P,ACONS
EXCH D,TT
HRRM A,(R) ;NCONC CARRY WORD TO ANSWER BIGNUM
POPJ P,
;BNMUL BNM5 BNM4 BNM3
SUBTTL BIGNUM MULTIPLICATION SUBROUTINE
;MULTIPLY IS DONE IN TWO PARTS: (1) MULTIPLY FIRST ARG BY FIRST WORD OF SECOND ARG
;(2) MULTIPLY [AND ADD IN TO TOTAL] FIRST ARG BY EACH REMAINING WORD OF THE SECOND ARG
;SLIGHTLY FASTER IF SECOND ARG IS SHORTER
BNMUL: MOVE C,A
HLLZ A,C ;CREATE NULL BIGNUM WITH SIGN OF FIRST ARG
XOR A,B ;SKIP IF 2ND ARG POSITIVE. CHANGE SIGN OF ANSWER
PUSH P,A
MOVE R,P ;R POINTS AT LAST WORD OF ANSWER BIGNUM DURING PART ONE OF MULTIPLY
MOVE B,(B) ;GET FIRST WORD OF SECOND ARG
HLRZ F,B
MOVE F,(F)
MOVEI D,0 ;ZERO CARRY WORD
SKIPA AR2A,(C) ;PREPARE TO GOBBLE FIRST ARG
BNM5: MOVE AR2A,(AR2A)
HLRZ T,AR2A ;GOBBLE A WORD OF FIRST ARG
MOVE T,(T)
MUL T,F ;AFTER MULTIPLY, T<377777777777
ADD TT,D ;CARRY<400000000000; SUM<777777777777
MOVE D,T
TLZE TT,400000 ;CLEAR SIGN BIT AND PROPAGATE
AOS D ;NEW CARRY<400000000000
PUSHJ P,C1CONS
HRRM A,(R)
MOVE R,A ;UPDATE POINTER TO LAST WORD
TRNE AR2A,-1 ;END OF FIRST ARG?
JRST BNM5
MOVE A,(P)
HRRM A,BNMSV
BNM4: TRNN B,-1 ;END OF SECOND ARGUMENT?
JRST BNM1 ;YES; SWAP OUT CARRY IF NOT ZERO
PUSHJ P,BNM2
MOVE B,(B) ;GET NEXT WORD OF SECOND ARG
HLRZ F,B
MOVE F,(F)
MOVE R,@BNMSV
HRRM R,BNMSV
MOVE AR2A,(C) ;RESET FIRST ARGUMENT
MOVEI D,0 ;CLEAR OUT CARRY
BNM3: HLRZ T,AR2A ;GET A WORD OF FIRST ARG
MOVE T,(T)
MUL T,F ;AFTER MULTIPLY, T<377777777777
ADD TT,D ;CRY<400000000001, SUM<1000000000000
TLZE TT,400000 ;CLEAR SIGN BIT AND PROPAGATE
AOS T ;NEW T<400000000000
HLRZ D,(R) ;GET WORD OF ACCUMULATOR
ADD TT,(D) ;SUM<777777777777
TLZE TT,400000 ;CLEAR SIGN BIT AND PROPAGATE
AOS T ;NEW T<400000000001
MOVEM TT,(D) ;STORE WORD OF ACCUMULATOR
MOVE D,T
TRNN AR2A,-1 ;SKIP IF NOT END OF FIRST ARG
JRST BNM4
MOVE AR2A,(AR2A) ;ADVANCE TO NEXT WORD OF FIRST ARG
MOVE R,(R) ;ADVANCE TO NEXT WORD OF ACCUMULATOR
JRST BNM3
;BNQUO BNQUO1 BQ1 BQ2
SUBTTL BIGNUM DIVISION SUBROUTINE
BNQUO: SETZM NORMF ;INITIALIZE NORMALIZATION FACTOR
SETZM VETBL0 ;INITIALIZE "FIRST TIME THRU" FLAG
PUSH P,B ;SETS UP TO TEST FIRST DIVISOR WORD
PUSH P,A
BNQUO1: MOVEI D,1
MOVE C,B
MOVE C,(C)
MOVE AR1,(C)
AOS D
TRNE AR1,-1
JRST .-4
HLRZS AR1
MOVE F,(AR1)
CAMGE F,[200000,,0] ;NORMALIZATION TEST
JRST BQNORM
SKIPN NORMF
JRST BQCOPY
MOVSS C ;GET TOP TWO DIVISOR WORDS
MOVE C,(C)
MOVEM F,DVS1
MOVEM C,DVS2
MOVEM D,DVSL
MOVEI C,(A) ;SET UP QUOTIENT
JUMPGE B,.+2
TLC A,-1
HLLZS A
TLZ B,-1 ;PROB. UNNECESSARY, BUT WHY TAKE CHANCES?
PUSH P,A
BQ1: MOVEI R,3 ;THIS GETS DVD WORDS FOR THE QUOTIENT ESTIMATE
MOVE AR2A,C
BQ2: MOVE AR2A,(AR2A)
TRNN AR2A,-1
JRST BQSRRM ;PARTIAL REMAINDER IS ONLY ONE WORD LONG
MOVE T,(AR2A)
TRNN T,-1
JRST BQSHRM ;PARTIAL REM OR DVD IS 2 WORDS LONG
MOVE TT,(T)
TRNE TT,-1
AOJA R,BQ2
JRST BQCC
;BQCC BQGEST BQZQ BQCOPY BQNORM
BQCC: MOVSS AR2A
MOVE AR2A,(AR2A)
MOVEM AR2A,DD3
MOVSS T
MOVE T,(T)
MOVEM T,DD2
MOVSS TT
MOVE TT,(TT)
MOVEM TT,DD1
SKIPN VETBL0
JRST BQVET
MOVEM R,DDL
BQGEST: SUB R,DVSL ;CHECKS FOR PARTIAL REMAINDER<DIVISOR
JUMPL R,BQZQ
JUMPN R,BQGESS
EXCH R,DD1 ;SINCE R WAS 0, NOW DD1 IS 0
MOVEM R,DD2
JRST BQGESS
BQZQ: SETZM QHAT
JRST BQ8
BQCOPY: SETOM NORMF ;COPIES DIVIDEND TO GET WORK SPACE
PUSHJ P,BCOPY ;CLOBBERS T TT D B C AR1
MOVEM A,(P)
MOVE B,-1(P)
JRST BNQUO1
BQNORM: ADDI F,1 ;THIS SECTION MULTIPLIES DVD AND DIV BY NORMF
MOVEI T,1
SETZ TT,
DIV T,F
MOVEM T,NORMF
MOVE A,B
MOVEM T,BNV1
MOVE B,BNV2
PUSHJ P,BNMUL
EXCH A,(P)
MOVE B,BNV2
PUSHJ P,BNMUL
MOVE B,A
EXCH B,(P)
MOVEM B,-1(P)
JRST BNQUO1
;BQ6 BQSRRM BQSHRM BQVET BQSHRT REMFIN BQ10 BQDD BQ11
BQ6:
BQSRRM: SETZM QHAT ;COME HERE IF PARTIAL REM IS ONE WORD
JRST BQ8 ;MEANS QUOTIENT AT THIS STEP IS ZERO
BQSHRM: MOVEI R,2 ;COME HERE IF PARTIAL REMAINDER IS 2 WORDS LONG
MOVSS AR2A
MOVSS T
MOVE T,(T)
MOVE AR2A,(AR2A)
MOVEM T,DD2
MOVEM AR2A,DD3
SETZM DD1
SKIPE VETBL0
JRST BQGESS
JRST BQ10
BQVET: MOVEM TT,DD2
MOVEM T,DD3
SETZM DD1
JRST BQ10
BQSHRT: MOVE A,-1(P)
JUMPE R,BQSH0
SKIPE REMFL
JRST REMFIN
HLLZS R
HRRM R,-1(P)
JRST BQ6
REMFIN: HLL A,-1(P)
TRNN A,-1
MOVE A,-1(P) ;IN CASE DIVIDEND IS REMAINDER
PUSHJ P,BNTRUN
MOVE TT,NORMF
SUB P,R70+3
POPJ P,
BQ10: SUB R,DVSL ;SETS UP INITIAL ZERO FOR FIRST GUESS
SKIPG R
JRST BQSHRT
SOSN R
JRST BQ1DF
MOVEM R,DDL
MOVE F,C
BQDD: MOVE F,(F)
MOVE TT,(F)
SOJLE R,BQ11
JRST BQDD
BQ11: MOVEI A,(TT)
MOVEI R,0
HRRM R,(F)
MOVE C,A
JRST BQGESS
;BQ5 BQ7 BQ8 BQ9 BQ9A BQ9B
BQ5: MOVE AR2A,[377777777777]
BQ7: MOVE A,C ;MULTIPLY,SUBTRACT,AND ADD BACK LOOP
MOVEM AR2A,QHAT
SETZB AR2A,AR1
MOVE B,-2(P)
MOVE D,QHAT
PUSHJ P,BQSUB
HLLZS (AR2A)
TRZ AR2A,777777
PUSHJ P,BNTRUN
BQ8: SETOM VETBL0 ;QUOTIENT STORING LOOP
SKIPE REMFL
JRST BQ9
MOVE AR1,A
EXCH TT,AGDBT
MOVE TT,QHAT
PUSHJ P,C1CONS
MOVE F,(P)
HRRM F,(A)
HRRM A,(P)
MOVE A,AR1
EXCH TT,AGDBT
BQ9: MOVE B,-1(P) ;BRING DOWN A NEW DVD WORD
TRNN B,-1
JRST BQFIN
MOVE C,(B)
TRNN C,-1
JRST BQEFIN
BQ9A: MOVE AR1,(C)
TRNN AR1,-1
JRST BQ9B
MOVE B,(B)
MOVE C,(B)
JRST BQ9A
BQ9B: MOVEI AR1,0
HRRM AR1,(B)
HRRM A,(C)
HRR A,C
PUSHJ P,BNTRUN
MOVE C,A
JRST BQ1
;BQEFIN BQSH0 BQ1DF BQGESS BQCHEK BQC2 BQC1 BQFIN
BQEFIN: MOVEI C,0
HRRM C,-1(P)
MOVE C,B
JRST BQ9B
BQSH0: HLLZS R
HRRM R,-1(P)
JRST BQGESS
BQ1DF: HRRZ A,(C)
MOVEI R,0
HRRM R,(C)
MOVE C,A
BQGESS: JRST 2,@[.+1]
MOVE D,DVS1 ;CLEARS NO DIVIDE FLAG
MOVE T,DD1
MOVE TT,DD2
DIV T,D
JSP R,.+1
TLNE R,40
JRST BQ5
JUMPE T,BQ6
MOVE AR2A,T
BQCHEK: MUL T,D
MOVE R,DD1
MOVE F,DD2
SUB F,TT
TLZ F,400000
MOVE R,F
MOVE F,DD3
MOVE T,DVS2
MUL T,AR2A
CAMG T,R
JRST BQC1
BQC2: SOJA AR2A,BQ7
BQC1:
;I've commentted out the following code.
; not that I claim to understand this, but if the quotient is a number of
; the form 1+2↑N for N > 36., then the jump to BQC2 seems to be wrong.
; also as far as I can tell, no other case gets to that jump instruction.
; - JONL - 12/13/79
;;; CAMN T,R
;;; CAMG TT,F
;;; JRST BQ7
;;; JRST BQC2
JRST BQ7
BQFIN: SKIPE REMFL
JRST REMFIN
SETZB A,B
EXCH A,-1(P)
PUSHJ P,RECLAIM
EXCH A,-2(P) ;NOTE: RECLAIM RETURNED NIL
AOSE NORMF
PUSHJ P,RECLAIM
POP P,A
SUB P,R70+2
JRST BNTRUN
;BQSUB BQSUB0 BQSUB7 BQSUB1 BQSUB6
BQSUB: MOVEI R,0 ;THIS MULTIPLIES DIVISOR BY PARTIAL QUOTIENT ESTIMATE
BQSUB0: MOVE AR2A,A ;AND SUBTRACTS FROM THE PARTIAL REMAINDER
MOVE A,(A) ;AND ADDS BACK IF THE ESTIMATE WAS TOO LARGE
MOVE B,(B) ;THE NEW PARTIAL REMAINDER IS STORED IN
HLRZ T,B ;THE SAME WORDS AS THE OLD PART. REM.
MOVE T,(T)
MUL T,D
MOVS AR1,A
ADD TT,R
TLZE TT,400000
AOS T
EXCH TT,(AR1)
SUBB TT,(AR1)
TLZE TT,400000
AOS T
MOVEM TT,(AR1)
TRNN B,-1
JRST BQSUB1
BQSUB7: TRNN A,-1
JRST BQSUB3
MOVE R,T
JRST BQSUB0
BQSUB1: JUMPN T,BQSUB6
MOVE A,C
POPJ P,
BQSUB6: MOVEI B,[R70,,NIL]
JRST BQSUB7
;BQSUB3 BQSUB4
;;; KNUTH SAYS THE FOLLOWING PIECE OF CODE (ADDING BACK) IS
;;; NEEDED IN ONLY ABOUT 3 OR 4 CASES IN 34 BILLION. HERE
;;; ARE TWO NUMBERS ACCIDENTALLY DISCOVERED BY GOSPER WHICH
;;; WILL CAUSE THIS ADDING BACK TO HAPPEN:
;;; THE DIVIDEND IS:
;;; 2791789817939938387128631852330682768655711099796886
;;; 76652915704481188064205113686384821261582354
;;; 6679451522036433421137784129286923496509.
;;; THE DIVISOR IS:
;;; 888654299197548479101428655285643704385285845048283
;;; 973585973531.
;;; TO SEE WHY HE DISCOVERED IT, TRY LOOKING AT THE QUOTIENT!
;;;
;;; HERE ARE TWO MORE NUMBERS WHICH EXCUTE THIS CODE; FURTHERMORE,
;;; THEY CAUSE THE OVER-SUBTRACTED DIVIDEND TO BE SHORTER THAN
;;; THE DIVISOR; THIS IS THE REASON FOR THE COPYING BELOW.
;;; (GOSPER ALSO DISCOVERED THESE NUMBERS!)
;;; THE DIVIDEND IS:
;;; 814814390533794434507378275363751264420699600792121
;;; 5135985742227369051304412442580926595072.
;;; THE DIVISOR IS:
;;; 10889035741470030830827987437816582766593.
BQSUB3: HLLZS (AR2A) ;CHOP OFF END OF ANSWER STORAGE
TRZ AR2A,777777
MOVE A,C
PUSHJ P,BNTRUN ;TRUNCATE ANSWER, WHICH IS A NEGATIVE NUMBER IN POSITIVE FORM
PUSH P,A
HRRZ A,-4(P) ;GET (ABSOLUTE VALUE OF) DIVISOR
PUSHJ P,BCOPY ;MUST COPY IT, OR ELSE CARRY
POP P,B ; TRUNCATION MIGHT CLOBBER IT!
PUSHJ P,BNADD ;SET UP ANSWER FOR ADD BACK
SKIPA B,A
BQSUB4: MOVE B,(B) ;CHOP OFF CARRY
MOVE C,(B)
HRRZ AR1,(C)
JUMPN AR1,BQSUB4
MOVE AR2A,B ;CARRY WILL BE CHOPPED OFF WHEN THIS POPJ'S
SOS QHAT ;CORRECT QUOTIENT GUESS
POPJ P,
;FLBIGF FLBIG FLBIGX FLBIGZ FLTB1 FLBIGQ FLBIGO
SUBTTL BIGNUM TO FLONUM CONVERSION
FLBIGF: JUMPN R,FLBIG
PUSH P,CFLOAT1
FLBIG: PUSHJ P,SAVX5 ;RECEIVES BIGNUM HEADER IN TT,
HLRZ A,TT ;LEAVES SIGN BIT IN AC A
HRRZ T,(TT) ;LEAVES RESULT AS NUMERIC IN TT
JUMPE T,FLTB1 ;SAVES ALL OTHER ACS
PUSHJ P,FLBIGZ
FADR TT,D ;ROUND UP
SKIPE RWG
JFCL 8.,FLBIGX
JFCL 8.,FLBIGO
FLBIGX: JUMPE A,.+2
MOVNS TT
MOVEM TT,-3(FXP)
JRST RSTX5
FLBIGZ: PUSHJ P,1HAU ;MUST BE > 27. BITS, OR ELSE WOULDN'T BE HERE
MOVEI T,(TT)
MOVEI D,27.
PUSHJ P,1HAI1 ;1HAI1 LEAVES TRAILING BITS IN TT+1
ASH TT+1,-8.
TLO TT,200000 ;INSTALL EXPONENTS
TLO TT+1,145000
JFCL 8.,.+1
TRNE T,-1#377 ;INSURE OVERFLOW IF EXPONENT IS TOO LARGE
TRO T,377
FSC TT,(T)
FSC TT+1,(T)
POPJ P,
FLTB1: HLRZ TT,(TT)
MOVE TT,(TT) ;ONE-WORD BIGNUM?
JSP T,IFLOAT
MOVE D,TT
JRST FLBIGX
FLBIGQ: HRROS (P) ;HACK SO THAT (*QUO <FLONUM> <HUGE-BIGNUM>)
JRST FLBIG ; WILL CAUSE UNDERFLOW, NOT OVERFLOW
FLBIGO: PUSHJ P,RSTX5
POP P,T
TLNN T,1 ;IF BIT 3.1 IS SET, SO IS 4.7 (SEE T7O0)
JRST OVFLER
AOJA T,T7O0
;FIXBIG FXBFV FXBFZ FBFIN FXBFQ MNSBG POP4J
SUBTTL FLONUM TO BIGNUM CONVERSION
FIXBIG: MOVE TT,T
MULI TT,400
JSP T,BNARSV
MOVE AR1,A
MOVE F,D
SUBI TT,200
IDIVI TT,43
SETZ R,
ASHC R,(D)
MOVE D,TT
JUMPE R,FXBFQ
MOVE TT,R
JSP T,FWCONS
PUSHJ P,NCONS
MOVE TT,F
MOVE C,A
FXBFV: JSP T,FWCONS
PUSHJ P,NCONS
HRRM C,(A)
MOVEI C,(A)
FXBFZ: SOJLE D,FBFIN
MOVEI TT,0
PUSHJ P,C1CONS
HRRM C,(A)
MOVEI C,(A)
JRST FXBFZ
FBFIN: SKIPG (AR1)
TLC A,-1
JSP T,BNARRS
JRST BNCONS
FXBFQ: MOVEI C,0
MOVE TT,F
JRST FXBFV
MNSBG: TLC TT,-1 ;MINUS, FOR BIGNUM
MOVE A,TT
PUSH P,AR1
PUSH P,[POP4J]
PUSHJ P,BNTRSZ ;FOR 100000000000, CONVERT
MOVE TT,[1←43] ; TO FIXNUM SETZ, ELSE
JRST FIX1
JRST BNCONS ; TO A REGULAR BIGNUM
POP4J: POP P,AR1
POPJ P,
;ABSBG0 ABSBG REMBIG GRBB GRBBL GRBR
SUBTTL ABS AND REMAINDER FOR BIGNUMS
ABSBG0: MOVE TT,(A)
ABSBG: JUMPGE TT,CPOPJ ;ABS FOR BIGNUM
HRRZ A,TT
JRST BGNMAK
REMBIG: EXCH A,B
MOVE D,TT ;REMAINDER FOR BIGNUM
SETZM PLUS8 ;SO THAT ARITHMETIC LOOP WILL RESTORE TO HERE
SETOM REMFL
JSP T,NVSKIP
JRST BNDV ;REMFL WILL STOP ARITHMETIC LOOP
JRST REM2BN
JSP T,REMAIR ;FOO! FLONUM ARG NOT COMPREHENSIBLE!
GRBB: SETZM NORMF ;GREATERP FOR BIGNUM WITH BIGNUM
MOVE A,D
MOVE B,TT
MOVE AR1,D
MOVE AR2A,TT
ASH TT,-43
ASH D,-43
CAME D,TT
JRST GRB13
SETO C,
GRBBL: TRNN AR1,-1
JRST GRB1
TRNN AR2A,-1
JRST GRB2
MOVS AR1,(AR1)
MOVS AR2A,(AR2A)
MOVE D,(AR1)
MOVE TT,(AR2A)
JUMPGE A,.+3
MOVNS D
MOVNS TT
XCT GRESS0
JRST GRBF
SETZ C,
GRBR: MOVSS AR1
MOVSS AR2A
JRST GRBBL
;GRFXB GRBFX GRBF GRB1 GRB12 GRB13 GRB14 GRB2 GRBBEL GRBBE2
SUBTTL GREATERP AND LESSP FOR BIGNUMS
GRFXB: SETZM NORMF ;GREATERP FOR FIXNUM WITH BIGNUM
PUSH FXP,D
MOVE B,TT
MOVEI AR2A,QBIGNUM
MOVEI AR1,QFIXNUM
TLNE D,400000
SKIPA D,XC-1
MOVEI D,1
JRST GRB14
GRBFX: SETZM NORMF ;GREATERP FOR BIGNUM WITH FIXNUM
PUSH FXP,TT
MOVE A,D
MOVEI AR1,QBIGNUM
MOVEI AR2A,QFIXNUM
TLNE TT,400000
SKIPA TT,XC-1
MOVEI TT,1
JRST GRB14
GRBF: CAMN D,TT
JRST GRBR
SETO C,
JRST GRBR
GRB1: TRNN AR2A,-1
JRST GRBBEL
MOVEI D,2
MOVEI TT,4
GRB12: TLNE A,1
EXCH D,TT
GRB13: MOVEI AR1,QBIGNUM
MOVEI AR2A,QBIGNUM
GRB14: XCT GRESS0
SKIPA C,[-1]
MOVEI C,0
JRST GRBBE2
GRB2: SETOM NORMF
MOVEI D,4
MOVEI TT,2
JRST GRB12
GRBBEL: MOVEI AR1,QBIGNUM
MOVEI AR2A,QBIGNUM
GRBBE2: MOVE D,A
MOVE TT,B
CAIN AR2A,QFIXNUM
POP FXP,TT
CAIN AR1,QFIXNUM
POP FXP,D
SKIPE NORMF
MOVNS C
SKIPN C
XCT CSUCE
XCT CFAIL
;1HAI 1HAI1 2HAI 2HAI2 2HAI0 2HAI3 2HAI4
SUBTTL HAIPART FOR BIGNUMS
IFN USELESS,[
1HAI: JSP T,FXNV2
JUMPLE D,3HAI
PUSH FXP,D
PUSHJ P,1HAU
POP FXP,D
CAILE D,35.
JRST 2HAI
PUSH P,CFIX1
] ;END OF IFN USELESS
;IN USELESS VERSION, 1HAI CALLED ONLY BY FLBIG
1HAI1: ADDI R,-35.-1(D) ;FINAL ANSWER FITS IN ONE WORD
HLRZ D,(F) ;SPREAD OUT HIGH WORD AND
MOVE D,(D) ;NEXT-TO-HIGH WORD INTO TT,D
HRRZ TT,(F)
HLRZ TT,(TT)
MOVE TT,(TT)
ASHC TT,(R)
POPJ P,
IFN USELESS,[
2HAI: SUBI TT,(D)
JUMPLE TT,CPOPJ
PUSHJ FXP,SAV3 ;COPY BIGNUM, BUT TOSS OUT LOW ORDER BITS
IDIVI TT,35. ;HOW MANY BITS TO THROW AWAY
MOVEI F,(A)
HRRZ F,(F)
SOJGE TT,.-1
MOVN C,D
SUBI D,35.
HLRZ TT,(F)
MOVE TT,(TT)
HRRZ F,(F) ;F IS CDR'ING DOWN INPUT
JUMPE F,2HAI0
HLRZ T,(F)
MOVE T,(T) ;C HOLDS AMNT TO SHIFT RIGHT BY
ASHC T,(C)
PUSHJ P,C1CONS
MOVEI B,(A)
2HAI2: MOVEI R,(A) ;R HAS PTR TO LAST OF FORMING LIST
HRRZ F,(F)
JUMPE F,2HAI3
ASHC T,(D) ;MOVE T INTO TT
HLRZ T,(F)
MOVE T,(T)
ASHC T,(C)
PUSHJ P,C1CONS
HRRM A,(R)
JRST 2HAI2
2HAI0: ASH TT,(C) ;DEFINITELY A BUG TO COME HERE,SINCE WE
JSP R,RSTR3
JRST FIX1 ;THINK WE ARE RETURNING A BIGNUM
2HAI3: JUMPE T,2HAI4
MOVE TT,T
PUSHJ P,C1CONS
HRRM A,(R)
2HAI4: MOVEI A,(B)
PUSHJ P,BGNMAK
POP P,C
JRST POP2J
] ;END OF IFN USELESS
;;; THE CODE FOR 3HAI IS PUTCODED.
;GCDBG GCDBG0 GCDBG1 GCDBG2 GCDBGU GCDBHU GCDBG4
IFN USELESS,[
SUBTTL GCD FOR BIGNUMS
GCDBG: MOVEI F,1 ;INITIALIZE SMALLNUM MATRIX
MOVEM F,GCD.A
MOVEM F,GCD.D
SETZM GCD.B
SETZM GCD.C
HLRZ R,(TT) ;GET LOW ORDER WDS OF ARGS
MOVE R,(R)
HLRZ F,(D)
MOVE T,R ;LOW WD OF U
IOR R,(F)
PUSH FXP,R
JUMPE R,GCDBG4 ;BOTH LOW WDS 0
MOVN R,R
ANDM R,(FXP) ;GRTST COMMON PWR OF 2 OR 0 IF > 2↑35.
PUSH FXP,(F) ;LOW WD OF V.
JUMPN T,GCDBG0 ;IF T=0 AND (F) EVEN, XTRA PWR OF 2 WILL
EXCH A,B ; COME BACK FROM RECURSION, SO SWAP TO
EXCH TT,D ; UNZERO T, THUS GUARANTEEING RECURSION WITH
EXCH T,(FXP) ; AT LEAST 1 ODD ARG.
GCDBG0: MOVEI R,(TT) ;GET HI WDS IF SAME LENGTH.
MOVEI F,(D)
HRRZ D,(D)
HRRZ TT,(TT)
JUMPE D,GCDBG2
JUMPN TT,GCDBG0
EXCH A,B ;B IS LONGER THAN A
GCDBG1: SUB FXP,R70+2
PUSH P,B ;A IS LONGER THAN B
PUSHJ P,REMAINDER ;SO GCD(A,B) = GCD(REMAINDER(A,B),B)
POP P,B
JRST GCD
GCDBG2: JUMPN TT,GCDBG1 ;U,V UNEQUALLY LONG
HLRZ R,(R) ;U,V EQUALLY LONG,
HLRZ F,(F) ; GET ACTUAL HI WDS.
MOVE TT,(R)
MOVE D,(F)
POP FXP,R ;TT,D HAVE HI WDS (OR 0 AND NON0 IF UNEQUAL LENGTH)
MOVEI F,35. ;T,R HAVE LO WDS
MOVEM F,GCD.UH ;SHFT CTR
GCDBGU: TRNE T,1
JRST GCDBGV ;U IS ODD
GCDBHU: LSH T,-1
LSH D,1 ;TT RIGHT 1 REL TO D
JUMPGE D,.+3
LSH D,-1
LSH TT,-1
MOVE F,GCD.C ;HALVING A, B EQUIV TO DOUBLING C,D
ADDM F,GCD.C
MOVE F,GCD.D
ADDM F,GCD.D
SOSE GCD.UH
JRST GCDBGU
GCDBG4: PUSH P,A
PUSH P,B
MOVE TT,GCD.A
PUSHJ P,BNXTIM
PUSH P,A ;T <- A*U
MOVE A,-1(P)
MOVE TT,GCD.B
PUSHJ P,BNXTIM
POP P,B
PUSHJ P,.PLUS ;T <- T+B*V
PUSHJ P,BNLWFL
EXCH A,-1(P)
MOVE TT,GCD.C
PUSHJ P,BNXTIM
EXCH A,(P) ;W <- C*U
MOVE TT,GCD.D
PUSHJ P,BNXTIM
POP P,B
PUSHJ P,.PLUS ;W <- W+D*V
PUSHJ P,BNLWFL
POP P,B ;U <- T
POP FXP,TT
CAIN TT,1
JRST GCD
PUSH FXP,TT
PUSHJ P,GCD
MOVEI B,(FXP)
SKIPN (B)
MOVEI B,BN235 ;CAN ONLY HAPPEN WHEN BOTH LO WDS 0
PUSHJ P,.TIMES
SUB FXP,R70+1
POPJ P,
;GCDBGV GCDBHV BNLWFL BNLWFX BNLWXX GCDBGO GCDBGT GCDBX GCDOV GCDOV1
GCDBGV: TRNE R,1
JRST GCDBGO ;BOTH U,V ODD
GCDBHV: LSH R,-1
LSH TT,1
JUMPGE TT,.+3
LSH TT,-1
LSH D,-1
MOVE F,GCD.A
ADDM F,GCD.A
MOVE F,GCD.B
ADDM F,GCD.B
SOSE GCD.UH
JRST GCDBGV
JRST GCDBG4
BNLWFL: HRRZ B,(A) ;FLUSH LOW 35. ZEROS OF A
JUMPE B,BNLWXX
HRRZ B,(B)
HRRZ TT,(B) ;GCD only permitted to clobber A,B
JUMPE TT,BNLWFX ;IF BIGNUM BECOMES FIXNUM
HRRM B,(A)
POPJ P,
BNLWFX: HLRZ A,(B)
POPJ P,
BNLWXX: SKIPE (A)
MOVEI A,IN0-1
POPJ P,
GCDBGO: CAML TT,D
JRST GCDBGT
SUB D,TT
SUB R,T
MOVN F,GCD.A
ADDM F,GCD.C
MOVN F,GCD.B
ADDM F,GCD.D
JRST GCDBHV
GCDBGT: SUB TT,D
SUB T,R
MOVN F,GCD.C
ADDM F,GCD.A
MOVN F,GCD.D
ADDM F,GCD.B
JRST GCDBHU
GCDBX: SKIPN D,(B) ;FIXNUM IS ZERO - RETURN BIGNUM
JRST ABSBG0 ;MAYBE NEED TO TAKE ABS VALUE
CAMN D,[400000,,] ;CHECK FOR NASTY -400000000000 CASE
JRST GCDOV
PUSH P,B ;ELSE TAKE A REMAINDER
PUSHJ P,REMAINDER
POP P,B
JRST .GCD ;GUARANTEED TO HAVE TWO FIXNUMS NOW
GCDOV: MOVEI B,(A) ;HANDLE NASTY -400000000000 CASES
GCDOV1: PUSHJ P,ABSOV
JRST GCD
] ;END OF IFN USELESS
PGTOP BIG,[BIGNUM-ONLY ARITHMETICS]
;;@ END OF BIGNUM 18
]
;POP3UB POP2UB EVALHOOK EVNH3 EVNH0 OEVAL OEVL1 EVAL EVAL0
SUBTTL EVAL, EVALHOOK, AND EVAL-WHEN
PGBOT EVL
POP3UB: POPI P,1
POP2UB: POPI P,2
JRST UNBIND
EVALHOOK:
JSP TT,LWNACK
LA23,,QEVALHOOK
MOVE D,T
JSP T,SPECBIND ;BIND "EVALHOOK" TO LAST ARG
-1←33. 0,VEVALHOOK
CAME D,XC-2
JRST EVNH3
PUSH P,[POP2UB]
MOVE A,-2(P)
JRST EVNH0
EVNH3: PUSH P,[POP3UB]
PUSH P,-3(P)
PUSH P,-3(P)
PUSHJ FXP,AEVAL
EVNH0: SKIPN V.RSET ;EVALUATE, BYPASSING HOOK CHECK
JRST EV0 .SEE STORE
JRST EVAL0
OEVAL: JSP TT,LWNACK ;"EXTERNAL" EVAL - LSUBR (1 . 2)
LA12,,QOEVAL ;MAY TAKE ALIST AS SECOND ARG
AOJE T,OEVL1
PUSH P,[POP2J] ;PHOO! HAVE TO KEEP THE SAME EVALFRAME
PUSH P,-2(P) ;
PUSH P,-2(P)
PUSHJ FXP,AEVAL ;MAKE UP ALIST, POP OFF 2, AND LEAVE ARG IN A
JRST EVAL
OEVL1: POP P,A
EVAL: SKIPN V.RSET ;"INTERNAL" EVAL - ARG IN A
JRST EV0
SKIPN B,VEVALHOOK
JRST EVAL0
JSP T,SPECBIND ;SUPER-RANDOM HACK SO THAT MM
VEVALHOOK ; CAN INVENT A ↑N FOR LISP
CALLF 1,(B)
JRST UNBIND
EVAL0: SKIPE NIL ;RANDOM PLACE TO CHECK FOR NIL CLOBBERED
PUSHJ P,NILBAD
PUSH P,FXP ;EVAL FRAME FORMAT:
HRLM FLP,(P) ; FLP,,FXP
PUSH P,A ; SP,,<FORM>
HRLM SP,(P) ; $EVALFRAME
PUSH P,[$EVALFRAME] ;SEE APPLY FOR FORMAT OF APPLY FRAMES
.SEE L$EVALFRAME
;FALLS THROUGH
;EV0 EV0A EV0ALS EVAPH EV0H EVTB1 EV2 EVTB2 EE1 EE2 EE2A ETT EAL EAL2 EFM
;FALLS IN
;;; EVALUATE A FORM IN A
EV0: JUMPE A,CPOPJ ;NIL => NIL, ALWAYS!!!
MOVEI C,ILIST
SKOTT A,LS
2DIF JRST (TT),EVTB1-1,QLIST .SEE STDISP
IFN HNKLOG,[
TLNE TT,HNK
JRST EV0H ;HUNK?
]; End of IFN HNKLOG,
EV0A: MOVE AR1,(A) ;FUNCTION ON 0(P), place to exit in C
HLRZ T,AR1 ; this routine should put into TT the address
SKOTT T,LS ; of the place to jump for running the code.
2DIF JRST (TT),EVTB2-1,QLIST .SEE STDISP
IFN HNKLOG,[
TLNE TT,HNK ;Hunk?
JRST EVAPH ; Go apply it
EV0ALS:
]; END of IFN HNKLOG,
HLRZ TT,(T)
CAIN TT,QLAMBDA
JRST EXP3
CAIE TT,QFUNARG
CAIN TT,QLABEL
JRST EXP3
JUMPL C,EV3B
SKIPE B,VOEVAL
JCALLF 1,(B) ;EVALSHUNT
HLRZ A,AR1
TLNN C,777740 ;MAYBE SAVE FUNCTION NAME IN EV0B
MOVEM A,EV0B
PUSH P,EV0B ;NON-ATOMIC FUNCTION, NOT LAMBDA,
PUSH P,C ; LABEL, OR FUNARG
PUSH P,AR1
PUSHJ P,EV0 ;SO EVALUATE THE FORM
POP P,AR1
POP P,C
POP P,EV0B
JRST EV4 ;NOW TRY USING THE RESULT AS A FUNCTION
IFN HNKLOG,[
;; Apply a hunk
EVAPH: PUSH P,T
PUSHJ P,USRHNP ;Maybe this is a user-extended hunk?
MOVE TT,T
POP P,T
JUMPE TT,EV0ALS ;Not ours, just like a list
MOVEI TT,IAPPLY
JRST ESB2
;; Evaluate a hunk
EV0H: PUSHJ P,USRHNP ;Maybe this is a user-extended hunk
JUMPE T,EV0A ;No, go pretend it's a list
PUSH P,A
PUSH P,[QOEVAL]
MOVNI T,2
XCT SENDI ;Let's send it an EVAL message
POPJ P,
]; END of IFN HNKLOG,
EVTB1: JRST PDLNKJ ;FIXNUMS EVALUATE TO THEMSELVES
JRST PDLNKJ ;DITTO FLONUMS
DB$ JRST PDLNKJ ;DITTO DOUBLES
CX$ JRST PDLNKJ ;DITTO COMPLEXES
DX$ JRST PDLNKJ ;DITTO DUPLEXES
BG$ POPJ P, ;GUESS WHAT, FELLAHS
JRST EE1 ;SOME HAIR FOR SYMBOLS
HN$ REPEAT HNKLOG+1, .VALUE ;HUNKS (SHOULD BE CAUGHT BEFORE THIS TABLE)
JRST EV2 ;RANDOMS LOSE
POPJ P, ;ARRAYS EVAL TO SELVES
IFN .-EVTB1-NTYPES+1, WARN [WRONG LENGTH TABLE]
EV2: %WTA EMS25 ;UNEVALUABLE DATUM (RANDOMNESS)
JRST EV0
EVTB2: JRST EV3A ;FIXNUM AS A FUNCTION IS AN ERROR
JRST EV3A ;DITTO FLONUM
DB$ JRST EV3A ;DITTO DOUBLE
CX$ JRST EV3A ;DITTO COMPLEX
DX$ JRST EV3A ;DITTO DUPLEX
BG$ JRST EV3A ;DITTO BIGNUM
JRST EE2 ;SYMBOLS - THE GOOD CASE
HN$ REPEAT HNKLOG+1, .VALUE ;HUNKS
JRST EV3A ;IT'S A TRULY RANDOM FUNCTION!
JRST ESAR ;IT'S AN ARRAY
IFN .-EVTB2-NTYPES+1, WARN [WRONG LENGTH TABLE]
EE1: PUSHJ P,EVSYM ;EVALUATE SYMBOL
POPJ P, ;WIN
JRST EV0 ;LOSE - RETRY
EE2: SETZ R, ;ZERO R FOR HACK TO TRAP AUTOLOAD LOSS
EE2A: HRRZ T,(T) ;CAR (X) IS ATOMIC
JUMPE T,EAL2 ;GET FUNCTION DEFINITION OFF ATOM
HLRZ TT,(T)
HRRZ T,(T)
CAIL TT,QARRAY ;SYMBOL HEADERS FOR FUNCTION MARKERS
CAILE TT,QAUTOLOAD ; ARE LINEAR IN MEMORY
JRST EE2A
2DIF JRST @(TT),ETT,QARRAY
ETT: EAR ;ARRAY
ESB ;SUBR
EFS ;FSUBR
ELSB ;LSUBR
AEXP ;EXPR
EFX ;FEXPR
EFM ;MACRO
EAL ;AUTOLOAD
EAL: HRRI R,(T) ;NOTE THAT WE SAW AUTOLOAD PROPERTY
JRST EE2A
EAL2: JUMPL R,EV3J ;FN UNDEF AFTER AUTOLOAD
JUMPE R,EV3 ;NO AUTOLOAD PROP - TRY EVALING ATOM
MOVEI B,(R)
HLRZ T,(A)
PUSHJ P,IIAL
HLRZ T,(A)
SETO R,
JRST EE2A
EFM: CAIE C,ILIST ;FOUND MACRO FOR EVAL CASE
JRST EE2A ; BUT IGNORE MACROS FOR APPLY
MOVE B,AR1
HLRZ AR1,(T) ;COMMENT THIS CROCK
CAIN A,AR1
PUSHJ P,CONS1
CALLF 1,(AR1) ;SO HAND THE FORM TO THE MACRO
JRST EVAL ; AND RE-EVALUATE THE RESULT
;EFX AEXP EXP3 CIAPPLY EFS ELSB ELSB1 ESAR EAR EAR3 EAR1
EFX: HLRZ T,(T) ;FOUND FEXPR
HLL T,AR1 ;SO A FEXPR BEHAVES LIKE AN EXPR
PUSH P,T ; WHOSE ONE ARG IS CDR OF THE FORM
HRLI AR1,400000 .SEE IAP4 ;FOR EXPLANATION OF THIS HACK
PUSH P,AR1 ; WHICH ALLOWS FEXPRS AN ALIST ARG, SEE
MOVNI T,1 ; THE CODE AT IAPPLY
JRST IAPPLY
AEXP: HLRZ T,(T) ;FOUND EXPR
HLL T,AR1
EXP3: PUSH P,T ;FOUND LAMBDA, LABEL, FUNARG
MOVEI A,(AR1)
CIAPPLY:
MOVEI TT,IAPPLY
JRST (C)
EFS: HLRZ T,(T) ;FOUND FSUBR
MOVEI C,ESB3 ;THIS IS SO WE DON'T EVAL THE ARGS!
JRST ESB2
ELSB: PUSH P,CPOPJ ;FOUND LSUBR
HLLM AR1,(P)
MOVE R,T
HLL R,AR1
MOVEI TT,ELSB1
HRRZ A,AR1
JRST (C)
ELSB1: MOVEI A,NIL ;A HAS NIL WHEN ENTERING AN LSUBR
HLRZ D,(R)
SKIPN V.RSET
JRST (D)
HLRZ R,R
PUSHJ P,ARGCK0 ;CHECK OUT NUMBER OF ARGS
JRST ESB6
JRST (D)
ESAR: SKIPA TT,T ;FOUND SAR
EAR: HLRZ TT,(T) ;FOUND ARRAY
MOVEI R,(TT)
SKOTT TT,SA
JRST EV3A
EAR3: HRRZ T,ASAR(R)
CAIN T,ADEAD
JRST EV3A ;AHA! THIS ARRAY IS DEAD!
PUSH P,R
MOVEI T,EAR1 ;MUST DO SOME HAIR SO THAT
JRST ESB4 ; INTERRUPTS WON'T SCREW US
EAR1: MOVE T,LISAR ;DO NOT MERGE THIS WITH IAPAR1
JRST @ASAR(T) .SEE ESB3
;ESB ESB4 ESB2 ESB1 ESB3 ESB3A ESB3C EV3 EV4 EV4B EV3C EFMER EWHEN SYMEV0 SYMEVAL EVSYM EE1A
ESB: HLRZ R,AR1 ;FOUND SUBR
HLRZ T,(T)
ESB4: MOVEI TT,ESB1
ESB2: MOVEI A,(AR1) ;A GETS LIST OF ARGS
HLL T,AR1
PUSH P,T ;STORE ADDRESS OF SUBROUTINE FOR FN
JRST (C) ;GO SOMEWHERE OR OTHER
ESB1: PUSHJ P,ARGCHK
JRST ESB6
MOVE TT,[A,,A+1]
MOVEI A,Q..MIS
BLT TT,A+NACS-1
JSP R,PDLA2(T)
ESB3: HRRZ TT,(P)
CAIN TT,EAR1 ;HACK TO HELP EAR1 WIN
JRST ESB3C
ESB3A: SKIPN V.RSET
POPJ P, ;ADDRESS OF SUBR IS ON STACK
MOVEI TT,CPOPJ ;WELL, MAYBE DO SOME *RSET HAIR
HLL TT,(P)
EXCH TT,(P)
JRST (TT)
ESB3C: HRRZ TT,-1(P)
MOVEM TT,LISAR ;SAR PROTECTED BY BEING IN LISAR
POP P,-1(P)
JRST ESB3A
EV3: SKIPE EVPUNT ;PUNT EVALUATION OF SYMBOL?
JRST EV3C
JUMPL C,EV3B ;C<0 => TOO MANY RE-EVALS OF A FN
HLRZ A,AR1
HLRZ A,(A)
HRRZ A,@(A) ;GET VALUE OF ATOMIC FUNCTION
CAIN A,QUNBOUND ;IT'S UNBOUND. LOSE, LOSE, LOSE...
JRST EV3A
TLNN C,777740 ;SAVE FN NAME IN EV0B, MAYBE
HLRZM AR1,EV0B
EV4: ADD C,[1←34.] ;THIS SIZE OF THIS QUANTITY CONSTRAINS
EV4B: HRL AR1,A ; THE # OF TIMES WE MAY RE-EVAL THE FN
MOVEI A,AR1
JRST EV0A
EV3C: CAIN C,ILIST ;RUN OUT OF THINGS TO TRY WHEN LOOKING FOR
JRST EV3A ; FUNCTION DEF ON A SYMBOL. DID "APPLY"
EFMER: LERR EMS21 ;IMPROPER USE OF MACRO
;;; (EVAL-WHEN (. . . EVAL . . .) e1 e2 . . . en) does a progn on
;;; the ei, and returns non-null only if the evaluations were done.
;;; The context combined with the first arg list determines if any
;;; thing is done - if there is EVAL in this list, then the progn
;;; is done.
EWHEN: HRRZ C,(A)
SKOTT C,LS
JRST FALSE
PUSH P,C
HLRZ B,(A)
MOVEI A,QOEVAL
PUSHJ P,MEMQ1
POP P,B
JUMPE A,CPOPJ
JRST IPROGN
SUBTTL SYMEVAL
SYMEV0: %WTA NASER
SYMEVAL: JUMPE A,CPOPJ ;SUBR 1
JSP T,SPATOM
JRST SYMEV0
PUSHJ P,EVSYM
POPJ P, ;WON
JRST SYMEVAL ;LOST
;;; EVALUATE ATOMIC SYMBOL. SKIPS ON FAILURE (AFTER DOING ERROR).
EVSYM: HLRZ T,(A) ;T GETS POINTER TO SYMBOL BLOCK
HRRZ T,@(T) ;AR1 GETS VALUE FROM VALUE CELL!!!
CAIN T,QUNBOUND
JRST EE1A ;FOOBAR! VALUE CELL CONTAINS UNBOUND
MOVEI A,(T) ;SO THE VALUE IS THE RESULT OF EVAL
POPJ P,
EE1A: %UBV MES6 ;UNBOUND VAR
JRST POPJ1
;;; END OF EVSYM ROUTINE
;APPLY APPWT1 .APPLY AP3 AP3A APPWTA AP2 AP4
SUBTTL APPLY, *APPLY, SUBRCALL, LSUBRCALL, ARRAYCALL, FUNCALL
APPLY: CAME T,XC-2 ;"EXTERNAL" APPLY - SUBR (2 . 3)
JRST AP4 ;MAY TAKE A THIRD ALIST ARG
JSP R,PDLA2(T)
APPWT1: JUMPE B,AP3 ;ALLOW NIL AS SECOND ARG
SKOTT B,LS ;SECOND ARG TO APPLY MUST BE A LIST
JRST APPWTA
.APPLY: ;SUBR 2 (*APPLY)
AP3: SKIPN V.RSET
JRST AP3A
PUSH P,B
PUSH P,FXP
HRLM FLP,(P)
PUSH P,A
HRLM SP,(P)
PUSH P,[$APPLYFRAME]
AP3A: MOVEI AR1,(B) ;"INTERNAL" APPLY -
HRL AR1,A ; FUNCTION IN A, LIST OF ARGS IN B
MOVEI A,AR1
MOVEI C,AP2 ;THIS CROCK LETS US SHARE CODE WITH
JRST EV0A ; EVAL BY PREVENTING EVAL'ING OF ARGS
APPWTA: EXCH A,B
WTA [MUST BE A LIST -- APPLY!]
EXCH A,B
JRST APPWT1
AP2: MOVEI T,0 ;DE-LISTIFY THE ARGS AND STACK THEM
JUMPE A,(TT) ; ON THE PDL, AND ALSO COUNT THEM
PUSH P,(A) ;DOING THINGS THIS WAY AVOIDS
HLRZS (P) ; DESTROYING ANY OTHER ACS
HRRZ A,(A)
SOJA T,.-4
AP4: JSP TT,LWNACK ;APPLY WITH AN ALIST (GOOD GRIEF!)
LA23,,QAPPLY
MOVEM T,APFNG1
SKIPE A,(P) ;PURPOSELY CRIPPLING THE POWER OF
JSP T,FXNV1 ; THE ALIST ROUTINE: FOOEY! - GLS
PUSHJ P,ALIST ;SO CREATE MORONIC ALIST ENVIRONMENT
EXCH T,APFNG1
JSP R,PDLA2(T)
SKIPE APFNG1 ;ALIST RETURNING NON-ZERO IN T =>
PUSH P,CAUNBIND ; TWO BIND BLOCKS WERE PUSHED
PUSH P,CAUNBIND
JRST AP3
;SUBRCALL RETTYP %LSUBRCALL PTRCHK
SUBRCALL:
JSP TT,FWNACK ;LSUBR (2 . 7)
FA234567,,QSUBRCALL
JSP TT,JLIST
ADDI T,1
JSP R,PDLARG
POP P,TT
JSP D,PTRCHK
PUSHJ P,(TT)
RETTYP: POP P,D ;PURELY FOR TYPE CHECKING
CAIN D,QFIXNUM
JSP T,FXNV1
CAIN D,QFLONUM
JSP T,FLNV1
POPJ P,
%LSUBRCALL:
JSP TT,FWNACK ;FSUBR
FA2N,,Q%LSUBRCALL
JSP TT,JLIST
MOVEI D,(P)
ADDI D,(T)
MOVEI TT,RETTYP
EXCH TT,1(D)
JSP D,PTRCHK
AOJA T,(TT)
PTRCHK: CAIL TT,BEGFUN
CAIL TT,ENDFUN
JRST .+2
JRST (D)
CAML TT,BPSL
CAML TT,@VBPORG
IFN HISEGMENT,[
JRST .+2
JRST (D)
CAIL TT,ENDHI
CAML TT,HBPORG
] ;END OF IFN D10
JRST PTRCKE
JRST (D)
;%ARRAYCALL %ARR7 FUNCALL FUNCA1
%ARRAYCALL:
JSP TT,FWNACK ;FSUBR
FA76543,,Q%ARRAYCALL
JSP TT,JLIST
MOVEI D,(T)
ADDI D,(P) ;FALLS INTO FUNCALL
%ARR7: HRRZ A,1(D)
SKOTT A,SA
SOJA T,%ARR0
MOVEI B,CPOPJ
EXCH B,(D)
HLRZ TT,@1(D) .SEE ASAR
MOVEI F,AS<SX>
CAIN B,QFIXNUM
MOVEI F,AS<FX>
CAIN B,QFLONUM
MOVEI F,AS<FL>
TRNN TT,(F)
JRST %ARR0A
FUNCALL: MOVEI D,QFUNCALL ;LSUBR (1 . 777)
JUMPE T,WNALOSE ;(FUNCALL F X1 X2 ... XN) IS LIKE
FUNCA1: SKIPN V.RSET ; (APPLY F (LIST X1 X2 ... XN))
AOJA T,IAPPLY ;IN *RSET MODE, WE FAKE
ADDI T,1 ; OUT THE UUO STUFF
MOVEI TT,(P) ; INTO DOING THE APPLY
ADDI TT,(T) ; FRAME HACKERY FOR US
MOVEI B,CPOPJ
EXCH B,(TT)
JCALLF 16,(B)
;%LXFC liap0 liap0a liap0b liap1 liavec liavc0 liavc9
; "VCTRS" is either (), or else a list of the subr address for, in order,
; (VECTORP VECTOR-LENGTH VREF)
;LEXPR-FUNCALL
%WNA MES20
%LXFC: aojge t,.-1 ;Count the function arg
skipn vctrs
jrst liap0
move a,(p) ;get &rest arg to spread
push fxp,t ;Save T from the ferocious compiled fn
hlrz t,@vctrs
pushj p,(t) ;calls the VECTORP function
jumpn a,liavec ;Bleh, kludgy vectors, do it slow
pop fxp,t ;recover T
liap0: pop p,a ;Get &rest arg to spread, again
aoja t,liap0b ;account for 1 arg being "popped off"
liap0a: wta [LAST ARG NOT A LIST OR VECTOR - LEXPR-FUNCALL!]
liap0b: movei tt,(a)
lsh tt,-seglog
hrrz tt,st(tt)
caie tt,QLIST
jumpn a,liap0a
liap1: jumpe a,iapply ;on null, exit
hlrz b,(a) ;get CAR
push p,b ;push it on the stack as next arg
hrrz a,(a) ;Next!
soja t,liap1 ;and loop, counting
liavec: hrrz t,@vctrs
hlrz tt,(t) ;address of VECTOR-LENGTH function
hrrz t,(t)
hlrz t,(t)
push fxp,t ;address of VREF function
push fxp,[-1] ;"index" to cycle over the vector
move a,(p) ;Get vector
pushj p,(tt) ;calls the VECTOR-LENGTH function
push fxp,(a) ;Save it on FXP
movn tt,(a) ;Get - the length
addm tt,-3(fxp) ;update the argument count
liavc0: aos tt,-1(fxp) ;increment our count
caml tt,(fxp) ;Have we reached the end?
jrst liavc9 ; Yep, let's get out of here
move a,(p) ;Get vector
movei b,-1(fxp) ;Get index
hrrz t,@vctrs
hrrz t,(t)
hlrz t,(t)
pushj p,(t) ;calls the VREF function
exch a,(p) ;put it on the stack
push p,a ;Save our vector again
jrst liavc0 ;loop the loop
liavc9: popi p,1 ;Throw away the vector, we're all through
popi fxp,3 ;toss off "length", "index" and "vref-addr"
pop fxp,t ;At last, our argument count
aoja t,iapply ;Don't count function as arg, go apply it
;IAPPLY ILP1 IALIS ILP1B
;;; VERY INTERNAL APPLY, FOR USE PARTICULARLY WITH "CALL" UUO'S
;;;
;;; STATE OF WORLD AT ENTRANCE TO IAPPLY:
;;; T HAS -<NUMBER OF ARGS ON PDL>.
;;; PDL HAS ARGS ON IT; BELOW THEM IS A SLOT
;;; WITH THE FUNCTION IN THE RIGHT HALF.
;;; THE FUNCTION'S NAME IS MAYBE IN THE LEFT HALF.
;;; C IS USED PRIMARILY TO POINT TO THIS LATTER SLOT; AND, AS
;;; USUAL, THE LEFT HALF HELPS TO LIMIT FUNCTION RE-EVALS.
;;; IF THERE IS ONLY ONE ARG ON THE STACK, 400000 IN THE LEFT
;;; HALF OF THE PDL SLOT MEANS FUNCTION IS A FEXPR, AND MAY
;;; THEREFORE TAKE AN EXTRA (A-LIST) ARGUMENT.
IAPPLY: MOVE C,T ;STATE OF WORLD AT ENTRANCE:
ADDI C,(P) ; T HAS -<NUMBER OF ARGS ON PDL>
ILP1: MOVE A,(C) ; NEXT PDL SLOT HAS FUNCTION IN RH,
TLZN A,-1
HRLM A,(C) ; Save FN in left half in case it's not there
SKOTT A,LS
2DIF JRST (TT),APTB1-1,QLIST ;FN IS NOT LIST STRUCTURE
IFN HNKLOG,[
TLNE TT,HNK
JRST IAHNK
IALIS:
] ; END IFN HNKLOG,
HRRZ B,(A)
HLRZ A,(A)
CAIN A,QLAMBDA
JRST IAPLMB ;IT'S A LAMBDA
CAIN A,QFUNARG
JRST APFNG ;IT'S A FUNARG (MORE GOOD GRIEF!)
CAIN A,QLABEL
JRST APLBL ;IT'S A LABEL (SUPER GOOD GRIEF!)
PUSH P,C
PUSH FXP,T
HRRZ A,(C)
JUMPL C,IAP2A ;JUMP IF WE'VE RE-EVAL'ED TOO MUCH
PUSHJ P,EV0 ;ELSE EVAL THE FUNCTIONAL FORM
POP P,C ; AND TRY IT AGAIN...
POP FXP,T
ILP1B: MOVE B,(C)
HRRM A,(C)
TLO C,400000
JRST ILP1
;APTB1 IAPATM IAPAT2 IAPAT3 IATT IAPIAL IAPIA1 IIAL IAPSAR IAPARR IAPSBR IAPSB1 IAPAR1 IAHNK IAPXPR IAPLSB IAP2
APTB1: JRST IAP2A ;FIXNUMS ARE NOT FUNCTIONS!
JRST IAP2A ;NOR FLONUMS
DB$ JRST IAP2A ;NOR DOUBLES
CX$ JRST IAP2A ;NOR COMPLEXES
DX$ JRST IAP2A ;NOR DUPLEXES
BG$ JRST IAP2A ;NOR BIGNUMS ALREADY
JRST IAPATM ;SYMBOLS ARE OKAY, BUT JUST BARELY
HN$ REPEAT HNKLOG+1, .VALUE ;HUNKS
JRST IAP2A ;TRUE RANDOMS ARE OUT!
JRST IAPSAR ;IT'S AN ARRAY - OKAY, I GUESS
IAPATM: HRRZ B,(A) ;APPLY GOT ATOMIC FUNCTION
HRRZS 1(C) ;KILL POSSIBLE 400000 BIT DUE TO FEXPR
TDZA R,R
IAPAT2: HRRZ B,(B)
IAPAT3: JUMPE B,IAPIA1 ;GRAB FUNCTION FROM PROP LIST
HLRZ TT,(B)
HRRZ B,(B)
CAIL TT,QARRAY ;REMEMBER, FUNCTION PROPS ARE
CAILE TT,QAUTOLOAD ; LINEAR IN MEMORY
JRST IAPAT2
2DIF JRST @(TT),IATT,QARRAY
IATT: IAPARR ;ARRAY
IAPSBR ;SUBR
IAPSBR ;FSUBR
IAPLSB ;LSUBR
IAPXPR ;EXPR
IAPXPR ;FEXPR
IAPAT2 ;JUST IGNORE MACROS
IAPIAL ;AUTOLOAD
IAPIAL: HRRI R,(B)
JRST IAPAT2
IAPIA1: JUMPL R,IAP2J
JUMPE R,IAP2
MOVEI B,(R)
PUSH FXP,T
MOVEI T,(A)
PUSHJ P,IIAL
POP FXP,T
HRRZ B,(A)
SETO R,
JRST IAPAT3
IIAL: PUSH P,A
HLRZ A,(B)
PUSHJ P,AUTOLOAD
JRST POPAJ
IAPSAR: SKIPA TT,A ;APPLY A SAR
IAPARR: HLRZ TT,(B) ;APPLY AN ARRAY
MOVEM TT,LISAR ;FOR INTERRUPT PROTECTION ONLY
MOVEI R,(T)
MOVEI TT,IAPAR1
JRST IAPSB1
IAPSBR: HLRZ TT,(B) ;APPLY A SUBR
HRRZ R,(C)
IAPSB1: HRRM TT,(C)
JRST ESB1
IAPAR1: MOVE TT,LISAR
JRST @ASAR(TT)
IFN HNKLOG,[
IAHNK: SKIPN ICALLI ;Do we have a CALL interpreter?
JRST IALIS
PUSH P,T
PUSHJ P,USRHNP ;Is this a user hunk?
EXCH T,TT
POP P,T
JUMPE TT,IALIS ;Nope, just pretend it's a list
XCT ICALLI ;Otherwise run user's hook
]; -- End IFN HNKLOG,
IAPXPR: HLRZ A,(B)
JRST ILP1B
IAPLSB: MOVEI TT,CPOPJ
HRRM TT,(C)
MOVE R,B
JRST ELSB1
IAP2: SKIPE EVPUNT ;DON'T EVALUATE FUNCTIONAL VARIABLE?
JRST IAP2A
JUMPL C,IAP2A
HRRZ A,(C) ;APPLY FUNCTIONAL FROM VALUE CELL
HLRZ A,(A)
HRRZ A,@(A)
CAIE A,QUNBOUND ;FOOBAR! IT'S UNBOUND
JRST ILP1B
JRST IAP2A
;IAPLMB IPLMB1 IAP5 IAP5C IAP5B IPLMB2 IPLMB4 IPLM4A IPLM4B IPLMB5 LMBLP LMBLP1 LMBLP2 IPROGN IAP3 CUNBIN IAP4
IAPLMB: HLRZ TT,(B) ;APPLY A LAMBDA EXPRESSION
MOVEI D,(TT)
LSH D,-SEGLOG
MOVE D,ST(D)
TLNE D,SY
JUMPN TT,IAP3
SETZ D, ;IMPORTANT THAT D BE NON-NEG - SEE IAP4
MOVEI C,(TT)
HRRZ B,(B)
MOVE R,T
IPLMB1: JUMPE T,IPLMB2 ;NO MORE ARGS
JUMPE TT,QF2A ;TOO MANY ARGS SUPPLIED
IAP5: HLRZ A,(TT)
SKIPE V.RSET
JUMPN A,IAP5C
IAP5C: MOVEI AR1,1(T)
ADD AR1,P
HLLZ D,(AR1) ;SEE COMMENT AT EFX - ALLOWS
HRLM A,(AR1) ; A FEXPR TO TAKE AN A-LIST ARG
HRRZ TT,(TT)
AOJA T,IPLMB1
IAP5B: MOVEI D,(A)
LSH D,-SEGLOG
MOVE D,ST(D)
TLNN D,SY
JRST LMBERR
JRST IAP5C
IPLMB2: JUMPN TT,IAP4 ;TOO FEW ARGS SUPPLIED
JUMPN R,IPLMB4 ;NO LAMBDA LIST IN FUN
POP P,TT
HRRI TT,CPOPJ ;LAMBDA LIST IS NULL
SKIPE V.RSET
PUSH P,TT
HRRZ A,(B)
JUMPN A,LMBLP
HLRZ A,(B)
JRST EVAL
IPLMB4: MOVEM SP,SPSV
SKIPA
IPLM4A: PUSHJ P,BIND ;BIND VALUES TO LAMBDA VARS
IPLM4B: POP P,AR1 ;FUN HAS A NON-NL LAMBDA LIST
HLRZ A,AR1
SKIPE A ;IF NIL AS VARIABLE, DON'T BIND THIS ARG
AOJLE R,IPLM4A ;TO BIND A NON-NIL VARIABLE
AOJLE R,IPLM4B ;THIS WINS EVEN IF PREVIOUS INS DOESN'T JUMP
SKIPN V.RSET
JRST IPLMB5
HRRI AR1,CPOPJ
TLNE AR1,-1
PUSH P,AR1
IPLMB5: JSP T,SPECX
HRRZ AR1,(B)
PUSH P,CUNBIND
HLRZ A,(B)
JUMPE AR1,EVAL ;A GENERALIZED LAMBDA: NON-NULL LAMBDA LIST
LMBLP: PUSH P,B ;FOR GENERAL LAMBDAS, EVALS SEQUENCE OF EXP'S
HLRZ A,(B)
PUSHJ P,EVAL
LMBLP1: POP P,B
HRRZ B,(B)
LMBLP2: JUMPN B,LMBLP
POPJ P,
IPROGN: MOVEI A,NIL ;INTERNAL PROGN
JRST LMBLP2
IAP3: MOVEI A,(TT) ;APPLY LEXPR
MOVN TT,T
CAIL TT,XHINUM
JRST LXPRLZ
MOVEI AR1,CPOPJ
HRRM AR1,(C)
MOVEI AR1,IN0(TT)
MOVEM SP,SPSV
PUSHJ P,BIND
MOVEI C,(C)
EXCH C,ARGLOC
HRLI C,ARGLOC
PUSH SP,C ;BIND ARGLOC TO LOC OF ARGS ON PDL
EXCH AR1,ARGNUM
HRLI AR1,ARGNUM
PUSH SP,AR1 ;BIND ARGNUM TO NUMBER OF ARGS
JSP T,SPECX
HRRZ B,(B)
PUSHJ P,LMBLP
SKIPN T,@ARGNUM
JRST UNBIND
HRLS T
SUB P,T
JRST UNBIND
CUNBIN: JRST UNBIND
IAP4: JUMPGE D,QF3A
AOJN R,QF3A
JRST IAP4A ;FEXPR OF TWO ARGS
;FUNCTION QUOTE DECLARE $COMMENT SETQ SET1 SET0 $AND $OR ANDOR
SUBTTL FUNCTION, QUOTE, DECLARE, COMMENT, SETQ, AND, OR
FUNCTION: SKIPA D,CQFUNCTION ;FEXPR 1
QUOTE: MOVEI D,QQUOTE ;FEXPR 1
JUMPE A,WNAFOSE
HRRZ TT,(A)
JUMPE TT,$CAR
JRST WNAFOSE
DECLARE: MOVEI A,QDECLARE ;FSUBR (IGNORES ARG)
POPJ P,
$COMMENT: MOVEI A,Q$COMMENT ;FSUBR (IGNORES ARG)
POPJ P,
SETQ: PUSH P,A
SET1: PUSHJ FXP,SET0 ;DO ONE STEP OF A "MULTIPLE" SETQ.
SKIPE (P)
JRST SET1
JRST POP1J
SET0: HLRZ A,@(P) ;ASSUMES ARGLIST PTR STORED IN 0(P)
JSP D,SETCK ;ENTERED BY PUSHJ FXP,SET0
HRRZ B,@(P)
JUMPE B,SETWNA
PUSH P,A ;ATOM TO BE SETQ'D
HLRZ A,(B)
HRRZ B,(B)
MOVEM B,-1(P) ;CDR THE ARGLIST
PUSHJ P,EVAL
POP P,AR1
JSP T,.SET
POPJ FXP,
$AND: HRLI A,TRUTH
$OR: HLRZ C,A
PUSH P,C
ANDOR: HRRZ C,A
JUMPE C,POPAJ
MOVSI C,(SKIPE (P))
TLNE A,-1
MOVSI C,(SKIPN (P))
XCT C
JRST POPAJ
MOVEM A,(P)
HLRZ A,(A)
PUSHJ P,EVAL
EXCH A,(P)
HRR A,(A)
JRST ANDOR
;PROG PRG1 PRG1Z PG0 LPRP PG1 PG1A PG0A VBIND PBIND PBIND1 PBIND2 PROGV RETURN PRXIT ERRP4 RHAPJ CQFUNCTION
SUBTTL PROG, PROGV, RETURN, GO
PROG: HLRZ AR2A,(A) ;FSUBR
HRRZ A,(A)
PRG1: JUMPE AR2A,PRG1Z ;EITHER THEY ARE NIL OR
SKOTT AR2A,LS ; MUST HAVE A LIST FOR PROG VARS
JRST PRGER1
PRG1Z: PUSH P,A
SETZ C,
JSP T,PBIND ;BIND PROG VARIABLES TO NIL
POP P,A
PUSHJ P,PG0 ;EVALUATE PROG BODY
MOVEI A,NIL
JRST UNBIND ;UNBIND VARIABLES
PG0: PUSH P,PA3
PUSH P,PA4
PUSH P,SP
PUSH P,FXP
PUSH P,FLP
LPRP==.-PG0+1 ;LENGTH OF PROG PDL, IE HOW MUCH PROG HAS
MOVEM P,PA4 ;CAUSED TO BE PUSHED
HRLS A
MOVEM A,PA3
PG1: HLRZ T,PA3
PG1A: JUMPE T,PRXIT ;NORMAL EXIT
HLRZ A,(T)
HRRZ T,(T)
HRLM T,PA3
SKOTT A,LS
JRST PG1
PUSHJ P,EVAL
PG0A: JRST PG1
;;; JSP T,VBIND ;LIST OF SYMBOLS IN AR2A, VALUES IN A
;;; BINDS EACH SPECIAL VARIABLE IN THE LIST TO CORRESPODNING VALUES.
;;; IF VALUES LIST TOO SHORT, "UNBOUND" GETS USED FOR PROGV, AND
;;; NIL OTHERWISE.
VBIND: MOVEI C,(A) ;INTERPRETED AND COMPILED PROGV COME HERE
SKIPA R,[QUNBOUND] ;USE UNBOUND AS VALUE OF EXTRA VARIABLES
PBIND: MOVEI R,NIL ;USE NIL AS VALUE OF EXTRA VARS
MOVEM SP,SPSV ;BIND PROG VARIABLES
JUMPE AR2A,SPECX
MOVEI AR1,NIL
PBIND1: HLRZ A,(AR2A) ;NEXT VARIABLE
HLRZ AR1,(C) ;NEXT VALUE
SKIPN C ;HAVE WE RUN OFF THE END OF THE LIST?
MOVEI AR1,(R) ;YES, USE DEFAULT VALUE
SKOTT A,SY
JRST PBIND2
CAIE A,TRUTH ;DONT BIND NON-SYMBOLS, NOR "T"
PUSHJ P,BIND
PBIND2: HRRZ C,(C)
HRRZ AR2A,(AR2A)
JUMPN AR2A,PBIND1
JRST SPECX
PROGV: HRRZ B,(A) ;FSUBR
HRRZ C,(B)
HLRZ A,(A)
HLRZ B,(B)
PUSH P,C
PUSH P,B
PUSHJ P,EVAL ;GET LIST OF VARIABLES
EXCH A,(P)
PUSHJ P,EVAL ;GET LIST OF VALUES
POP P,AR2A
JSP T,VBIND ;BIND VARIABLES
POP P,B
PUSHJ P,LMBLP ;EVAL REST LIKE LAMBDA BODY
JRST UNBIND
RETURN: JSP T,BKERST ;SUBR 1
MOVE P,PA4
AOS -LPRP+1(P) ;RETURN CAUSES SKIP
PRXIT: POP P,FLP ;PROG EXIT
POP P,FXP
POP P,TT
PUSHJ P,UBD0
POP P,PA4
ERRP4: POP P,PA3
RHAPJ: MOVEI A,(A)
CQFUNCTION: POPJ P,QFUNCTION
;GO GO2 GO1 PG5 PG5A GO3 GO3B GO3A
GO: JSP TT,FWNACK
FA1,,QGO
HLRZ A,(A)
GO2: JSP T,SPATOM ;LEAVES TYPE BITS IN TT
JRST GO3
GO1: JSP T,BKERST
HRRZ T,PA3
PG5: JUMPE T,EG1
HLRZ TT,(T)
HRRZ T,(T)
CAIN TT,(A)
JRST PG5A
TLNN A,400000 ;4.9 BIT => GO TAG IS NUMERIC
JRST PG5
MOVEI D,(TT)
LSH D,-SEGLOG
SKIPL D,ST(D)
TLNN D,FX+FL
JRST PG5
MOVE TT,(TT)
CAME TT,(A)
JRST PG5
PG5A: MOVE P,PA4
MOVE FLP,(P)
MOVE FXP,-1(P)
HRRZ TT,-2(P)
PUSHJ P,UBD
JRST PG1A
GO3: TLNN TT,FX+FL
JRST GO3A
GO3B: MOVE TT,(A) ;SET 4.9 BIT OF A IF TAG IS NUMERIC
CAML TT,[-XLONUM]
CAIL TT,XHINUM ; BUT NOT INUM
TLO A,400000
JRST GO1
GO3A: PUSHJ P,EVAL ;IF ARG TO GO ISN'T ATOMIC, DO ONE EVAL AND TRY AGAIN
MOVEI TT,(A)
LSH TT,-SEGLOG
MOVE TT,ST(TT)
TLNE TT,FX+FL
JRST GO3B
TLNE TT,SY
JRST GO1
JRST EG1
;DO DO4A DO4 DO4C DO7 DO7A DO9
SUBTTL DO FUNCTION
DO: PUSH P,PA4
SETZM PA4
PUSH FXP,R70 ;A "DO SWITCH" TO MARK EXPANDED FORMAT
PUSH P,A
HLRZ A,(A)
SKOTT A,LS ;HUNKS WIN AS WELL AS LISTS
JUMPN A,DO4A
HRROM A,(FXP)
HLRZ A,@(P) ;SETUP FOR MULTIPLE INDICES
HRRZ C,@(P)
HLRZ B,(C)
JRST DO4
DO4A: MOVE A,(P) ;SINGLE INDEX DO
HRRZ B,(A)
HRRZ B,(B)
HRRZ B,(B)
MOVE C,B
DO4: HRRZ C,(C)
MOVEM A,(P) ; (P) PROG BODY
DO4C: SKOTT B,LS
JUMPN B,DOERRE
PUSH P,B ; -1(P) ENDTEST
PUSH P,C ; -2(P) DO VARS LIST
MOVE A,-2(P)
MOVSI R,600000 ;EVALUATE AND SETUP INITIAL VALUES
SKIPN -1(P)
MOVSI R,400000 ;200000 BIT SAYS STEPPERS ARE OKAY
PUSHJ FXP,DO5
SKIPN -1(P)
JRST DO4D
DO7: HLRZ A,@-1(P)
PUSHJ P,EVAL
JUMPN A,DO8
DO7A: MOVE A,(P)
PUSHJ P,PG0 ;DO PROG BODY (MAY SKIP ON RETURN STATEMENT)
JRST DO2
DO9: MOVE B,-2(P)
SUB P,R70+3 ;BREAK OUT OF BODY BY RETURN STATEMENT
POP P,PA4
SUB FXP,R70+1
JUMPN B,UNBIND
POPJ P,
;DO8 DO2 DO4D DO5 DO5Q DO5Q1 DO5F DO5B
DO8: SKIPN A,(FXP)
JRST DO9 ;SIMPLE DO FORMAT
HRRZ B,@-1(P) ;DO PASSED ENDTEST, AND RETURNS A VALUE
PUSHJ P,IPROGN
JRST DO9
DO2: MOVE A,-2(P)
MOVEI R,0 ;DO STEPPING FUNCTIONS
PUSHJ FXP,DO5
JRST DO7
DO4D: MOVE A,(P)
PUSHJ P,PG0
SETZ A, ;DEFAULT VALUE OF ONCE-THROUGH DO IS NIL
JRST DO9
DO5: JUMPE A,DO6 ;DOES PARALLEL SETQS - ON LISTS LIKE (I V1 V2)
PUSH P,A ;WILL DO (SETQ I V1) IF R < 0
SKIPE -1(FXP) ;WILL DO (SETQ I V2) IF R > 0
HLRZ A,(A) ;IF DOSW SAYS SINGLE INDEX, THEN ONLY ONE LIST
DO5Q: MOVEI B,(A)
JUMPGE R,DO5F
SKOTT A,SY ;A SINGLETON SYMBOL
JRST DO5Q1 ;NOPE. TRY FURTHUR CHECKS
HRLZS A ;TREAT AS (<SYMBOL> NIL)
EXCH A,(P)
JRST DO5C
DO5Q1: SKOTT A,LS
JRST DOERR
HLRZ A,(B)
JSP T,SPATOM
JRST DOERR
TLNE R,200000
JRST DO5F
HRRZ A,(B)
JUMPE A,DO5F
HRRZ A,(A)
JUMPN A,DO5ER
DO5F: HLRZ A,(B)
HRLM A,(P)
HRRZ A,(B)
JUMPL R,DO5E
JUMPE A,DO5B
HRRZ A,(A)
JUMPN A,DO5D
DO5B: POP P,A
SOJA R,DO5C
;DO5E DO5D DO5G DO5C DO6 DO6A DO6C
DO5E: JUMPE A,DO5G ;(I) IS SAME AS (I NIL) ON INITIAL VALUE
DO5D: HLRZ A,(A)
PUSH FXP,R
PUSHJ P,EVAL
POP FXP,R
DO5G: HLL A,(P)
EXCH A,(P) ;NOW (P) HAS ATOM,,VALUE
DO5C: HRRZ A,(A)
SKIPN -1(FXP)
MOVEI A,0 ;SO THAT SINGLE FORMAT DO WILL DROP OUT
AOJA R,DO5
DO6: TRNN R,-1 ;[(SETQ I V1) FROM ABOVE]
POPJ FXP, ;FIRST TIME THROUGH, WE ALLOW OLD BINDINGS
JUMPGE R,DO6C ;TO BE REMEMBERED ON THE SPDL FOR UNBINDING
HRRZS R
MOVEM SP,SPSV
DO6A: POP P,AR1
HLRZ A,AR1
PUSHJ P,BIND
SOJG R,DO6A
JSP T,SPECX
POPJ FXP,
DO6C: POP P,AR1 ;DURING THE STEPPING PHASE, AS OPPOSED TO
HLRZ A,AR1 ;THE INITIALIZATION PHASE, WE LET NO BINDINGS
PUSHJ P,BIND ;ACCUMULATE ON THE SPDL
JSP T,SETXIT
SOJG R,DO6C
POPJ FXP,
;COND1 COND CON3 COND2 CON2 BKERST BKRST3 BKRST4 BKRST0 BKRST2 BKRST1
SUBTTL COND, ERRSET, ERR, CATCH, THROW, CASE, IF, *CATCH, *THROW,
; UNWIND-PROTECT, CATCHALL, CATCH-BARRIER
COND1: HRRZ A,(B)
COND: JUMPE A,CPOPJ ;ENTRY
PUSH P,A
HLRZ A,(A)
HLRZ A,(A)
CAIE A,TRUTH
PUSHJ P,EVAL
CON3: POP P,B
JUMPE A,COND1 ;IF FIRST OF COND PAIR IS TRUE
HLRZ B,(B)
SKIPA
COND2: POP P,B
HRRZ B,(B)
JUMPE B,CPOPJ ;LOOP FOR GENERALIZED COND PAIR
PUSH P,B
HLRZ A,(B)
PUSHJ P,EVAL
CON2: JRST COND2
BKERST: SKIPN TT,PA4
JRST BKRST1
TLZ TT,-1
SKIPE B,CATRTN
JRST BKRST2
BKRST3: SKIPE B,ERRTN
CAILE TT,(B)
JRST (T) ;NO TROUBLESOME CATCHS OR ERRSETS
BKRST4: MOVEI TT,BKERST
BKRST0: MOVEM TT,-LERSTP(B) ;BREAK UP A TROUBLESOME CATCH OR ERRSET, E.G.
HRRZI TT,(B) ;WE WAN'T TO GET RID OF THIS FRAME, HANDLE ALL UNWIND-PROTECTS
; INCLUDING THE FRAME WE WANT TO FLUSH
PUSHJ FXP,UNWPRO
CAILE TT,(P) ;IF P LESS THAN FRAME OF INTEREST, THEN IT WAS AN
; UNWIND-PROTECT FRAME AND UNWPRO THREW IT AWAY. JUST
; RETURN TO OUR CALLER.
JRST (T)
;ELSE THROW THE FRAME AWAY BY HAND
MOVE P,B ;(PROG (A) (ERRSET (RETURN (FOO A))))
JRST ERR1 ;AND THEN TRY BKERST AGAIN
BKRST2: CAILE TT,(B)
JRST BKRST3 ;CATCH ISN'T TROUBLESOME, SO TEST FOR ERRSETS
JRST BKRST4 ;AH, CATCH IS TROUBLESOME!
BKRST1: MOVEI A,LGOR
%FAC EMS22
;ERRSET ERRST3 ERRNX ERR ERR3A ERR3 CATCH .CATCH .CATC1 CATCHB CATCB2 CATCB1 CATCHALL UNWINP UNWERR PTNTRY UNWINC PTEXIT UNWINE THROW .THROW CATHRO WIOSPC WIOSP0 WIOSP1 WIOBND WIOBN0 WIOBN1 WIOUNB WIOUN0 WIOUN1
ERRSET: JSP TT,FWNACK
FA12,,QERRSET
MOVEI C,TRUTH
HRRZ B,(A)
JUMPE B,ERRST3
PUSH P,A
HLRZ A,(B)
PUSHJ P,EVAL
MOVEI C,(A)
POP P,A
ERRST3: JSP T,ERSTP
MOVEM P,ERRTN
MOVEM C,ERRSW
HLRZ A,(A)
PUSHJ P,EVAL
ERRNX: PUSHJ P,NCONS ;NORMAL EXIT
JRST ERUN0
ERR: JSP TT,FWNACK
FA012,,QERR
JUMPE A,ERR2
HRRZ B,(A)
JUMPE B,.+3
HLRZ B,(B)
JUMPE B,ERR3A
HLRZ A,(A) ;EVAL BEFORE UNBLOCKING
PUSHJ P,EVAL
JRST ERR2
ERR3A: SKIPN ERRTN
JRST LSPRET
MOVEI T,ERR3
EXCH T,-LERSTP(P)
JRST ERR0 ;UNBLOCK THE ERRSET, THEN
ERR3: SKIPE A ;EVAL THE ARG TO ERR
HLRZ A,(A)
PUSH P,T
JRST EVAL
CATCH: JSP TT,FWNACK
FA12,,QCATCH
PUSHJ P,CATHRO
JSP TT,CATPS1
HLRZ A,(B)
PUSHJ P,EVAL
MOVEI B,NIL ;CAUSE MOST RECENT CATCH TO BE THROWN
JRST THROW1
;(*CATCH <tag-or-list-of-tags> e1 . . . en)
; TAG OR TAG-LIST IS EVALUATED. THEN E1 THROUGH EN ARE EVALED. IF A THROW
; OR *THROW IS DONE THEN IS LIKE A REGULAR CATCH.
.CATCH: PUSH P,A ;SAVE POINTER TO ARGS
HLRZ A,(A) ;EVAL TAG/TAG-LIST
PUSHJ P,EVAL
HRLI A,CATSPC\CATLIS ;FLAG IT AS TAG-LIST
SKOTT A,LS ;IS IT A LIST?
HRRZS A ; NO IT ISN'T LIST
.CATC1: POP P,B ;RESTORE POINTER TO ARGS
JSP TT,CATPS1
HRRZ B,(B) ;CDR THE LIST OF ARGS
PUSHJ P,IPROGN ;IMPLICIT PROGN AROUND THEM
JRST THRALL ;THEN BREAK-UP CURRENT CATCH FRAME
; (CATCH-BARRIER <list-of-tags> E1 . . . En)
; LIST-OF-TAGS IS EVALUATED. THEN E1 THROUGH EN ARE EVALED. IF A THROW
; OR *THROW IS DONE THEN IF TAG IS IN LIST-OF-TAGS, THE CATCH-BARRIER RETURNS,
; ELSE AN UNSEEN-CATCH-TAG ERROR IS GENERATED
CATCHB: PUSH P,A ;SAVE POINTER TO ARGS
HLRZ A,(A) ;EVAL TAG/TAG-LIST
PUSHJ P,EVAL
CATCB2: SKOTT A,LS ;IS IT A LIST?
JRST CATCB1 ;NOPE, ERROR
HRLI A,CATSPC\CATLIS\CATCAB ;YES, FLAG CATCH FRAME CORRECTLY
JRST .CATC1 ;REST IS JUST LIKE *CATCH
CATCB1: WTA [MUST BE A LIST OF TAGS - CATCH-BARRIER!]
JRST CATCB2
;(CATCHALL function e1 . . . en)
; FUNCTION IS A FUNCTION OF TWO ARGS. E1 THROUGH EN ARE EVALED, AND IF NO
; THROW IS DONE THE VALUE OF EN IS RETURNED. IF ANY THROW IS DONE, FUNCTION
; IS INVOKED WITH THE FIRST ARG BEING THE THROW TAG AND THE SECOND BEING THE
; THROWN VALUE. THE VALUE OF THE FUNCTION IS THEN RETURNED AS THE VALUE
; OF THE CATCHALL.
CATCHALL:
PUSH P,A ;SAVE POINTER TO ARGS
HLRZ A,(A) ;EVAL FUNCTION
PUSHJ P,EVAL
HRLI A,CATSPC\CATALL ;FLAG AS A CATCHALL
JRST .CATC1 ;REST IS LIKE *CATCH
;(UNWIND-PROTECT e u1 u2 . . . un)
; EXECUTES U1 THRU Un WHEN THE "CONTOUR" OF THE UNWIND-PROTECT IS EXITED.
; IF e TERMINATES NORMALLY, THEN U1 THRU UN ARE EVALUATED AND THE VALUE
; RETURNED BY e IS RETURNED. IF A NON-LOCAL EXIT OCCURS THRU AN UNWIND-PRO
; FRAME, THEN U1 THRU UN ARE EVALED AND THE EXIT CONTINUES.
UNWINP: HRRZ B,(A) ;GET CDR OF ARG LIST
HRLI B,CATUWP\CATSPC ;AN UNWIND-PROTECT FRAME
MOVEM B,CATID
PUSH FXP,P ;SAVE CURRENT STATE OF STACK
JSP T,ERSTP
MOVEM P,CATRTN
HLRZ A,(A) ;CAR OF ARG LIST
PUSHJ P,EVAL ;EVALUATE IT
HRRZ TT,(FXP) ;NOW MUST RUN THE UNWIND PROTECT FUNCTIONS
PUSHJ FXP,UNWPRO ;UNDO THE UNWIND-PROTECT FRAME
POPI FXP,1 ;REMOVE THE SAVED PDL POINTER FROM FXP
POPJ P, ;THEN RETURN THE VALUE OF e
;ERROR TRAP FOR UNWIND-PROTECT, SHOULD NEVER GET HERE!
UNWERR: LERR [SIXBIT \UNWIND-PROTECT LEFT DUMMY RETURN ADR ON STACK!\]
;COMPILED UNWIND-PROTECT, ENTER WITH JSP TT, CONTINUATION IS AT PC C(TT)+1
PTNTRY::
UNWINC: PUSH P,[UNWERR] ;IF GETS HERE, HMM...
AOS TT ;POINT TO START OF CONTINUATION
HRLI TT,CATUWP\CATCOM\CATSPC ;AN UNWIND-PROTECT FRAME
MOVEM TT,CATID
JSP T,ERSTP
MOVEM P,CATRTN
JRST -1(TT) ;RETURN TO COMPILED CODE
;COME HERE TO CLOSE UP AN UNWIND PROTECT. CALLED WITH JSP T,
PTEXIT::
UNWINE: MOVEM TT,-LEP1-4(P) ;SAVE RETURN ADR (AN EXTRA SLOT IS ON P)
MOVEI TT,-LEP1(P) ;ADR TO UNWIND TO
PUSHJ FXP,UNWPRO ;UNDO THE UNWIND-PROTECT FRAME
POPJ P, ;THEN RETURN THE VALUE OF e
;OLD STYLE MACLISP THROW, UNEVALUATED TAG
THROW: JSP TT,FWNACK
FA12,,QTHROW
PUSHJ P,CATHRO
PUSH P,A
HLRZ A,(B)
PUSHJ P,EVAL
POP P,B
JRST THROW1
;(*THROW TAG VAL) SUBR
.THROW: EXCH A,B ;THROW1 WANTS TAG IN B, VAL IN A
JRST THROW1 ;THEN DO A THROW
CATHRO: MOVE B,A
HRRZ A,(A)
JUMPE A,CPOPJ
HLRZ A,(A)
POPJ P,
;;; WITHOUT-INTERRUPTS: ROUTINES WHEN PWIOINT GETS BOUND AND UNBOUND
;;; CALLED from SPECBIND, new value in
;;; R has new value, T has address of word with address in right half.
WIOSPC: PUSH P,TT
HRRZ TT,(T) ;Get address we were trying to clobber
CAIN TT,PWIOINT ;Our special hack location?
JRST WIOSP0 ; yes, hack it
POP P,TT
EXCH R,@(T) ;Otherwise redo instruction to get real int
JRST SPEC4A ;And continue with the SPECBIND if continued
WIOSP0: MOVEI TT,(R) ;New value to TT
SKIPE REALLY ;If UNWPR1 has it living on the stack
SKIPA R,@REALLY ; Get old value for SPEC4A from there
MOVE R,UNREAL ; Else normal.
JUMPE TT,WIOSP1 ;NIL, use as is
CAIE TT,QTTY ;TTY, that's meaningful
MOVNI TT,1 ;Else use -1
WIOSP1: PUSHJ P,WIOBN0 ;Store into UNREAL, maybe run CHECKU
POP P,TT
JRST SPEC4A
;;;CALLED FROM BIND, NEW VALUE IN AR1
WIOBND: HRRZ TT,UNREAL ;CURRENT VALUE
HRRM TT,(SP) ;REMEMBER INSTEAD OF MEANINGLESS VALUE
MOVEI TT,(AR1)
JUMPE TT,WIOBN0 ;NIL, USE AS IS
CAIE TT,QTTY ;TTY, THAT'S MEANINGFUL
MOVNI TT,1 ;ELSE USE -1
WIOBN0: JUMPL TT,WIOBN1
PUSH P,A
PUSH FXP,D
PUSH FXP,F
MOVE A,TT
PUSHJ P,ABIND3
PUSHJ P,CHECKU
POP SP,SPSV ;SO RE-OPEN THE BIND-BLOCK
POP FXP,F
POP FXP,D
POP P,A
POPJ P, ;RETURN FROM BIND
WIOBN1: MOVEM TT,UNREAL
POPJ P,
;;; CALLED FROM AFTER UNBIND -- (FXP) HAS OLD VALUE IN LH. CAN ONLY DESTROY T.
WIOUNB: EXCH D,(FXP) ;GET OLD VALUE, SAVE D
PUSH FXP,F ;SAVE F ALSO -- CHECKU MAY CLOBBER
PUSH P,A ;A WILL GET NEW (OLD) VALUE OF UNREAL
HLRZ A,D ;FIGURE OUT REAL OLD VALUE
CAIN A,-1 ;IF HALFWORD -1, THEN TURN INTO FULLWORD
MOVNI A,1
SKIPE REALLY
JRST WIOUN1
PUSHJ P,CHECKU ;RUN INTERRUPTS AS APPROPRIATE
WIOUN0: POP P,A ;RESTORE AC'S AND RETURN
POP FXP,F
POP FXP,D
POPJ P,
WIOUN1: MOVEM A,@REALLY ;Store it in the saved slot
JRST WIOUN0
;CASEQ CASEE CASEF CASES CASE1 CASE1E CASE1H CASE1D CASE1B CASE1A CASE1Z CASE1G CASE1Q CASEBQ CASEBZ CASEM CASECK CASEEQ CASEAQ CASE1C IF IF1A
CASEQ:; TDZA R,R ;FLAG IN R WHETHER CASE/Q
;CASE: SETOI R,
JUMPE A,CPOPJ ;ENTRY, RETURN NIL IF NO ARGS
PUSH P,A ;SAVE POINTER TO ARG LIST
HLRZ A,(A) ;GET EXPRESSION TO MATCH AGAINST
CASEE:; PUSH FXP,R
CAIE A,TRUTH ;FOR SPEED, CHECK FOR SPECIAL KIND
PUSHJ P,EVAL
; POP FXP,R
JUMPE A,CASES ;NIL IS A SYMBOL
MOVE T,A
LSH T,-SEGLOG
MOVE T,ST(T)
TLNE T,FX ;FIXNUM EXPRESSION?
JRST CASEF
TLNE T,SY ;SYMBOL AS EXPRESSION?
JRST CASES
WTA [MATCHING EXPRESSION NOT FIXNUM OR SYMBOL!]
JRST CASEE ;WIN IF USER TRIES AGAIN
CASEF: MOVSI T,FX ;TEST AGAINST FIXNUMS ONLY
JRST CASE1
CASES: MOVSI T,SY ;TEST AGAINST SYMBOLS ONLY
CASE1: POP P,B ;POINTER TO CASE'S ARGUMENTS
PUSH P,A ;EQ TEST AGAINST SYMBOL RETURNED
HRRZ A,(B) ;THE LIST OF MATCHING SETS AND EXPRS
CASE1E: PUSH P,A
HLRZ A,(A) ;THE POINTER TO THE NEXT SET/EXPRS PAIR
HLRZ A,(A) ;THE LIST OF MATCHES OR THE SINGLE MATCH
CASE1H: CAIN A,TRUTH ;IF T THEN AN 'OTHERWISE' CLAUSE
JRST CASEM
MOVEI TT,(A)
LSH TT,-SEGLOG
MOVE TT,ST(TT)
TLNN TT,LS ;IS THE MATCHING SET A LIST?
JRST CASE1Q ;NO, HANDLE SPECIALLY
CASE1D: PUSH P,A
HLRZ A,(A) ;GET NEXT ELEMENT
CASE1B:;JUMPE R,CASE1A ;DON'T EVALUATE EXPR IF CASEQ
; CAIN A,TRUTH
; JRST CASE1A
; PUSH P,T ;SAVE FLAGS OVER EVAL
; PUSHJ P,EVAL
; POP P,T
; SETO R, ;MAKE SURE FLAG IS STILL CORRECT
CASE1A: TLNE T,SY ;IF TESTING FOR SYMBOLS
JUMPE A,CASE1Z ;THEN NIL IS A VALID ONE
MOVEI TT,(A)
LSH TT,-SEGLOG
TDNN T,ST(TT) ;MATCHING TYPE?
JRST CASE1C
CASE1Z: POP P,B
JSP TT,CASECK ;NON SKIP IF MATCH
JRST CASEM ;MATCH FOUND, PROCESS EXPRESSIONS
HRRZ A,(B) ;GET THE CDR
JUMPN A,CASE1D ;IF MORE MATCHING IN THIS LIST THEN PROCEED
CASE1G: POP P,A ;RESTORE THE LIST OF PAIRS POINTER
HRRZ A,(A) ;THE CDR POINTS TO NEXT CONS
JUMPN A,CASE1E ;IF NOT END OF LIST THEN PROCEED
POPI P,1 ;GET RID OF MATCHING POINTER
POPJ P,
CASE1Q:;JUMPE R,CASEBQ ;IF CASEQ LEAVE UNEVALUATED
; PUSH P,T ;SAVE FLAG
; CAIE A,TRUTH
; PUSHJ P,EVAL
; POP P,T
; SETO R, ;FLAG MUST BE SET IF DID EVAL
CASEBQ: TLNE T,SY ;IF TESTING FOR SYMBOLS
JUMPE A,CASEBZ ;THEN NIL IS A VALID ONE
MOVEI TT,(A) ;TYPE CHECK UNEVALUATED MATCHING ARG
LSH TT,-SEGLOG
TDNN T,ST(TT)
JRST CASEAQ ;NOT MATCH
CASEBZ: JSP TT,CASECK ;NON-SKIP IF MATCH
SKIPA
JRST CASE1G ;MATCH NOT FOUND
CASEM: POP P,A ;GET BACK POINTER TO CONS WITH MATCH
HLRZ A,(A)
MOVEM A,(P) ;CLOBBER MATCHING ARG WITH EXPR LIST
SETZ A, ;MAKE SURE RETURN NIL IF NOTHING TO DO
JRST COND2
CASECK: TLNN T,FX ;USE EQ FOR ATOMS, = FOR FIXNUMS
JRST CASEEQ
MOVE D,(A) ;GET THE FIXNUM
CAME D,@-1(P) ;CHECK USING =
JRST 1(TT) ;SKIP FOR FAILURE
JRST (TT)
CASEEQ: CAME A,-1(P) ;EQ CHECK
JRST 1(TT) ;SKIP FOR FAILURE
JRST (TT)
CASEAQ: WTA [DOES NOT MATCH MATCHING EXPRESSION TYPE!]
JRST CASE1H
CASE1C: POP P,A
WTA [DOES NOT MATCH MATCHING EXPRESSION TYPE!]
JRST CASE1D
IFN 0,[ ;TEMPORARILY(?) REMOVED
IF: PUSH P,A
HLRZ A,(A) ;TEST EXPRESSION
CAIE A,TRUTH
PUSHJ P,EVAL
POP P,B
HRRZ B,(B)
SKIPN A
JRST IF1A ;FOR FAILURE EVALUATE ALL REMAINING FORMS
HLRZ A,(B)
CAIE A,TRUTH
PUSHJ P,EVAL
POPJ P,
IF1A: PUSH P,B ;COND REQUIRES POINTER TO LIST ON STACK
JRST COND2
];END IFN 0
;SETF SETF2S SETF5 SETF1 SETF2C STF2C1 STF2C2 SETF1B SETF1C SETF2A STF2A5 STF2A7 STF2A9 CSETF5 SETF2G STF2G2 EVALCAR SETF3
SUBTTL "SYSTEM" MACROS - SMALL FSUBR'S TO PARALLEL COMPILER MACROS
;;; CURRENTLY: PUSH, POP,
COMMENT | FOO! SOMETHING HAS TO GO!
SETF: PUSH P,A
JRST SETF1
SETF2S: PUSHJ FXP,SET0 ;Handle a symbol case as if it were SETQ
SETF5: HRRZ B,@(P) ;BASIC LOOP DOWN ARGLIST
HRRZ B,(B)
JUMPE B,POP1J
MOVEM B,(P)
SETF1: HLRZ A,@(P)
SKOTT A,LS
JRST SETF2S ;setting a symbol?
HLRZ A,(A)
SKOTT A,SY
JRST SETF3 ;Random format?
MOVEI B,QSTF.X ;or has SETF-X property?
PUSHJ P,GET1 ; then go slow route thru SETF3
JUMPN A,SETF3
MOVE B,@(P)
HLRZ A,B ;Else check if it is one of the simple
HLRZ A,(A)
JSP T,IC.RP ; forms that we can un-do by hand
JRST SETF1B
SETF2C: PUSH FXP,TT ;A "CARCDR"ING, with "icarcdrp" code in TT
PUSH P,B ; or else TT has -1 for PLIST
HLRZ A,B
HRRZ A,(A)
PUSHJ P,EVALCAR ;Compute <arg> in "(CARCDR <arg>)"
EXCH A,(P)
PUSHJ P,EVALCAR ;Compute <val> in "(SETF (CARCDR <arg>) <val>)"
MOVE B,A
POP P,A
POP FXP,TT
JUMPL TT,STF2C2
LDB D,[0606←30 TT] ;Code for the "tail" operation and
JUMPE D,STF2C1
LDB D,[2706←30 %CARCDR-2(D)] ; find the "boy" number for it
JSP T,CARCDR(D) ;Execute the "tail" operation
STF2C1: TRNN TT,1←12. ;Bit 2.3 of code number is 1 iff
TDZA D,D ; "head" operation is RPLACD
MOVEI D,RPLACD-RPLACA
PUSHJ P,RPLACA(D)
JRST SETF5
STF2C2: PUSHJ P,SETPLIST
JRST SETF5
SETF1B: CAIE A,Q$GET ;Continue discerning for known operation
CAIN A,QCXR
JRST SETF2G ;GET, CXR
CAIN A,Q%ARRAYCALL
JRST SETF2A ;ARRAYCALL
SETO TT,
CAIN A,QPLIST
JRST SETF2C ;PLIST (A BIT LIKE CARCDR)
MOVE C,A
MOVEI B,QMACRO
PUSHJ P,GET1
JUMPN A,SETF1C
MOVE A,C
MOVEI B,QAUTOLOAD
PUSHJ P,GET1
JUMPE A,SETF3
PUSH P,A
MOVE A,C
MOVEI B,QLSTF.X
PUSHJ P,GETL5 ; BUT MAYBE WE'VE ALREADY TRIED TO AUTOLOAD?
POP P,T
JUMPE A,SETF3
MOVE A,T ;IF AUTOLOADABLE, MAY PUT A MACRO ON
PUSHJ P,AUTOLOAD ; SO LOAD IN THE AUTOLOADABLE FILE
MOVE A,C ; AND TRY AGAIN TO FIND MACRO PROP
MOVEI B,QMACRO
PUSHJ P,GET1
JUMPN A,SETF1C
MOVE A,C
MOVEI B,NIL
MOVEI C,QSTF.X
PUSHJ P,PUTPROP
JRST SETF3
SETF1C: HLRZ A,@(P)
CALLF 1,Q%MCX. ;MACROs (or STRUCTURE-selector ings)
JUMPE A,SETF3 ; - then merely MACROEXPAND-1* and go
HLRZ A,(A) ; around loop again
HRRZ B,@(P)
JSP T,%CONS
MOVEM A,(P)
JRST SETF1
SETF2A: HLRZ A,B
HLRZ B,(B)
PUSH P,A
PUSH P,B
JRST STF2A7
STF2A5: PUSHJ P,STOREE
STF2A7: SETZM LISAR
PUSHJ P,EVNH0 ;EVALUATE ARRAY REFERENCE WITHOUT HOOKING IT
SKIPN A,LISAR ;ALWAYS CHECK FOR THIS GROSS LOSS
JRST STF2A5
SKIPN V.RSET
JRST STF2A9
JSP T,ARYSIZ ;GET SIZE OF ARRAY IN WORDS IN TT
TLNN R,200000 ;=> NEGATIVE INDEX
CAIG TT,(R) ;THERE'S PROBABLY A FENCE-POST FOR SX ARRAYS HERE
JRST STF2A5
STF2A9: PUSH FXP,R
EXCH A,(P)
PUSHJ P,EVAL ;EVALUATE THE NEW VALUE
POP P,LISAR
POP FXP,R
JSP T,.STORE
POPI P,1
SETZM LISAR
CSETF5: JRST SETF5
SETF2G: PUSH P,CSETF5 ;"GET" OR "CXR"
HLRZ A,B
HRRZ A,(A) ; "(SETF (GET <arg1> <arg2>) <val>)
HRRZ B,(A)
PUSH P,B
PUSHJ P,EVALCAR ;Eval <arg1>
EXCH A,(P)
PUSHJ P,EVALCAR ;Eval <arg2>
PUSH P,A
HRRZ A,@-3(P)
PUSHJ P,EVALCAR ;Eval <val>
HLRZ T,@-3(P)
HLRZ T,(T)
CAIN T,Q$GET
JRST STF2G2
MOVE C,A
POP P,B
POP P,A
PUSHJ P,RPLACX ;REMEMBER return addr was pushed above
MOVE A,C
POPJ P,
STF2G2: MOVE B,A ; at SETF2G
POP P,C
POP P,A
JRST PUTPROP
EVALCAR: HLRZ A,(A) ;save a couple of instructons! by coming here
JRST EVAL
SETF3: POP P,A ;Can't hack it, so give up and let the
SETZ B, ; B=() ==> For Value
CALLF 2,QISTFX ; +INTERNAL-SETF-X expander expand it.
JRST EVAL ; and then do it.
| ;END OF DAMNABLE CUT-OUT OF SETF FSUBR
;$PUSHER $PUSH
;;; Standard simple PUSH case (for symbols) is as follows:
; (DEFUN PUSH FEXPR (L)
; (DO ((X L (CDDR X)) (SYM) (VAL))
; ((NULL X) VAL)
; (SETQ SYM (CADR X) VAL (EVAL (CAR X)))
; (SET SYM (CONS VAL (SYMEVAL SYM)))))
;;; Standard simple POP case (for symbols) is as follows:
;(DEFUN POP FEXPR (X)
; (PROG2
; ()
; (COND ((NULL (CDR X)) (CAR (SYMEVAL (CAR X))))
; ('T (SET (CADR X) (CAR (SYMEVAL (CAR X))))))
; (SET (CAR X) (CDR (SYMEVAL (CAR X))))))
;;; Otherwise, we try substituting +INTERNAL-PUSH-X (or +INTERNAL-POP-X)
;;; for the "PUSH" (or "POP"), and let the (autoloadable) macro
;;; expander handle it.
$PUSHER: POP P,A
%WTA TNILER
$PUSH: JSP TT,FWNACK
FA2,,Q$PUSH
PUSH P,A ;SAVE THE ARGUMENT POINTER
PUSHJ P,CADR
JUMPE A,$PUSHER ;SPECIAL-CASE CHECK FOR NIL AND T
CAIN A,TRUTH
JRST $PUSHER
JSP T,SPATOM ;CHECK FOR STANDARD CASE
JRST $PUSH1
HLRZ A,@(P) ;GET THE "VALUE" TO BE PUSHED
PUSHJ P,EVAL ; AND EVALUATE IT
EXCH A,(P) ;SAVE THE RESULT, AND GET THE ARG POINTER
JSP T,%CADR ;GET THE SECOND "ARGUMENT"
PUSH P,A ;SAVE POINTER TO SYMBOL
PUSHJ P,EVSYM ;GET SYMBOL'S VALUE
JFCL ;IF SKIP RETURN USE NEW USER VALUE
MOVE B,-1(P) ;GET THE THING TO BE PUSHED
JSP T,%XCONS ;PUSH ON THE "STACK"
POP P,AR1 ;GET BACK POINTER TO SYMBOL
JSP T,.SET ;STORE BACK THE NEW "STACK" POINTER
POPI P,1
POPJ P,
;$POPER $POP $POP4 $POP2 $POP1 $PUSH1 TNILER
$POPER: POP P,A
%WTA TNILER
$POP: JSP TT,FWNACK
FA12,,Q$POP
PUSH P,A
PUSHJ P,CDR
JUMPE A,$POP4
PUSHJ P,CAR
JUMPE A,$POPER
CAIN A,TRUTH
JRST $POPER
JSP T,SPATOM
JRST $POP1
$POP4: HLRZ A,@(P) ;GET THE "STACK" POINTER
JUMPE A,$POPER
CAIN A,TRUTH
JRST $POPER
JSP T,SPATOM
JRST $POP1
PUSHJ P,EVAL ;AND GET THE "STACK"
PUSH P,(A) ;SAVE THE 1ST CONS OF THE "STACK" ON P
HRRZ A,@-1(P) ;GET THE PLACE TO POP INTO
JUMPE A,$POP2 ;NOT SPECIFIED, JUST RETURN THE TOP OF "STACK"
HLRZ A,(A)
HLRZ AR1,(P) ;CAR OF STACK IS VALUE BEING POPPED
JSP T,.SET1 ;SET THE SYMBOL INTO WHICH IT IS POPPING
$POP2: HRRZ AR1,(P) ;NOW CDR THE "STACK" AND RE-SET INTO STK-PTR
HLRZ A,-1@(P)
JSP T,.SET1
HLRZ A,(P) ;RETURN THE CAR OF THE NEW "STACK"
POPI P,2
POPJ P,
$POP1: SKIPA C,[QIPOX] ;"PUSH" AND "POP" CANT BE HANDLED
$PUSH1: MOVEI C,QIPUX ; So invoke the LISP-coded +INTERNAL-foo-X
POP P,A ; which expands it for us
SETZ B, ; B=() means "For Value"
CALLF 2,(C)
JRST EVAL ;and EVAL the result
TNILER: SIXBIT \T AND NIL NOT ACCEPTABLE FOR "PUSH" AND "POP"!\
;STORE STORE7 STORE9 BREAK SIGNP SIGNP0 SPTB
SUBTTL STORE, BREAK, SIGNP
STORE: JSP TT,FWNACK
FA2,,QSTORE
HLRZ B,(A)
PUSH P,B
HRRZ A,(A)
HLRZ A,(A)
PUSHJ P,EVAL ;EVALUATE SECOND ARGUMENT FIRST!
PUSH P,A
STORE7: HRRZ A,-1(P)
SETZM LISAR
PUSHJ P,EVNH0 ;EVALUATE ARRAY REFERENCE WITHOUT HOOKING IT
SKIPN A,LISAR ;ALWAYS CHECK FOR THIS GROSS LOSS
JRST STORE5
SKIPN V.RSET
JRST STORE9
JSP T,ARYSIZ ;GET SIZE OF ARRAY IN WORDS IN TT
TLNN R,200000 ;=> NEGATIVE INDEX
CAIG TT,(R) ;THERE'S PROBABLY A FENCE-POST FOR SX ARRAYS HERE
JRST STORE5
STORE9: POP P,A
SUB P,R70+1
JSP T,.STORE
SETZM LISAR
POPJ P,
BREAK: JSP TT,FWNACK ;FSUBR (1 . 2)
FA12,,QBREAK
HLRZ B,(A) ;BKPT NAME
HRRZ A,(A)
JUMPE A,$BRK0 ;NO SECOND ARG => ALWAYS BREAK
HLRZ A,(A) ;TO-BREAK-OR-NOT SWITCH
PUSH P,B
PUSHJ P,EVAL ;THIS IS A CROCK!!!
POP P,B
JRST $BREAK ;A = BREAKP, B = BREAKID
SIGNP: JSP TT,FWNACK ;FSUBR 2
FA2,,QSIGNP
PUSH P,(A)
HLRZ A,(A)
PUSH P,A
SIGNP0: PUSHJ P,PNGET
HLRZ A,(A)
MOVS T,(A)
HRRZ A,(A)
JUMPN A,SIGNPE
MOVNI A,6
CAIE T,@SPTB+6(A)
AOJL A,.-1
JUMPGE A,SIGNPE
HLLZ A,SPTB+6(A)
SUB P,R70+1
EXCH A,(P)
HLRZ A,(A)
PUSHJ P,EVAL
PUSHJ P,NUMBERP
JUMPE A,POP1J
POP P,T
HRRI T,TRUE
XCT T
JRST FALSE
SPTB:
IRP Q,,[L,E,LE,G,GE,N]
JUMP!Q TT,(ASCII \Q\)
TERMIN
;PROG1 PROG2 PRG12Z PROGN PROGN1 EQ RPLACA RPLACD RPLCD3 RPLCD2
SUBTTL PROG2, PROGN, EQ, RPLACA, RPLACD
PROG1: SKIPA R,XC-1
PROG2: MOVNI R,2
CAMLE T,R
JRST PRG12Z
HRLI T,-1(T)
ADD T,P
SUBM T,R
MOVE A,(R)
MOVEM T,P
POPJ P,
PRG12Z: MOVEI D,QPROG2
CAIE R,2
MOVEI D,QPROG1
JRST WNALOSE
PROGN: AOJG T,FALSE
POP P,A
PROGN1: JUMPE T,CPOPJ
HRLI T,-1(T)
ADD P,T
POPJ P,
EQ: CAMN A,B ;SUBR 2 - POINTER IDENTITY PREDICATE
JRST TRUE
JRST FALSE
RPLACA: SKOTT A,LS
JRST RPLCA0
TLNE TT,PUR+VC
JRST RPLCA1
HRLM B,(A)
POPJ P,
RPLACD: ;SUBR 2 - CLOBBER CDR OF FIRST ARG WITH SECOND
SKOTT A,LS
JRST RPLCD2
TLNE TT,PUR
JRST RPLCD1
RPLCD3: HRRM B,(A)
POPJ P,
RPLCD2: JUMPE A,RPLCD0 ;(RPLACD NIL FOO) IS ALWAYS A LOSS
SKIPE T,VCDR
CAIN T,QLIST ;IF CDR = NIL OR LIST, THEN BOMBOUT
JRST RPLCD0 ;SINCE ARG IS NOT LIST OR NIL
CAIN T,QSYMBOL
TLNE TT,SY
JRST RPLCD3 ;IF NOT CDR = SYMBOL, THEN ANYTHING GOES
JRST RPLCD0
PGTOP EVL,[EVAL, APPLY, STUFF OPEN-CODED BY COMPLR]
;GCRET GCNRT GC MINCEL GCCNT GCCNT1 GCCNT4 LPROG3 GCCNT0
;;@ GCBIB 247 GARBAGE COLLECTOR AND ALLOCATION STUFF
;;; ***** MACLISP ****** GARBAGE COLLECTOR AND ALLOCATION STUFF **
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
PGBOT GC
SUBTTL GRABBAGE COLLECTORS AND RELATED ITEMS
GCRET: TDZA A,A ;GC WITH NORET=NIL
GCNRT: MOVEI A,TRUTH ;GC WITH NORET=T
HRRI T,UNBIND ;EXPECTS FLAG IN LH OF T
PUSH P,T
JSP T,SPECBIND
0 A,VNORET
JRST AGC
GC: PUSH P,[333333,,FALSE] ;SUBR 0 - USER ENTRY TO GC
JRST AGC ;TO UNDERSTAND THE 3'S, SEE GSTRT7
MINCEL==6*NFF ;MIN NUMBER WORDS TO RECLAIM FOR EACH SPACE
IFG 40-MINCEL, MINCEL==40
GCCNT: ;FREELIST COUNTING LOOP TO RUN IN AC'S
OFFSET -.
NIL ;SO THAT THE FOLLOWING INS WILL STOP ON NIL
GCCNT1: SKIPE TT,(TT)
GCCNT4: AOJA GCCNT0,.-1 ;OR MAYBE AOBJN
JRST GCP4A
LPROG3==:.-1
GCCNT0:
OFFSET 0
.HKILL GCCNT1 GCCNT4 GCCNT0
;WHL AGC4 AGC AGC1 AGC1Q GCP4 GCP4A GCP4B
SUBTTL GC - INITIALIZATION
WHL==:USELESS*ITS ;FLAG FOR WHO-LINE STUFF
XCTPRO
AGC4: HRROS NOQUIT ;ENTRY FROM FWCONS, FLCONS, AND THE LIKE
NOPRO
SUBI A,2 ;ENTER WITH JSP A,AGC4
PUSH P,A
XCTPRO
AGC: HRROS NOQUIT ;ENTER HERE WITH PUSHJ P,AGC
NOPRO
SKIPE ALGCF ;CANT SUCCESSFULLY GC WHILE IN ALLOC
JRST ALERR
AGC1:
;MUST HAVE DONE HRROS NOQUIT BEFORE COMING HERE.
;FIRST WE GET CURRENT RUNTIME IN "HOST MACHINE UNITS" IN GCTM1.
;THIS MUST BE DONE IN AND AROUND THE SAVING OF THE AC'S.
IT$ .SUSET [.RRUNT,,GCTM1]
MOVEM NACS+1,GCNASV
10$ SETZ NACS+1,
10$ RUNTIM NACS+1, ;GET RUNTIME FOR THIS JOB
10$ MOVEM NACS+1,GCTM1
MOVEI NACS+1,GCACSAV
BLT NACS+1,GCACSAV+NACS ;BLT AWAY ARG ACS (AND NIL) INTO PROTECTED PLACE
20$ MOVEI 1,.FHSLF
20$ RUNTM ;GET RUNTIME FOR THIS FORK
20$ MOVEM 1,GCTM1
MOVE NACS+1,[NACS+2,,GCNASV+1]
BLT NACS+1,GCNASV+16-<NACS+1> ;SAVE NON-MARKED AC'S EXCEPT SP
MOVE NACS+1,[UUOH,,GCUUSV]
BLT NACS+1,GCUUSV+LUUSV-1 ;SAVE UUOH STUFF, IN CASE STRT IS USED
MOVEI A,TRUTH ;SPECBIND TERPRI TO T, TO PREVENT
JSP T,SPECBIND ; AUTO-TERPRI IN GC MESSAGES
0 A,V%TERPRI
MOVEM SP,GCNASV+17-<NACS+1> ;NOW SAVE SP
SETZM GCFXP
SETZ R,
REPEAT NFF,[
SKIPN FFS+.RPCNT ;FIGURE OUT WHICH SPACE(S) EMPTY
TLO R,400000←-.RPCNT
] ;END OF REPEAT NFF
SKIPN FFY2 ;IF WE RAN OUT OF SYMBOL BLOCKS,
TLO R,400000←<-FFY+FFS> ; THEN CREDIT IT TO SYMBOLS
MOVN D,R ;THIS IS A STANDARD HACK TO KILL ONE BIT
TDZE R,D ;SKIP IF THERE WERE NO BITS
JUMPE R,GCGRAB ;JUMP IF EXACTLY ONE BIT ON
AGC1Q: SETZM GCRMV
AOSE IRMVF ;IF OVERRIDE IS ON, THEN
SKIPE VGCTWA
SETOM GCRMV ;DO REMOVAL ANYHOW.
MOVNI TT,20 ;TOP 40 BITS OF WORD ON
JSP F,GCINBT ;INIT MARK BITS FOR LIST, FIXNUM, ETC.
MOVE T,[SFSSIZ,,OFSSIZ] ;SAVE AWAY OLD SIZES OF SPACES
BLT T,OSASIZ ; (USED FOR ARG TO GC-DAEMON)
MOVE T,VGCDAEMON
IOR T,GCGAGV
IFE WHL, JUMPE T,GCP6
IFN WHL, JUMPE T,GCP5
MOVSI R,GCCNT
BLT R,LPROG3
SKIPN VGCDAEMON
HRLI GCCNT4,(AOBJN GCCNT0,)
MOVNI R,NFF ;MAY OR MAY NOT HAVE BIGNUMS OR HUNKS
GCP4: SETZ GCCNT0,
SKIPGE FFS+NFF(R)
JRST GCP4B
SKIPN VGCDAEMON
MOVSI GCCNT0,-MINCEL
SKIPE TT,FFS+NFF(R)
AOJA GCCNT0,GCCNT1
GCP4A: TLZ GCCNT0,-1
HRRZ F,GCWORN+NFF(R) ;ACCOUNT FOR LENGTHS OF ITEMS
IMULI GCCNT0,(F)
CAIGE GCCNT0,MINCEL ;IF LESS THEN MINCEL, THEN FREELIST WAS
SETZM FFS+NFF(R) ; "PRACTICALLY EMPTY" AND DESERVES SOME BLAME
GCP4B: HRLM GCCNT0,NFFS+NFF(R)
AOJL R,GCP4
;FALLS THROUGH
;GCP5 GSTRT0 GSTR0A GSTRT1 GSTRT2 GSTRT3 GSTRT5 GSTRT7 GSTRT8 GSTRT6 GCWHL2 GCWHL3 GCWHL9
;FALLS IN
;;; PDLS ARE SAFE
IFN WHL,[
GCP5: MOVE F,GCWHO
SKIPE GCGAGV
JRST GSTRT0
TRNN F,1 ;1-BIT MEANS WE WANT TO SEE
JRST GCP6 ; THE REASON FOR THE GC
JRST GSTR0A ; IN THE WHO-LINE
] ;END OF IFN WHL
IFE WHL,[
SKIPN GCGAGV
JRST GCP6
] ;END OF IFE WHL
GSTRT0: STRT 17,[SIXBIT \↑M;GC DUE TO !\]
GSTR0A: SETZB TT,D ;FIGURE OUT REASON FOR GC
HLRZ T,(P)
CAIN T,111111 ;WAS IT INITIAL STARTUP? (SEE LISP)
MOVEI TT,[SIXBIT \STARTUP!\]
CAIN T,333333 ;WAS IT USER CALLING GC FUNCTION?
MOVEI TT,[SIXBIT \USER!\]
CAIN T,444444 ;WAS IT ARRAYS?
MOVEI TT,[SIXBIT \ARRAY RELOCATION!\]
CAIN T,555555 ;I/O CHANNELS?
MOVEI TT,[SIXBIT \I/O CHANNELS!\]
CAIN T,666666 ;SUSPEND?
MOVEI TT,[SIXBIT \SUSPEND!\]
JUMPN TT,GSTRT8
MOVNI T,NFF ;NONE OF THOSE HYPOTHESES WORK
GSTRT1: SKIPN FFS+NFF(T) ;MAYBE SOME STORAGE SPACE RAN OUT
SKIPA TT,T
ADDI D,1
AOJL T,GSTRT1
JUMPE TT,GSTRT7 ;NO, THAT WASN'T IT
IFN WHL, SKIPN GCGAGV
.ALSO, JRST GSTRT4
MOVNI T,NFF ;YES, IT WAS. PRINT MOBY MESSAGE!
SETZ R,
GSTRT2: SKIPE FFS+NFF(T)
JRST GSTRT5
JUMPE R,GSTRT3
CAIE D,NFF-2
STRT 17,[SIXBIT \, !\]
CAMN T,TT
STRT 17,[SIXBIT \ AND !\]
GSTRT3: SETO R,
STRT 17,@GSTRT9+NFF(T)
GSTRT5: AOJL T,GSTRT2
STRT 17,[SIXBIT \ SPACE!\]
CAIE D,NFF-1
STRT 17,[SIXBIT \S!\]
IFN WHL, GSTRT4: MOVE TT,GSTRT9+NFF(TT)
JRST GSTRT6
GSTRT7: MOVEI TT,[SIXBIT \ ? !\] ;I DON'T KNOW WHY WE'RE HERE!
GSTRT8:
IFN WHL,SKIPE GCGAGV
STRT 17,(TT) ;PRINT REASON
GSTRT6:
IFN WHL,[
TRNN F,1
JRST GCWHL9
MOVE D,(TT)
MOVE R,1(TT)
ROTC D,-22
MOVSI F,(SIXBIT \!\)
MOVE T,[220600,,D]
GCWHL2: ILDB TT,T
CAIE TT,'!
JRST GCWHL2
DPB NIL,T
GCWHL3: IDPB NIL,T
TLNE T,770000
JRST GCWHL3
HRLI D,(SIXBIT \GC:\)
MOVE T,[-6,,GCWHL6]
.SUSET T
GCWHL9:
] ;END OF IFN WHL
;FALLS THROUGH
;GCP6 GCP6Q0 GCP6Q1 GCP6Q2 GCP6Q3 GCP6Q4 GCP6Q5 GCP6Q6 GCP6Q8 GCP6Q9 GCP6R0
;;; PDLS ARE SAFE
SUBTTL GC - MARK THE WORLD
;FALLS IN
GCP6: HRROS MUNGP ;STARTING TO MUNG SYMBOL/SAR MARK BITS
MOVE A,[<-20>←-NUNMRK] ;PRE-PROTECT CERTAIN
ANDM A,BTBLKS ; RANDOM LIST CELLS
MOVNI R,NACS+1 ;PROTECT CONTENTS OF MARKED ACS
GCP6Q0: HRRZ A,GCACSAV+NACS+1(R)
JSP T,GCMARK
AOJL R,GCP6Q0
HRRZ R,C2
ADDI R,1
GCP6Q1: HRRZ A,(R) ;CAUSES MARKING OF CONTENTS
JSP T,GCMARK ; OF ACS AT TIME OF GC, AND OF REG PDL
CAIGE R,(P)
AOJA R,GCP6Q1
MOVEI R,LPROTE-1
GCP6Q2: MOVEI A,BPROTE(R) ;PROTECT PRECIOUS STUFF
JSP T,GCMARK
SOJGE R,GCP6Q2
IFN BIGNUM,[
MOVEI R,LBIGPRO-1
GCP6Q3: MOVEI A,BBIGPRO(R)
JSP T,GCMARK
SOJGE R,GCP6Q3
] ;END OF IFN BIGNUM
MOVSI R,TTS<GC>
IORM R,DEDSAR+TTSAR ;PROTECT DEDSAR
IORM R,DBM+TTSAR ;PROTECT DEAD BLOCK MARKER
HRRZ R,SC2
GCP6Q4: HRRZ A,(R)
JSP T,GCMARK ;MARK SAVED VALUES ON SPEC PDL
CAIGE R,(SP)
AOJA R,GCP6Q4
SKIPN R,INTAR
JRST GCP6Q6
GCP6Q5: MOVE A,INTAR(R)
JSP T,GCMARK
SOJG R,GCP6Q5
GCP6Q6: ;PROTECT INTERRUPT FUNCTIONS
IRP Z,,[0,1,2]X,,[ALARMCLOCK,AUTFN,UDF]
MOVEI R,NUINT!Z
SKIPE A,V!X(R)
JSP T,GCMARK
SOJG R,.-2
TERMIN
SKIPE A,VMERR
JSP T,GCMARK
IFN PAGING,[
SKIPN D,LHSGLK ;SKIP IF ANY LH SEGMENTS
JRST GCP6R0 .SEE LHVBAR
GCP6Q8: MOVEI F,(D) ;CREATE AOBJN POINTER INTO SEGMENT
LSH F,SEGLOG
HRLI F,-SEGSIZ
GCP6Q9: HLRZ A,(F) ;MARK FROM ALL ENTRIES IN THAT SEGMENT
JSP T,GCMARK
HRRZ A,(F)
JSP T,GCMARK
AOBJN F,GCP6Q9
LDB D,[SEGBYT,,GCST(D)] ;FOLLOW LINKED LIST OF SEGMENTS
JUMPN D,GCP6Q8
GCP6R0:
] ;END OF IFN PAGING
;FALLS THROUGH
;GCP6B1 GCP6B2 GCP6A GCP6F1 GCP6F GCP6F0 GCP6D GCP6D1 GSTRT9 GCWHL6
;;; PDLS ARE SAFE
;FALLS IN
SKIPN GCRMV
JRST GCP6B1
JSP R,GCGEN ;IF DOING TWA REMOVAL, TRY MARKING FROM
GCP8I ;NON-TRIVIAL P-LISTS OF CURRENT OBARRAY
JRST GCP6B2
GCP6B1: MOVE A,VOBARRAY
JSP TT,$GCMKAR ;OTHERWISE, JUST MARK OBARRAY BUCKETS
GCP6B2: MOVEI A,OBARRAY
CAME A,VOBARRAY
JSP TT,$GCMKAR
MOVE R,GCMKL
GCP6A: JUMPE R,GCP6D
HLRZ A,(R)
MOVE D,ASAR(A)
TLNN D,AS<GCP> ;IF ARRAY POINTER HAS "GC ME" BIT SET,
JRST GCP6F
TLNE D,AS<OBA> ;MORE CHECKING ON OBARRAYS
JRST GCP6F0
GCP6F1: JSP TT,GCMKAR ; THEN MARK FROM ARRAY ENTRIES
GCP6F: HRRZ R,(R)
HRRZ R,(R)
JRST GCP6A
GCP6F0: CAMN A,VOBARRAY ; AND IF THIS ISN'T THE CURRENT OBARRAY,
SKIPN GCRMV ; OR IT IS, BUT WE ARENT DOING GCTWA REMOVAL,
JRST GCP6F1
JRST GCP6F
GCP6D: MOVE A,V%TYI
JSP TT,$GCMKAR
MOVE A,V%TYO
JSP TT,$GCMKAR
SKIPN R,PROLIS
GCP6D1: JUMPE R,GCP6H ;PROTECT READ-MACRO
HLRZ A,(R) ; FUNCTIONS (CAN'T JUST GCMARK WHOLE
HLRZ A,(A) ; PROLIS - DON'T WANT TO PROTECT
JSP T,GCMARK ; READTABLE SARS)
HRRZ R,(R)
JRST GCP6D1
GSTRT9: [SIXBIT \LIST!\] .SEE GCWORRY
[SIXBIT \FIXNUM!\] .SEE GCPNT
[SIXBIT \FLONUM!\]
DB$ [SIXBIT \DOUBLE!\]
CX$ [SIXBIT \COMPLEX!\]
DX$ [SIXBIT \DUPLEX!\]
BG$ [SIXBIT \BIGNUM!\]
[SIXBIT \SYMBOL!\]
IRP X,,[2,4,8,16,32,64,128,256,512,1024]
[SIXBIT \HUNK!X!!\]
IFE .IRPCNT-HNKLOG, .ISTOP
TERMIN
[SIXBIT \ARRAY!\]
IFN WHL,[
GCWHL6: .RWHO1,,GCWHO1
.RWHO2,,GCWHO2
.RWHO3,,GCWHO3
.SWHO1,,[.BYTE 8 ? 66 ? 0 ? 366 ? 0 ? .BYTE]
.SWHO2,,D
.SWHO3,,R
] ;IFN WHL
;CGCMKL GCP6H GCP6H1 GCP6H8 GCP6H3 GCP6H4 GCP6H5 GCP6G GCP6H0
;;; PDLS ARE SAFE
SUBTTL GC - CONSIDER THE EFFECTS OF AN ARRAY DISAPPEARING
;;; UPDATE THE GCMKL BY SPLICING OUT ARRAYS TO BE SWEPT.
;;; IF ANY SUCH ARRAYS ARE OPEN FILES, CLOSE THEM.
CGCMKL:
GCP6H: SKIPN F,GCMKL
JRST GCP7
JSP A,GCP6H0
GCP6H1: HLRZ A,(F)
TDNE TT,TTSAR(A)
JRST GCP6G
TDNE T,ASAR(A)
JRST GCP6H7
GCP6H8:
ANDCAM TT,TTSAR(A)
IORM R,TTSAR(A)
MOVEI B,ADEAD
EXCH B,ASAR(A)
TLNN B,AS<RDT>
JRST GCP6G
MOVEI AR1,PROLIS ;JUST KILLED A READTABLE
GCP6H3: HRRZ AR2A,(AR1) ; - CLEAN UP PROLIS
GCP6H4: JUMPE AR2A,GCP6G
HLRZ C,(AR2A)
HRRZ C,(C)
HLRZ C,(C)
CAIE C,(A)
JRST GCP6H5
HRRZ AR2A,(AR2A)
HRRM AR2A,(AR1)
JRST GCP6H4
GCP6H5: MOVEI AR1,(AR2A)
JRST GCP6H3
GCP6G: HRRZ F,(F)
HRRZ F,(F)
JUMPN F,GCP6H1
JRST GCP7
GCP6H0: MOVSI T,AS<JOB+FIL> ;SET UP SOME ACS FOR THE GCMKL-LOOK LOOP
MOVE R,[TTDEAD]
MOVSI TT,TTS<CN+GC>
JRST (A)
;GCP6H7 GCP6H2 GCP6H9 GCP6J1 GCP6J3 GCP6J9
;;; PDLS ARE SAFE
;;; CLEAN UP AND CLOSE A FILE WHEN GARBAGE COLLECTED
GCP6H7: MOVE B,TTSAR(A) ;ABOUT TO GC A FILE ARRAY
TLNE B,TTS<CL> ;IGNORE IF ALREADY CLOSED
JRST GCP6H8
PUSH P,F
IFN JOBQIO,[
HLL B,ASAR(A)
TLNE B,AS<JOB>
JRST GCP6J1
] ;END OF IFN JOBQIO
PUSHJ P,ICLOSE ;OTHERWISE CLOSE THE FILE
MOVEI R,[SIXBIT \↑M;FILE CLOSED: !\]
GCP6H2: SKIPN GCGAGV
JRST GCP6H9
STRT 17,(R)
HLRZ A,@(P)
HRRZ AR1,VMSGFILES
TLO AR1,200000
HRROI R,$TYO
PUSHJ P,PRINTA
GCP6H9: POP P,F
JSP A,GCP6H0 ;RE-INIT MAGIC CONSTANTS IN ACS
HLRZ A,(F)
JRST GCP6H8
IFN JOBQIO,[
;;; CLEAN UP AND CLOSE AN INFERIOR PROCEDURE WHEN GARBAGE COLLECTED
GCP6J1:
IFN ITS,[
MOVEI R,[SIXBIT \↑M;FOREIGN JOB FLUSHED: !\]
SKIPN T,J.INTB(B)
JRST GCP6J3
MOVEI R,[SIXBIT \↑M;INFERIOR JOB FLUSHED: !\]
.CALL GCP6J9 ;IF INFERIOR JOB, OPEN IT ON
.VALUE ; THE TEMPORARY I/O CHANNEL
.UCLOSE TMPC, ; AND KILL IT
JFFO T,.+1
MOVNS TT
SETZM JOBTB+21(TT) ;CLEAR ENTRY IN JOB TABLE
] ;END OF IFN ITS
GCP6J3: MOVSI T,TTS<CL> ;MARK THE JOB OBJECT AS BEING CLOSED
ANDCAM T,TTSAR(A)
JRST GCP6H2
IFN ITS,[
GCP6J9: SETZ
SIXBIT \OPEN\ ;OPEN FILE (INFERIOR PROCEDURE)
1000,,TMPC ;CHANNEL NUMBER
,,F.DEV(B) ;DEVICE NAME (USR)
,,F.FN1(B) ;FILE NAME 1 (UNAME)
400000,,F.FN2(B) ;FILE NAME 2 (JNAME)
] ;END OF IFN ITS
] ;END OF IFN JOBQIO
;GCP7
;;; PDLS ARE SAFE
SUBTTL GC - TWA REMOVAL
GCP7: HRRZ A,GCMKL
JSP T,GCMARK
HRRZ A,PROLIS
JSP T,GCMARK
SKIPN GCRMV
JRST GCSWP
JSP R,GCGEN ;IF DOING TWA REMOVAL, THEN WIPE OUT
GCP8G ; T.W.A.'S AND THEN MARK BUCKETS
MOVE A,VOBARRAY
JSP TT,$GCMKAR
;FALLS THROUGH
;GCSWP GCSW1 GCSW2 GCSW2A GCSW5 GCSW7
;;; PDLS ARE UNSAFE
SUBTTL GC - SWEEP THE WORLD
;FALLS IN
GCSWP: .SEE KLINIT ;WHICH CLOBBERS NEXT INSTRUCTION
MOVEM FXP,GCFXP ;WE ARE ABOUT TO CLOBBER THE PDL POINTERS
MOVNI SP,NFF ;NUMBER OF SPACES TO SWEEP
MOVEM SP,GC99
;MAJOR SWEEP LOOP OVER ALL SPACES
GCSW1: MOVE FXP,GCSWTB+NFF(SP) ;PUT INNER SWEEP LOOP IN AC'S
HLLZ FLP,FXP ; AND INITIALIZE COUNT
BLT FLP,(FXP)
SETZ FXP, ;FXP HAS FREELIST, A HAS COUNT
SKIPN FLP,FSSGLK+NFF(SP)
JRST GCSW7
;MINOR SWEEP LOOP OVER ALL SEGMENTS IN A SPACE
GCSW2: MOVEM FLP,GC98
JRST @GCSW2A+NFF(SP) ;DISPATCH ON TYPE TO SEPARATE ROUTINES
GCSW2A: GCSWS ;LIST
GCSWS ;FIXNUM
GCSWS ;FLONUM
DB$ GCSWD ;DOUBLE
CX$ GCSWC ;COMPLEX
DX$ GCSWZ ;DUPLEX
BG$ GCSWS ;BIGNUM
GCSWY ;SYMBOL
IFN HNKLOG, GCSWH1
REPEAT HNKLOG,[
IFL .RPCNT-4, GCSWH1 ;HUNKS OF LESS THAN 40 WORDS
.ELSE GCSWH2 ;HUNKS OF 40 WORDS OR MORE
] ;END OF REPEAT HNKLOG
GCSWA ;SARS
IFN .-GCSW2A-NFF, WARN [WRONG LENGTH TABLE]
GCSW5: MOVE SP,GC99
MOVE FLP,GC98
LDB FLP,[SEGBYT,,GCST(FLP)]
JUMPN FLP,GCSW2
GCSW7:
HRRZ A,@GCSW7A+NFF(SP)
HRRM FXP,FFS+NFF(SP) ;SAVE FREELIST - DON'T DISTURB SIGN BIT
HRRZ B,GCWORN+NFF(SP)
IMULI A,(B) ;ACCOUNT FOR SIZE OF OBJECTS IN THIS SPACE
HRRM A,NFFS+NFF(SP) ;SAVE COUNT OF WORDS COLLECTED
AOSGE SP,GC99
JRST GCSW1
HRRZS MUNGP ;WE HAVE UNDONE MUNGING OF BITS
MOVSI F,TTS<CN+GC>
ANDCAM F,DEDSAR ;MUST CLEAR BITS IN DEDSAR
JSP NACS+1,GCACRS ;RESTORE ACCUMULATORS
JRST GCPNT ;NEXT PRINT STATISTICS
;GCSWTB GCSW7A
;;; PDLS ARE UNSAFE
;TABLE OF SWEEPERS FOR RUNNING IN ACS AND THE LAST LOCATIONS TO LOAD THEM INTO
GCSWTB: GCFSSWP,,LPROG1 ;LIST
GCFSSWP,,LPROG1 ;FIXNUM
GCFSSWP,,LPROG1 ;FLONUM
DB$ GCHSW1,,LPROGH ;DOUBLE
CX$ GCHSW1,,LPROGH ;COMPLEX
DX$ GCHSW1,,LPROGH ;DUPLEX
BG$ GCFSSWP,,LPROG1 ;BIGNUM
GSYMSWP,,LPROG6 ;SYMBOL
IFN HNKLOG, GCHSW1,,LPROGH
REPEAT HNKLOG,[
IFL .RPCNT-4, GCHSW1,,LPROGH ;HUNKS OF LESS THAN 40 WORDS
.ELSE GCHSW2,,LPROGK ;HUNKS OF 40 WORDS OR MORE
] ;END OF REPEAT HNKLOG
GSARSWP,,LPROG4 ;SARS
IFN .-GCSWTB-NFF, WARN [WRONG LENGTH TABLE]
;TABLE OF AC FOR EACH SWEEPER WHICH HOLDS COUNT OF OBJECTS SWEPT
GCSW7A: GFSCNT ;LIST
GFSCNT ;FIXNUM
GFSCNT ;FLONUM
DB$ GHCNT1 ;DOUBLE
CX$ GHCNT1 ;COMPLEX
DX$ GHCNT1 ;DUPLEX
BG$ GFSCNT ;BIGNUM
GYCNT ;SYMBOL
IFN HNKLOG, GHCNT1
REPEAT HNKLOG,[
IFL .RPCNT-4, GHCNT1 ;HUNK OF LESS THAN 40 WORDS
.ELSE GHCNT2 ;HUNKS OF 40 WORDS OR MORE
] ;END OF REPEAT HNKLOG
GSCNT ;SARS
IFN .-GCSW7A-NFF, WARN [WRONG LENGTH TABLE]
;GCSWS GCFSSWP GFSP1 GFSP2 GFSCNT GFSP4 GFSP5 LPROG1 GCSWY GSYMSWP GYSP7 GYSP1 GYSP2 GYCNT GYSP3 LPROG6 GYSP5 GYSP5A GYSP5B
;;; PDLS ARE UNSAFE
GCSWS: MOVE P,GCST(FLP) ;GET SHIFTED ADDRESS OF BIT BLOCK
LSH P,SEGLOG-5 ;SHIFT BACK TO FORM WORD ADDRESS
HRLI P,-BTBSIZ ;MAKE AOBJN POINTER OVER WORDS OF BITS
LSH FLP,SEGLOG
HRLI FLP,-40 ;40 CELLS PER WORD OF BITS
JRST GFSP1
;FXP HAS RUNNING FREELIST
;FLP HAS AOBJN POINTER OVER CELLS
;P HAS AOBJN POINTER OVER WORDS OF BITS
GCFSSWP: ;SWEEPER FOR LIST, FIXNUM, FLONUM, BIGNUM
OFFSET -.
GFSP1: SKIPN SP,(P) ;GET A WORD OF MARK BITS
JRST GFSP5 ;IF ALL 40 WORDS MARKED, THIS SAVES TIME
GFSP2: JUMPGE SP,GFSP4 ;JUMP IF SINGLE WORD MARKED
HRRZM FXP,(FLP) ;ELSE CHAIN INTO FREE LIST
HRRZI FXP,(FLP)
GFSCNT: AOJ .,0 ;RH COUNTS RECLAIMED CELLS
GFSP4: ROT SP,1 ;ROTATE NEXT MARK BIT UP
AOBJN FLP,GFSP2 ;COUNT OFF 40 WORDS
TLOA FLP,-40 ;RESET 40-WORD COUNT IN AOBJN POINTER
GFSP5: ADDI FLP,40 ;SKIP OVER 40 WORDS IN SWEEP
AOBJN P,GFSP1 ;<BTBSIZ> BLOCKS OF 40 WORDS
JRST GCSW5
LPROG1==:.-1
OFFSET 0
.HKILL GFSP1 GFSP2 GFSCNT GFSP4 GFSP5
GCSWY: LSH FLP,SEGLOG
HRLI FLP,-SEGSIZ
JRST GYSP1
GSYMSWP: ;SWEEPER FOR SYMBOL SPACE
OFFSET -.
GYSP7: (300,,0) ;3.8=PURE, 3.7=COMPILED CODE REFS (NOTE: TSNE WITH ITSELF ALWAYS SKIPS)
GYSP1: HLRZ SP,(FLP)
TRZN SP,1 ;IF MARKED,
TSNE GYSP7,(SP) ; OR IF PURE OR COMPILED CODE NEEDS IT,
JRST GYSP3 ; THEN DO NOT SWEEP UP
JUMPN SP,GYSP5 ;IF NON-NIL LEFT HALF, RECLAIM THE SYMBOL BLOCK
GYSP2: HRRZM FXP,(FLP) ;CHAIN ONTO FREELIST
HRRZI FXP,(FLP)
GYCNT: AOJ .,0
GYSP3: HRLM SP,(FLP)
AOBJN FLP,GYSP1
JRST GCSW5
LPROG6==:.-1
OFFSET 0
.HKILL GYSP1 GYSP2 GYSP3 GYSP7 GYCNT
;;; PART OF SYMBOL SWEEPER - RESTORES A SYMBOL BLOCK TO FFY2.
;;; ALSO ATTEMPTS TO RETURN THE VALUE CELL IF IT HAS ONE.
GYSP5: EXCH SP,FFY2 ;RETURN SYMBOL BLOCK TO FREELIST
EXCH SP,@FFY2
TLZ SP,-1 ;MAYBE TRY TO RETURN A VALUE CELL
CAIE SP,SUNBOUND
JRST GYSP5A
SETZ SP,
JRST GYSP2
GYSP5A: CAIL SP,BXVCSG+NXVCSG*SEGSIZ
JRST GYSP5B ;CAN ONLY RETURN CELLS IN VC SPACE
EXCH SP,FFVC
MOVEM SP,@FFVC
GYSP5B: SETZ SP,
JRST GYSP2
;GCSWD GCSWC GCSWZ GCSWH1 GCHSW1 GH1SP1 GH1SP2 GHCNT1 GH1SP4 GH1SP5 GH1SP6 LPROGH
;;; PDLS ARE UNSAFE
IFN HNKLOG+DBFLAG+CXFLAG,[
GCSWD:
GCSWC:
GCSWZ:
GCSWH1: HRRZ P,GCWORN+NFF(SP) ;GET SIZE OF OBJECTS
HRRI GH1SP4,(P)
SUBI P,1
HRRI GH1SP5,(P)
HRRZ P,GCWORN+NFF(SP)
MOVNI SP,40
IDIVM SP,P
HRRI GH1SP6,(P) ;BITS PER BIT BLOCK WORD
MOVE P,GCST(FLP) ;GET SHIFTED ADDRESS OF BIT BLOCK
LSH P,SEGLOG-5 ;SHIFT BACK TO FORM WORD ADDRESS
HRLI P,-BTBSIZ ;MAKE AOBJN POINTER OVER WORDS OF BITS
LSH FLP,SEGLOG ;MAKE AOBJN POINTER OVER CELLS
HRLI FLP,(GH1SP6)
JRST GH1SP1
;FXP HAS RUNNING FREELIST
;FLP HAS AOBJN POINTER OVER CELLS
;P HAS AOBJN POINTER OVER WORDS OF BITS
GCHSW1:
OFFSET -.
GH1SP1: MOVE SP,(P)
GH1SP2: JUMPGE SP,GH1SP4
HRRZM FXP,(FLP)
HRRZI FXP,(FLP)
GHCNT1: AOJ .,0
GH1SP4: ROT SP,1←HNKLOG
GH1SP5: ADDI FLP,<1←HNKLOG>-1
AOBJN FLP,GH1SP2
GH1SP6: HRLI FLP,<-40>←-HNKLOG
AOBJN P,GH1SP1
JRST GCSW5
LPROGH==:.-1
OFFSET 0
.HKILL GH1SP1 GH1SP2 GHCNT1 GH1SP4 GH1SP5 GH1SP6
] ;END OF IFN HNKLOG+DBFLAG+CXFLAG
;GCSWH2 GCHSW2 GH2SP1 GHCNT2 GH2SP5 GH2SP7 LPROGK GCSWA GSARSWP GSSP0 GSSP1 GSSP2 GSSP7 GSSP8 GSCNT LPROG4
;;; PDLS ARE UNSAFE
IFG HNKLOG-4,[
GCSWH2: HRRZ P,GCWORN+NFF(SP) ;GET SIZE OF OBJECTS
HRRI GH2SP5,(P)
SUBI P,1
LSH P,-5
HRRI GH2SP7,(P) ;BITS PER BIT BLOCK WORD
HRRZ P,GCWORN+NFF(SP)
LSH P,-5
MOVNI SP,BTBSIZ
IDIVM SP,P
HRLI P,(P) ;MAKE AOBJN POINTER OVER WORDS OF BITS
MOVE SP,GCST(FLP)
LSH SP,SEGLOG-5
HRRI P,(SP)
LSH FLP,SEGLOG ;MAKE POINTER OVER CELLS
JRST GH2SP1
;FXP HAS RUNNING FREELIST
;FLP HAS AOBJN POINTER OVER CELLS
;P HAS AOBJN POINTER OVER WORDS OF BITS
GCHSW2:
OFFSET -.
GH2SP1: SKIPL (P) ;ONLY THE SIGN BIT OF A MARK WORD IS USED
JRST GH2SP5
HRRZM FXP,(FLP)
HRRZI FXP,(FLP)
GHCNT2: AOJ .,0
GH2SP5: ADDI FLP,1←HNKLOG
GH2SP7: ADDI P,<<1←HNKLOG>-1>←-5
AOBJN P,GH2SP1
JRST GCSW5
LPROGK==:.-1
OFFSET 0
.HKILL GH2SP1 GH2SP2 GHCNT2 GH2SP5 GH2SP7
] ;END OF IFG HNKLOG-4
GCSWA: LSH FLP,SEGLOG
HRLI FLP,-SEGSIZ/2
JRST GSSP1
GSARSWP: ;SPECIAL SWEEPER FOR SARS
OFFSET -.
GSSP0: ADDI FLP,1
GSSP1:
TDNN GSSP7,TTSAR(FLP) ;TEST IF SAR MARKED (OR OTHERWISE NEEDED)
AOJA GSCNT,GSSP2 ;NO, COUNT IT AS SWEPT
ANDCAM GSSP8,TTSAR(FLP) ;YES, TURN OFF MARK BIT
AOBJN FLP,GSSP0 ; AND TRY NEXT ONE
JRST GCSW5
GSSP2: HRRZM FXP,ASAR(FLP) ;CHAIN INTO FREE LIST
HRRZI FXP,ASAR(FLP)
AOBJN FLP,GSSP0
JRST GCSW5
GSSP7: TTS<CN+GC>,,
GSSP8: TTS<GC>,,
GSCNT: 0
LPROG4==:.-1
OFFSET 0
.HKILL GSSP0 GSSP1 GSSP2 GSSP7 GSSP8 GSCNT
;GCPNT GCPNT1 GCPNT2 GCPNT6
;;; PDLS ARE SAFE
SUBTTL GC - MAKE SURE ENOUGH WAS RECLAIMED
GCPNT: SKIPN GCGAGV
JRST GCE0
SETZM GC99 ;GC99 COUNTS ENTRIES PRINTED
MOVNI F,NFF
GCPNT1: HRRZ T,NFFS+NFF(F)
SKIPN TT,SFSSIZ+NFF(F)
JRST GCPNT6
SOSLE GC99
JRST GCPNT2
STRT 17,[SIXBIT \↑M; !\] ;TERPRI-; EVERY THIRD ONE
MOVEI D,3
MOVEM D,GC99
GCPNT2: PUSHJ P,STGPNT
STRT 17,@GSTRT9+NFF(F)
CAME F,XC-1 ;COMMA AFTER EACH BUT LAST
STRT 17,[SIXBIT \, !\]
GCPNT6: AOJL F,GCPNT1
STRT 17,[SIXBIT \ WORDS FREE!\]
;FALLS THROUGH
;GCE0 GCE0C0 GCE0C1 GCE0C5 GCE0C2 GCE0C3 GCE0C9 GCE0C6 GCE0K3 GCE0C7 GCE0C4 GCE0K2 GCE0K1
;;; PDLS ARE SAFE
SUBTTL GC - CLEANUP AND TERMINATION
;FALLS IN
GCE0: MOVNI F,NFF
GCE0C0: MOVE AR2A,MFFS+NFF(F)
TLNN AR2A,-1
JRST GCE0C1
HRRZ AR1,SFSSIZ+NFF(F)
FSC AR1,233 ;FIXNUM TO FLONUM CONVERSION
FMPR AR1,AR2A
MULI AR1,400 ;FLONUM TO FIXNUM CONVERSION
ASH AR2A,-243(AR1)
GCE0C1: SKIPGE FFS+NFF(F)
JRST GCE0C5
CAIGE AR2A,MINCEL
MOVEI AR2A,MINCEL ;MUST SATISFY ABSOLUTE MIN OF<MINCEL> CELLS
GCE0C5: MOVEM AR2A,ZFFS+NFF(F)
HRRZ TT,NFFS+NFF(F)
CAIGE TT,(AR2A) ;ALSO MUST SATISFY USER'S MIN
PUSHJ P,GCWORRY ;IF NOT, MUST WORRY ABOUT IT
GCE0C2: AOJL F,GCE0C0
MOVEI AR2A,1
SKIPN FFY2
PUSHJ P,GRABWORRY ;REMEMBER, F IS ZERO HERE
SKIPN FFY2
JRST GCLUZ
MOVNI F,NFF ;IF WE RECLAIMED LESS THAN ABSOLUTE
GCE0C3: HRRZ TT,NFFS+NFF(F) ; MINIMUM FOR ANY SPACE,
SKIPGE FFS+NFF(F)
JRST GCE0C9
CAIGE TT,MINCEL ; WE ARE OFFICIALLY DEAD
JRST GCLUZ
GCE0C9: AOJL F,GCE0C3
SKIPE PANICP
JRST GCE0C7
MOVNI F,NFF ;NOW SEE IF WE EXCEEDED MAXIMUM
GCE0C6: MOVE TT,SFSSIZ+NFF(F)
CAMG TT,XFFS+NFF(F)
JRST GCE0K3
HRLZ D,GCMES+NFF(F)
HRRI D,1004 ;GC-OVERFLOW
PUSHJ P,UINT ;NOQUIT IS ON HERE, SO INTERRUPT GETS STACKED
GCE0K3: AOJL F,GCE0C6
GCE0C7: MOVNI F,NFF
GCE0C4: MOVE TT,SFSSIZ+NFF(F)
CAMG TT,XFFS+NFF(F) ;IF A SPACE LOST TO GC-OVERFLOW,
JRST GCE0K2 ; DON'T MAKE IT LOSE FOR GC-LOSSAGE TOO
MOVEM TT,XFFS+NFF(F) ;JUST QUIETLY UPDATE ITS GCMAX
JRST GCE0K1
GCE0K2: HRRZ T,NFFS+NFF(F)
CAMGE T,ZFFS+NFF(F)
JRST GCLUZ
GCE0K1: AOJL F,GCE0C4
IFN PAGING,[
HRRZ TT,NOQUIT
IOR TT,INHIBIT
IOR TT,VNORET
SKIPN TT
PUSHJ P,RETSP
] ;END OF IFN PAGING
SKIPE GCGAGV
STRT 17,STRTCR
;FALLS THROUGH
;GCE0E
;;; PDLS ARE SAFE
;FALLS IN
SKIPN VGCDAEMON
JRST GCEND
MOVEI C,NIL ;CONS UP ARG FOR GCDAEMON
MOVEI D,NFF-1 ;WE CHECKED LENGTH OF FREELISTS SO
SETZ C, ; WE KNOW CONSES WON'T RE-INVOKE GC
GCE0E: MOVE TT,SFSSIZ(D) ;SIZE OF SPACE AFTER GC
PUSHJ P,CONS1FX
MOVE TT,OFSSIZ(D) ;SIZE OF SPACE BEFORE GC
PUSHJ P,CONSFX
HRRZ TT,NFFS(D) ;LENGTH OF FREELIST AFTER GC
CAIN D,FFX-FFS ;ALLOW FOR THE SPACE USED
SUBI TT,4*NFF ; TO CONS UP THE GC-DAEMON ARG
CAIN D,FFS-FFS
SUBI TT,6*NFF
PUSHJ P,CONSFX
HLRZ TT,NFFS(D) ;LENGTH OF FREELIST BEFORE GC
PUSHJ P,CONSFX
HRRZ A,GCMES(D) ;NAME OF SPACE
PUSHJ P,CONS
MOVE B,C
PUSHJ P,CONS
MOVE C,A
SOJGE D,GCE0E
JSR GCRSR .SEE GCRSR0
HRLI A,1003 ;GC-DAEMON
PUSH P,A ;FOR INTERRUPT PROTECTION ONLY
PUSH FXP,D
MOVS D,A
PUSHJ P,UINT
POPI P,1 ;FLUSH SLOT "FOR INTERRUPT PRO ONLY"
MOVE D,(FXP)
MOVEM F,(FXP) ;USE AC F BELOW, SINCE GCLUZ REQUIRES IT
MOVNI F,NFF ;IF THE RUNNING OF THE GC-DAEMON ATE UP ALL
SKIPN FFS+NFF(F) ; OUR SPACE, THEN LOSE BADLY!
JRST GCLUZ0
AOJL F,.-2
POP FXP,F
JRST POPAJ ;REMEMBER! GCRSR HAS STACKED A SAVED "A"
;GCEND GCRSR0
;;; GC MUST EITHER JRST TO GCEND, OR JSR TO GCRSR BEFORE EXITING.
;;; THIS ASSURES THAT GCTIM WILL PROPERLY REFLECT TIME SPENT IN GC.
;;; THE VALUE IN GCTIM IS IN "HOST MACHINE UNITS".
;;; THESE ARE CONVERTED BEFORE BEING RETURNED TO THE USER.
.SEE SGCTIM
GCEND:
IFN D20,[
MOVEI 1,.FHSLF
RUNTM ;UPDATE GCTIM FOR D20
IFN WHL, MOVEM 1,GC98
SUB 1,GCTM1
ADDM 1,GCTIM
] ;END OF IFN D20
MOVE P,GCNASV+14-<NACS+1>
MOVE SP,GCNASV+17-<NACS+1>
PUSHJ P,UNBIND
JSP NACS+1,GCACR
SETZM GCFXP
IFE D20,[
IT$ .SUSET [.RRUNT,,NACS+1]
10$ SETZ NACS+1,
10$ RUNTIM NACS+1,
IFN WHL, MOVEM NACS+1,GC98
SUB NACS+1,GCTM1
ADDM NACS+1,GCTIM ;UPDATE GCTIME FOR (STATUS GCTIME)
] ;END OF IFE D20
IFN WHL,[
SKIPE NACS+1,GCWHO
PUSHJ P,GCWHR
] ;END OF IFN WHL
MOVE NACS+1,GCNASV
HRRZS NOQUIT
JRST CHECKI
;GCRSR: 0
GCRSR0: HRLM C,NOQUIT ;RESTORE ACS, AND CHECK FOR ANY STACKED INTERRUPTS
IFN D20,[
MOVEI 1,.FHSLF
RUNTM ;UPDATE GCTIM FOR D20
IFN WHL, MOVEM 1,GC98
SUB 1,GCTM1
ADDM 1,GCTIM
] ;END OF IFN D20
MOVE P,GCNASV+14-<NACS+1>
MOVE SP,GCNASV+17-<NACS+1>
PUSHJ P,UNBIND
JSP NACS+1,GCACR ;RESTORE AC'S
SETZM GCFXP
IT$ .SUSET [.RRUNT,,NACS+1]
10$ SETZ NACS+1,
10$ RUNTIM NACS+1,
IFN WHL*<ITS+D10>, MOVEM NACS+1,GC98
SUB NACS+1,GCTM1
ADDM NACS+1,GCTIM ;UPDATE GCTIME FOR (STATUS GCTIME)
IFN WHL,[
SKIPE NACS+1,GCWHO
PUSHJ P,GCWHR
] ;END OF IFN WHL
MOVE NACS+1,GCNASV
PUSH P,A
HLRZ A,NOQUIT
PUSH P,GCRSR
HRRZS NOQUIT
JRST CHECKI
;GCINBT GCINB0 GCWHR GCWHR8 GCWHR2 GCWHR9
;;; ROUTINE TO INIT MARK BITS FOR LIST, FIXNUM, FLONUM, HUNK,
;;; AND BIGNUM SPACES. INIT BITS IN TT, RETURN ADDRESS IN F.
GCINBT: MOVEM TT,BBITSG
MOVE AR2A,[BBITSG,,BBITSG+1]
BLT AR2A,@MAINBITBLT ;BLT OUT MAIN BIT AREA
MOVE A,BTSGLK ;INITIALIZE ALL BIT BLOCKS
GCINB0: JUMPE A,(F)
MOVEI AR2A,(A)
LSH AR2A,SEGLOG ;GET ADDRESS OF SEGMENT
HRLI AR2A,(AR2A)
MOVEM TT,(AR2A)
AOJ AR2A,
MOVE T,GCST(A) ;GET END ADDRESS FOR BLT
LSH T,SEGLOG-5
TLZ T,-1
CAIE T,(AR2A)
BLT AR2A,-1(T) ;***BLT!***
LDB A,[SEGBYT,,GCST(A)]
JRST GCINB0
IFN WHL,[
GCWHR: TRNN NACS+1,2 ;SKIP IF GC STATISTICS DESIRED
JRST GCWHR2
MOVE NACS+2,GCTIM
IDIVI NACS+2,25000./4 ;GC TIME IN FORTIETHS OF A SECOND
MOVEM NACS+2,GCWHO2
MOVE NACS+2,GCTIM ;GC TIME
IMULI NACS+2,100. ; TIMES 100.
IDIV NACS+2,GC98 ; DIVIDED BY TOTAL RUNTIME
HRLM NACS+2,GCWHO2 ; EQUALS GC TIME PERCENTAGE
TRNE NACS+1,1
JRST GCWHR2
.SUSET [.SWHO2,,GCWHO2] ;JUST SET .WHO2 IF WHO VARS NOT PREVIOUSLY SAVED
GCWHR8: MOVE NACS+2,GCNASV+1 ;RESTORE ACS
MOVE NACS+3,GCNASV+2
POPJ P,
GCWHR2: MOVE NACS+2,[-3,,GCWHR9] ;RESTORE WHO VARS, POSSIBLY WITH
.SUSET NACS+2 ; GC STATISTICS CLOBBERED INTO GCWHO2
JRST GCWHR8
GCWHR9: .SWHO1,,GCWHO1
.SWHO2,,GCWHO2
.SWHO3,,GCWHO3
] ;IFN WHL
;GCACRS GCACR $GCMKAR GCMKAR GCMKA1 GCGEN GCP8A GCP8A1
SUBTTL MISCELLANEOUS GC UTILITY ROUTINES
GCACRS: MOVE SP,GCNASV+17-<NACS+1> ;RESTORE SP ALSO
GCACR: SKIPN GCFXP
MOVEM FXP,GCFXP
MOVE NIL,[GCACSAV+1,,1] ;RESTORE ALL ACS EXCEPT NACS+1
BLT NIL,NACS
MOVE NIL,[GCNASV+1,,NACS+2]
BLT NIL,FXP
MOVE NIL,GCACSAV
SETZM GCFXP .SEE CHNINT ;ETC.
JRST (NACS+1)
$GCMKAR: MOVE D,ASAR(A)
GCMKAR: MOVE F,TTSAR(A)
SKIPL D,-1(D) ;MARK FROM ARRAY ENTRIES.
JRST (TT)
GCMKA1: HLRZ A,(D)
JSP T,GCMARK
HRRZ A,(D)
JSP T,GCMARK
AOBJN D,GCMKA1
JUMPE F,(TT)
TLNE F,TTS<TY>
TLNE F,TTS<IO>
JRST (TT)
MOVEI D,FB.BUF(F) ;FOR TTY INPUT FILE ARRAYS,
HRLI D,-NASCII/2 ; MUST MARK INTERRUPT FUNCTIONS
SETZ F,
JRST GCMKA1
;;; GCGEN GENERATES NON-NULL BUCKETS OF THE CURRENT OBARRAY
;;; AND APPLIES A GIVEN FUNCTION TO THEM. IT IS CALLED AS
;;; JSP R,GCGEN
;;; FOO
;;; GCGEN WILL EFFECTIVELY DO A JRST FOO MANY TIMES,
;;; PASSING SOME NON-NULL OBARRAY BUCKET THROUGH ACCUMULATOR D.
;;; FOO IS EXPECTED TO RETURN BY DOING A JRST GCP8A.
;;; WHEN DONE, GCGEN RETURNS, SKIPPING OVER THE ADDRESS FOO.
GCGEN: MOVE F,@VOBARRAY .SEE ASAR
MOVE F,-1(F)
SUB F,R70+1
TLZ R,400000
GCP8A: TLCE R,400000
JRST GCP8A1
AOBJP F,1(R) ;EXIT
HLRZ D,(F)
JUMPN D,@(R)
JRST GCP8A
GCP8A1: HRRZ D,(F)
JUMPN D,@(R)
JRST GCP8A
;GCMARK GCMRK0 GCMRK3 GCMRK6 GCMRK7 GCMRK4 GCMRK5 GCMKND GCMRK8 GCMRK1 GCMRK2 GCMK2A GCMK2B GCHNLN
;;; MARK AN S-EXPRESSION GIVEN IN A. TRACES IT COMPLETELY,
;;; MARKING ALL SUBITEMS BY SETTING A MARK BIT TO **ZERO**
;;; FOR LIST, FIXNUM, FLONUM, AND BIGNUM SPACES, AND TO
;;; **ONE** FOR SYMBOLS AND SARS. (THIS SPEEDS UP SWEEPING.)
;;; NEVER MARKS VALUE CELLS!!!! (THEY ARE NEVER SWEPT.)
;;; CALLED BY JSP T,GCMARK WITH OBJECT IN A. USES A,B,C,AR1,AR2A.
GCMARK: JUMPE A,(T) ;NEEDN'T MARK NIL
MOVEI AR2A,(P) ;REMEMBER WHERE P IS
GCMRK0: JRST GCMRK1 .SEE KLINIT
GCMRK3: TLNN A,GCBSYM ;MAYBE WE FOUND A SYMBOL
JRST GCMRK4 ;NOPE
HLRZ AR1,(C) ;YUP
TROE AR1,1
JRST GCMKND
HRLM AR1,(C)
PUSH P,(C) ;PUSH PROPERTY LIST
PUSH P,(AR1) ;PUSH PNAME LIST
SKIPE ETVCFLSP ;A HAC TO SAVE TIME IF THERE NEVER HAVE BEEN
JRST GCMRK6 ; VALUE CELLS TAKEN FROM LIST SPACE
HRRZ A,@-1(AR1)
JRST GCMRK1 ;GO MARK VALUE OF SYMBOL
GCMRK6: HRRZ A,-1(AR1)
CAIGE A,EVCSG
CAIGE A,BVCSG
JRST GCMRK7
HRRZ A,(A)
CAIE A,QUNBOUND
JRST GCMRK1
JRST GCMRK8
GCMRK7: LSH A,-SEGLOG
SKIPL A,GCST(A) ;SKIP IF VALUE CELL NOT A LIST CELL??
JRST GCMKND ;SUNBOUND, FOR EXAMPLE????
HRRZ A,-1(AR1) ;POINTING TO A VC IN LIST SPACE
JRST GCMRK1
GCMRK4: TLNN A,GCBVC ;MAYBE WE FOUND A VALUE CELL
JRST GCMRK5 ;NOPE
HRRZ A,(C) ;YUP - MARK ITS CDR (THE VALUE)
JRST GCMRK1
GCMRK5: MOVSI AR1,TTS<GC> ;MUST BE AN ARRAY
IORM AR1,TTSAR(C) ;SET ARRAY MARK BIT TO 1
GCMKND: CAIN AR2A,(P) ;SKIP IF ANYTHING LEFT ON STACK TO MARK
JRST (T) ;ELSE RETURN
GCMRK8: POP P,A ;GET NEXT ITEM TO MARK
GCMRK1: HRRZS C,A ;ZERO LEFT HALF OF A, ALSO SAVE IN C
SETZ B,
LSHC A,-SEGLOG ;GET PAGE NUMBER OF ITEM (OTHER BITS GO INTO B)
SKIPL A,GCST(A) ;CHECK GCST ENTRY FOR THAT PAGE
JRST GCMKND ;NOT MARKABLE - IGNORE IT
TLNE A,GCBFOO ;MAYBE IT'S A VALUE CELL OR SYMBOL OR SAR
JRST GCMRK3 ;IF SO HANDLE IT SPECIALLY
LSHC A,SEGLOG-5 ;THIS GETS ADDRESS OF BIT WORD FOR THIS ITEM
ROT B,5 ;B TELLS US WHICH BIT (40/WD)
MOVE AR1,(A) ;GET WORD OF MARK BITS
TDZN AR1,GCBT(B) ;CLEAR THE ONE PARTICULAR BIT
JRST GCMKND ;QUIT IF ITEM ALREADY MARKED
MOVEM AR1,(A) ;ELSE SAVE BACK WORD OF BITS
JUMPGE A,GCMKND .SEE GCBCDR ;JUMP UNLESS MUST MARK THROUGH (REMEMBER THE LSHC)
HRR A,(C) ;GET CDR OF ITEM
TLNN A,GCBCAR←<SEGLOG-5> ;MAYBE WE ALSO WANT TO MARK THE CAR
JRST GCMRK1 ;NO - GO MARK CDR
PUSH P,A ;YES - SAVE CDR ON STACK
HLR A,(C) ;GET CAR OF ITEM AND GO MARK IT
IFE HNKLOG, JRST GCMRK1
IFN HNKLOG,[
TLNN A,GCBHNK←<SEGLOG-5>
JRST GCMRK1 ;ORDINARY LIST CELL
PUSH P,T ;FOR HUNK, SAVE T AND AR2A SO
HRLM AR2A,(P) ; CAN CALL GCMARK RECURSIVELY
MOVEI A,(C)
LSH A,-SEGLOG
HRRZ A,ST(A) ;GET TYPEP OF HUNK
2DIF [HRL C,(A)]GCHNLN,QHUNK0 ;C NOW HAS AOBJN POINTER
MOVEI AR2A,(P) ;SET UP AR2A FOR RECURSIVE GCMARK
GCMRK2: MOVEM C,-1(P) ;SAVE AOBJN POINTER IN SLOT PUSHED FOR CDR
HLRZ A,(C)
JUMPE A,GCMK2A
JSP T,GCMRK1 ;MARK ODD HUNK SLOT
MOVE C,-1(P)
GCMK2A: HRRZ A,(C)
JUMPE A,GCMK2B
JSP T,GCMRK1 ;MARK EVEN HUNK SLOT
MOVE C,-1(P)
GCMK2B: AOBJN C,GCMRK2
POP P,T ;RESTORE T AND AR2A
HLRZ AR2A,T
SUB P,R70+1 ;FLUSH AOBJN POINTER
JRST GCMKND
GCHNLN: -1
REPEAT HNKLOG, -<2←.RPCNT> ;LH'S FOR AOBJN POINTERS
] ;END OF IFN HNKLOG
;LSPGCM LSPGCS KLGCVC KLGCM1 KLGCND KLGCM2 KLGCSY KLGCSA ZZZ ZZZ KLGCSW KLGS1 KLGS1A KLGS1D
COMMENT | ONE OF THESE DAYS I'LL DEBUG THE MICROCODE FOR THIS - GLS
IFN ITS,[ IFE SEGLOG-11,[ IFLE HNKLOG-5,[
;;; MARK ROUTINE FOR USE WITH KL-10 MICROCODE
LSPGCM=:070000,,
LSPGCS=:071000,,
KLGCVC: SKIPA A,(A)
PUSH P,B
KLGCM1: LSPGCM A,KLGCM2
KLGCND: CAIN AR2A,(P)
JRST (T)
POP P,A
JRST KLGCM1
KLGCM2: JRST KLGCSY
JRST KLGCVC
JRST KLGCSA
REPEAT HNKLOG, JRST CONC KLGH,\.RPCNT+1
REPEAT 8-.+KLGCM2, .VALUE
KLGCSY: HLRZ AR1,(A)
TROE AR1,1
JRST KLGCND
HRLM AR1,(A)
PUSH P,(A)
PUSH P,(AR1)
HRRZ A,@-1(AR1)
JRST KLGCM1
KLGCSA: MOVSI AR1,TTS<GC>
IORM AR1,TTSAR(A)
JRST KLGCND
IFN HNKLOG,[
ZZZ==<1←HNKLOG>-1
REPEAT HNKLOG,[
CONC KLGH,\HNKLOG-.RPCNT,:
REPEAT 1←<HNKLOG-.RPCNT-1>,[
PUSH P,ZZZ(A)
HLRZ B,(P)
PUSH P,B
ZZZ==ZZZ-1
] ;END OF REPEAT 1←<HNKLOG-.RPCNT-1>
] ;END OF REPEAT HNKLOG
IFN ZZZ, WARN [YOU LOSE]
PUSH P,(A)
HLRZ A,(A)
JRST KLGCM1
] ;END OF IFN HNKLOG
KLGCSW: MOVNI T,3+BIGNUM ;SWEEP
KLGS1: SETZB C,AR1 ;ZERO FREELIST AND COUNT
SKIPN TT,FSSGLK+3+BIGNUM(T)
JRST KLGS1D
KLGS1A: MOVE B,GCST(TT)
LSH B,SEGLOG-5
TLZ B,-1
MOVEI A,(TT)
LSH A,SEGLOG
HRLI A,-SEGSIZ
LSPGCS A,1
LDB TT,[SEGBYT,,GCST(TT)]
JUMPN TT,KLGS1A
KLGS1D: MOVEM C,FFS+3+BIGNUM(T)
HRRM AR1,NFFS+3+BIGNUM(T)
AOJL T,KLGS1
JRST GCSW4A
]]] ;END OF IFLE HNKLOG-5, IFE SEGLOG-11, IFN ITS
| ;END OF COMMENT
;GSGEN RTSPC2 RTSP2A GGEN2 GGEN1 GFSPC GTSP5A BPSGC BPSGX
GSGEN: SKIPN AR2A,GCMKL ;GENERATE TAILS OF GCMKL AND APPLY
POPJ P, ;FUN IN AR1 TO THEM
PUSH P,AR1
MOVEI AR1,GCMKL
JRST GGEN1
RTSPC2: JUMPE A,GGEN2
RTSP2A: ADD D,TT
GGEN2: HRRZ AR2A,(AR2A) ;GENERAL LOOP FOR GSGEN
MOVEI AR1,(AR2A)
HRRZ AR2A,(AR2A)
GGEN1: JUMPE AR2A,POP1J ;TAIL OF GCMKL IN AR2A,
HRRZ A,(AR2A) ;SPACE OCCUPIED IN TT,
HLRZ A,(A) ;ALIVEP IN A
MOVE TT,(A)
HLRZ A,(AR2A)
HLRZ A,ASAR(A)
JRST @(P) ;ROUTINE WILL RETURN TO GGEN2
GFSPC: PUSH FXP,AR1
PUSHJ P,CNLAC ;COUNT NUMBER OF LIVING ARRAY CELLS
POP FXP,AR1
ADD D,@VBPORG ;NOW HAS TOTAL AMOUNT FREE IN BPS [COUNTING DEAD BLOCKS]
ADD D,GAMNT ;NOW DIMINISHED BY REQUESTED AMOUNT
CAMG D,BPSH
JRST GRELAR ;IF ENOUGH SPACE, THEN RELOCATE
JRST (R)
IFN PAGING,[
GTSP5A: SETZB A,TT ;GIVE OUT NIL AND 0 IF FAIL
JUMPLE AR1,CZECHI
PUSHJ P,BPSGC
JSP R,GFSPC
SETZ AR1,
JRST GTSP1B
] ;END OF IFN PAGING
BPSGC: PUSH FXP,NOQUIT ;SAVE CURRENT STATE OF FLAG
HLLZS NOQUIT ;FORCE OFF RIGHT HALFWORD
PUSH P,[444444,,BPSGX] ;MAGIC NUMBER,,RETURN ADR
JRST AGC
BPSGX: POP FXP,NOQUIT ;RESTORE OLD SETTING OF FLAGS
POPJ P,
;GCP8K GCP8J GCP8I GCP8G GCP8C GCP8B GCP8D GCP8H GCP8L GCP8L5 TWAP
;;; SOME ROUTINES FOR USE WITH GSGEN
GCP8K: HLRZ A,(D)
JSP T,GCMARK
GCP8J: HRRZ D,(D) ;MARK ATOMS ON OBLIST
GCP8I: JUMPE D,GCP8A ;WHICH HAVE NON-TRIVIAL
MOVE A,D ;P-LIST STRUCTURE.
JSP T,TWAP
JRST GCP8J
JRST GCP8K
JRST GCP8J
GCP8G: JUMPE D,GCP8A ;REMOVE T.W.A.'S FROM
MOVE A,D ;BUCKETS OF OBLIST.
JSP T,TWAP
JRST GCP8B
JRST GCP8B
HRRZ D,(D)
TLNE R,400000 ;BUCKET COMES FROM LH OF WORD IN OBARRAY
HRLM D,(F) ;IF AT THIS POINT R < 0
TLNN R,400000
HRRM D,(F)
JSP T,GCP8L
JRST GCP8G
GCP8C: HRRZ D,(D)
GCP8B: HRRZ A,(D)
GCP8D: JUMPE A,GCP8A
JSP T,TWAP
JRST GCP8C
JRST GCP8C
HRRZ A,(D)
HRRZ A,(A)
HRRM A,(D)
JSP T,GCP8L
JRST GCP8B
GCP8H: MOVE A,D ;MARK OBLIST BUCKET
JSP T,GCMARK
JRST GCP8A
GCP8L: JUMPE TT,(T) ;IF SCO REMOB'D, THEN REMOVE FROM SCO TABLE
HRRZ A,(TT)
JUMPN A,(T)
HLRZ A,(TT)
MOVE B,(A) ;MUST NOT BE INTERRUPTIBLE HERE
MOVEI A,0
LSHC A,7
JUMPN B,(T)
HRRZ TT,VOBARRAY
HRRZ TT,TTSAR(TT)
ADDI TT,<OBTSIZ+1>/2
ROT A,-1
ADD TT,A
JUMPL TT,GCP8L5
HRRZS (TT)
JRST (T)
GCP8L5: HLLZS (TT)
JRST (T)
TWAP: HLRZ A,(A)
JUMPE A,(T) ;NIL IS ALREADY MARKED
HLRZ TT,(A)
TRZE TT,1
JRST (T) ;NO SKIP IF ALREADY MARKED
MOVE B,SYMVC(TT)
MOVE TT,SYMARGS(TT)
TLNN B,SY.CCN\SY.PUR ;SKIP 1 IF SYMBOL HAS SOME NON-TRIVIAL
TLZE TT,-1 ;PROPERTIES: ARGS OR COMPILED CODE REFERENCE
JRST 1(T)
HRRZ B,(B)
HRRZ A,(A)
CAIN B,QUNBOUND
JUMPE A,2(T) ;SKIP 2 IF TRULY WORTHLESS SYMBOL,
; I.E., UNBOUND AND NO PROPERITES
JRST 1(T) ;SKIP 1 IF MEANINGFUL PROPERTIES OR VALUE
;STGPNT GCBT
;;; PRINT MESSAGE OF FORM "NNN[MM%] " FOR GC STATISTICS OUTPUT
STGPNT: PUSH FXP,F ;NEED TO SAVE F (IN CASE OF IFORCE)
PUSH FXP,T ;RECLAIMED AMNT IN T, TOTAL FOR SPACE IN TT
IMULI T,100.
IDIVM T,TT
EXCH TT,(FXP)
HRRZ AR1,VMSGFILES
TLO AR1,200000
MOVEI R,$TYO
IFE USELESS, MOVE C,@VBASE ;BASE HAD DAMNED WELL BETTER BE A FIXNUM
IFN USELESS,[
HRRZ C,VBASE
CAIE C,QROMAN
SKIPA C,(C)
PUSHJ P,PROMAN ;SKIPS
] ;END OF IFN USELESS
PUSHJ P,PRINI2
STRT 17,[SIXBIT \[!\] ;BEWARE THESE BRACKETS!!!!!
POP FXP,TT
IFE USELESS, MOVEI C,10.
IFN USELESS,[
HRRZ C,VBASE
CAIE C,QROMAN
SKIPA C,[10.]
PUSHJ P,PROMAN
] ;END OF IFN USELESS
PUSHJ P,PRINI3 ;EFFECTIVELY, PRINI2 WITH *NOPOINT=T
STRT 17,[SIXBIT \%] !\] ;BEWARE THESE BRACKETS!!!!!
POP FXP,F
POPJ P,
;;; VERY IMPORTANT TABLE OF WORDS WITH SINGLE BITS!!! USED FOR MARKING!!!
GCBT: REPEAT 36., SETZ←-.RPCNT
;RETSP RTSP2 RTSP7 RTSP9 RTSP5 RTSPC1
IFN PAGING,[
SUBTTL RETURN CORE TO TIMESHARING SYSTEM
;;; HAIRY ROUTINE TO DECIDE WHETHER TO RETURN SOME BPS TO THE SYSTEM.
;;; MAY ONLY BE CALLED WHEN NOQUIT SPECIFIES NO INTERRUPTS.
RETSP:
10$ POPJ P, ;NOOP ON D10'S RUNNING PAGING LISP
IFE D10,[
MOVEI TT,4 ;GTSPC1 IS ALLOWED TO GRAB 4 PAGES
MOVEM TT,ARPGCT ; BEFORE INVOKING GC FOR LACK OF CORE
PUSHJ P,CNLAC ;COUNT NUMBER OF LIVING ARRAY CELLS
MOVE TT,BPSH
LSH TT,-PAGLOG ;CURRENT HIGHEST CORE BLOCK IN BPS
MOVE R,@VBPORG
ADDI R,1(D)
LSH R,-PAGLOG ;CORE NEEDED IF ARRAYS WERE PACKED
CAML R,TT
POPJ P,
LSH R,PAGLOG
ADDI R,PAGSIZ-1
HRLM R,RTSP1 ;NEW BPSH
SUB R,D
HRRM R,RTSP3 ;NEW BPEND
JUMPE D,RTSP5
HRLM D,RTSP3 ;NUMBER OF CELLS TO MOVE
PUSHJ P,GRELAR ;GRELAR LEAVES BPEND-AFTER-RELOCATION IN TT
HRL AR1,TT
HRR AR1,RTSP3 ;BLOCK PTR
SUBI TT,(AR1)
JUMPLE TT,RTSP2
MOVNI TT,1(TT)
HRRM TT,RTSP1
ADD AR1,R70+1
HLRZ C,RTSP3
ADD C,RTSP3
BLT AR1,(C)
MOVEI AR1,RTSPC1
PUSHJ P,GSGEN ;DO PATCH-UP ON ARRAY PARAMETERS
JSP T,RSXST ;????
RTSP2: HLRZ TT,RTSP1
MOVE R,TT
EXCH R,BPSH
HRRZ D,RTSP3
MOVEM D,@VBPEND
LSH R,-PAGLOG ;OLD CORE HIGHEST
LSH TT,-PAGLOG ;NEW CORE HIGHEST
MOVEI F,1(TT) ;MAKE UP A POINTER INTO THE PURTBL
ROT F,-4
ADDI F,(F)
ROT F,-1
TLC F,770000
ADD F,[450200,,PURTBL]
IT$ SUBM TT,R ;FOR ITS, MINUS THE NUMBER OF PAGES TO HACK
20$ SUBI R,(TT) ;FOR D20, THE POSITIVE NUMBER OF PAGES TO HACK
AOS D,TT
IFN ITS,[
HRLI TT,(R) ;-<NUMBER OF PAGES>,,<INITIAL PAGE NUMBER>
.CALL RTSP9 ;FLUSH THE PAGES
.LOSE 1000
] ;END OF IFN ITS
IFN D20,[
SETO 1, ;-1 MEANS DELETE PAGES
MOVSI 2,.FHSLF ;FROM SELF
HRRI 2,(TT) ;INITIAL PAGE NUMBER
MOVEI 3,(R) ;NUMBER OF PAGES
TLO 3,PM%CNT ;SET ITERATION BIT
PMAP
] ;END OF IFN D20
LSH D,-SEGLOG+PAGLOG
MOVE T,[$NXM,,QRANDOM] ;STANDARD ST ENTRY FOR A FLUSHED PAGE
RTSP7: TLNN F,730000
TLZ F,770000
IDPB NIL,F ;UPDATE PURTBL ENTRY FOR ONE PAGE
REPEAT SGS%PG, MOVEM T,ST+.RPCNT(D) ;UPDATE ST ENTRIES
ADDI D,SGS%PG
IT$ AOJL R,RTSP7
20$ SOJG R,RTSP7
POPJ P,
IFN ITS,[
RTSP9: SETZ
SIXBIT \CORBLK\ ;HACK PAGE MAP
1000,,0 ;DELETE PAGES
1000,,%JSELF ;FROM CURRENT JOB
400000,,TT ;AOBJN POINTER: -<COUNT>,,<PAGE NUMBER>
] ;END OF IFN ITS
RTSP5: SETZM GCMKL ;NO ARRAYS ALIVE
MOVE TT,R
PUSHJ P,BPNDST ;SETQ UP BPEND
JRST RTSP2
RTSPC1: JUMPE A,GGEN2
HRRE B,RTSP1 ;-<SIZE OF SHIFT + 1>
JSP AR1,GT3D
JRST GGEN2
] ;END IFE D10
] ;END OF IFN PAGING
;GTSPC1 GTSP1B GTSPC8 GTSPC2 GRELAR GREL1 CZECHI GTSPC8
SUBTTL GET SPACE FROM TIMESHARING SYSTEM
GTSPC1: HLLOS NOQUIT
JSP R,GFSPC ;SEE IF FREE SPACE ABOVE BPEND WILL ADD ENOUGH
IFN PAGING,[
SKIPLE AR1,ARPGCT
JRST GTSP1B
] ;END OF IFN PAGING
PUSHJ P,BPSGC ;WHEN COMPACTIFIED AND RELOCATED
JSP R,GFSPC ;IF NOT, GC AND TRY AGAIN
GTSP1B:
IFE PAGING,[
SETZB A,TT ;GIVE OUT NIL AND 0 IF WE FAIL
JRST CZECHI
] ;END OF IFE PAGING
IFN PAGING,[
CAML D,HINXM
JRST GTSP5A
MOVEI T,(D)
TRO T,PAGSIZ-1
MOVE R,BPSH
LSH D,-PAGLOG
LSH R,-PAGLOG
SUBM R,D ;NEGATIVE OF NUMBER OF PAGES TO GET
ADDM F,ARPGCT
MOVEI F,1(R) ;SET UP BYTE POINTER INTO PURTBL
ROT F,-4
ADDI F,(F)
ROT F,-1
TLC F,770000
ADD F,[450200,,PURTBL]
MOVEI TT,1(R)
LSH TT,-SEGLOG+PAGLOG
HLRZ AR1,(P) ;BEWARE! LH OF CALLING PDL SLOT = -1
TRNN AR1,1 ; MEANS THE GETSP FUNCTION IS CALLING
TROA AR1,3
MOVEI AR1,1
IFN ITS,[
HRLI R,(D)
HRRI R,1(R)
.CALL GTSPC8
.LOSE 1000
] ;END OF IFN ITS
IFN D20,[
PUSH P,D ;SAVE NEGATIVE COUNT
PUSH P,R ;AND SAVE CURRENT PAGE NUMBER
GTSPC8: AOS R,(P) ;GET NEXT PAGE NUMBER
LSH R,PAGLOG ;TURN INTO POINTER TO PAGE
SETMM (R) ;CREATE THE PAGE
MOVSI 1,.FHSLF ;OUR PROCESS
HRR 1,(P) ;CURRENT PAGE NUMBER
MOVSI 2,(PA%RD\PA%WT\PA%EX) ;READ, WRITE, EXECUTE
SPACS ;SET THEPAGE ACCESS
AOJL D,GTSPC8
POP P,R
POP P,D
] ;END OF IFN D20
MOVE A,[$XM,,QRANDOM]
GTSPC2: TLNN F,730000
TLZ F,770000
IDPB AR1,F ;UPDATE PURTBL ENTRY
REPEAT SGS%PG, MOVEM A,ST+.RPCNT(TT) ;UPDATE ST ENTRIES
ADDI TT,SGS%PG
AOJL D,GTSPC2
MOVEM T,BPSH ;FALLS INTO GRELAR
] ;END OF IFN PAGING
GRELAR: HLLOS NOQUIT ;MOBY DELAYED QUIT FEATURE.
HRRZ A,BPSH ;LEAVE BPEND-AFTER-RELOCATION AS RESULT
MOVEM A,GSBPN ;TEMPORARY BPEND
MOVEI AR1,GTSPC3
PUSHJ P,GSGEN ;RELOCATE ARRAYS
JSP T,RSXST
GREL1: MOVE TT,GSBPN
PUSHJ P,BPNDST
MOVE TT,(A)
CZECHI: HLLZS NOQUIT
JRST CHECKI ;CHECK FOR ↑G THEN POPJ P,
IFN ITS,[
GTSPC8: SETZ
SIXBIT \CORBLK\ ;HACK PAGE MAP
1000,,%CBNDR+%CBNDW ;NEED READ AND WRITE ACCESS
1000,,%JSELF ;FOR MYSELF
,,R ;AOBJN POINTER: -<COUNT>,,<PAGE NUMBER>
401000,,%JSNEW ;WANT FRESH PAGES
] ;END OF IFN ITS
;CNLAC BPNDST GTSPC3 GT3Z GT3H GT3B GT3A GT3C GT3D GT3D2 GT3D4 GT3G
SUBTTL ARRAY RELOCATOR
CNLAC: MOVEI D,0 ;COUNT NUMBER OF LIVING ARRAY CELLS, IN D
MOVEI AR1,RTSPC2
JRST GSGEN
BPNDST: JSP T,FIX1A ;STORE NEW VALUE FOR BPEND
MOVEM A,VBPEND
POPJ P,
;;; COMES HERE FROM GRELAR VIA GSGEN. AR2A HAS TAIL OF GCMKL, TT HAS TOTAL LENGTH OF ARRAY
GTSPC3: JUMPE A,GT3G ;RELOCATE AN ARRAY
MOVEI AR1,-1(TT) ;LENGTH-1 OF ARRAY IN AR1
HLRZ F,(AR2A)
HRRZ A,ASAR(F)
SUBI A,1 ;ARRAY AOBJN PTR LOC IN A.
MOVE C,GSBPN
SUBI C,(AR1)
MOVEM C,GSBPN ;LOC NEW BPTR IN C
MOVEI B,(C)
SUBI B,1(A) ;RELOCATION AMOUNT-1 IN B
CAML A,C ;IS ARRAY ALREADY IN PLACE?
JRST GT3C ;YES, SO EXIT
IFN D10,[
MOVE R,ASAR(F)
MOVE F,TTSAR(F)
TLNN R,AS.FIL ;IF THE ARRAY IS A FILE OBJECT,
JRST GT3H ; IS NOT CLOSED, AND HAS BUFFERS,
TLNN F,TTS.CL ; THEN WE MUST LET THE I/O COMPLETE
SKIPGE F.MODE(F) .SEE FBT.CM
JRST GT3H
IFE SAIL,[
TLNN F,TTS.IO ;OUTPUT?
JRST GT3Z ;NOPE, JUST WAIT
MOVE T,F.CHAN(F) ;GET CHANNEL NUMBER
LSH T,27
TLO T,(OUTPUT) ;FLUSH ALL OUTPUT BUFFERS
XCT T
] ;END IFE SAIL
GT3Z: MOVE F,F.CHAN(F)
LSH F,27
IOR F,[WAIT 0,] ;WAIT FOR THE I/O TO SETTLE DOWN
XCT F ; SO WE CAN RELOCATE THE BUFFERS
GT3H:
] ;END OF IFN D10
SUBI C,(AR1)
CAMGE A,C ;BEWARE: C COULD GO NEGATIVE!
JRST GT3A ;GOOD, EASY BLT
ADDI C,(AR1)
ADDI AR1,1(A) ;FIRST DESTINATION LOC
GT3B: HRRZI C,(AR1)
SUBI AR1,1(B) ;CONSTRUCT SOURCE ADDRESS
HRLI C,(AR1)
HRRZI T,(C)
ADDI T,(B)
BLT C,(T) ;SERIES OF SMALL BLTS
CAMLE AR1,GSBPN
JRST GT3B
ADDI AR1,(B)
SUB AR1,GSBPN
MOVE A,GSBPN
SUBI A,1(B)
GT3A: MOVE C,GSBPN
ADDI AR1,(C)
HRL C,A
BLT C,(AR1) ;FINAL (OR ONLY) BLT
JSP AR1,GT3D
GT3C: SOS GSBPN
JRST GGEN2
GT3D: ADDI B,1
HLRZ A,(AR2A)
ADDM B,ASAR(A) ;UPDATE ARRAY POINTERS BY OFFSET IN B
ADDM B,TTSAR(A)
MOVE C,ASAR(A)
ADDM B,-1(C) ;UPDATE AOBJN PTR BEFORE ARRAY HEADER
HRR C,TTSAR(A) ;FOR A BUFFERED FILE OBJECT, WE MUST
TLNE C,AS.FIL ; RELOCATE CERTAIN ADDRESSES IN THE ARRAY DATA
SKIPGE F.MODE(C) .SEE FBT.CM
JRST (AR1)
MOVE C,TTSAR(A)
IFN ITS+D20,[
ADDM B,FB.IBP(C)
ADDM B,FB.BP(C)
JRST (AR1)
] ;END OF ITS+D20
IFN D10,[
TLNE C,TTS.CL ;DON'T HACK WITH CLOSED FILE OBJECTS
JRST (AR1)
MOVE F,FB.HED(C)
ADDM B,(F) ;UPDATE CURRENT BUFFER ADDRESS
ADDM B,1(F) ;UPDATE BYTE POINTER
HRRZ F,(F)
MOVE R,F
GT3D2: ADDM B,(R) ;UPDATE BUFFER RING POINTERS
HRRZ R,(R)
CAIE R,(F) ;DONE WHEN WE HAVE GONE AROUND THE RING
JRST GT3D2
IFN SAIL,[
MOVE R,F.CHAN(C) ;GET CHANNEL NUMBER
LSH R,27
HRR R,FB.HED(C) ;POINTER TO BUFFER HEADER
HRR R,(R) ;GET CURRENT ADDR OF BUFFER
TLNN C,TTS.IO ;DO APPROPRIATE UUO TO MOVE BUFFER
TLOA R,(INPUT)
TLO R,(OUTPUT)
XCT R
JRST (AR1)
] ;END OF IFN SAIL
IFE SAIL,[
TLNN C,TTS.IO
JRST GT3D4
MOVE R,F.CHAN(C) ;GET CHANNEL NUMBER
LSH R,27 ;FOR OUTPUT BUFFERS
HRR R,FB.HED(C) ;GET CURRENT ADR OF BUFFER
HRR R,(R)
TLO R,(OUTPUT) ;DO APPROPRIATE UUO TO MOVE BUFFER
XCT R
JRST (AR1)
GT3D4: MOVSI R,TTS.BM
IORM R,TTSAR(A)
JRST (AR1)
] ;END OF IFE SAIL
] ;END OF IFN D10
GT3G: HRRZ AR2A,(AR2A)
HRRZ AR2A,(AR2A)
HRRM AR2A,(AR1) ;CUT OUT DEAD BLOCK
JRST GGEN1
PGTOP GC,[GARBAGE COLLECTOR]
;PURCOPY PCOPY9 PCOPLS PCONS PCOPFX PFXCONS PFXC1 PFXC3
;;; ********** MEMORY MANAGEMENT, ETC **********
SUBTTL PURCOPY FUNCTION
PGBOT BIB
PURCOPY:
PUSHJ FXP,SAV5M2
PUSH P,[RST5M2]
PUSH FXP,CCPOPJ
PUSHJ P,SAVX5
PUSH P,[RSTX5]
MOVEI TT,(A) ;USES A,B,T,TT
LSH TT,-SEGLOG
MOVE TT,ST(TT)
TLNE TT,PUR
POPJ P,
2DIF JRST (TT),PCOPY9,QLIST .SEE STDISP
PCOPY9: JRST PCOPLS ;LIST
JRST PCOPFX ;FIXNUM
JRST PCOPFL ;FLONUM
DB$ JRST PCOPDB ;DOUBLE
CX$ JRST PCOPCX ;COMPLEX
DX$ JRST PCOPDX ;DUPLEX
BG$ JRST PCOPBN ;BIGNUM
JRST PCOPSY ;SYMBOL
HN$ REPEAT HNKLOG+1, JRST PCOPHN ;HUNKS
POPJ P, ;RANDOM
MOVSI TT,100 ;ARRAY
IFN .-PCOPY9-NTYPES, WARN [WRONG LENGTH TABLE]
IORM TT,(A) ;SET "COMPILED CODE NEEDS ME" BIT
POPJ P,
PCOPLS: HLRZ B,(A) ;PURCOPY A LIST ALREADY
PUSH P,B
HRRZ A,(A)
SKIPE A ;NEVER PURCOPY NIL
PUSHJ P,PURCOPY
EXCH A,(P)
SKIPE A ;NEVER PURCOPY NIL
PUSHJ P,PURCOPY
POP P,B
PCONS: AOSL TT,NPFFS ;PURE FS CONSER
SPECPRO INTPPC
PUSHJ P,GTNPSG ;NOTE: CLOBBERS TT
ADD TT,EPFFS
NOPRO
HRLM A,(TT)
HRRM B,(TT)
MOVEI A,(TT)
POPJ P,
PCOPFX: MOVE TT,(A)
PFXCONS: CAIGE TT,XHINUM ;PURE FIXNUM CONSER
CAMGE TT,[-XLONUM]
JRST PFXC1
MOVEI A,IN0(TT)
POPJ P, ;NOTE: EXITS WITH POPJ P,!!!
PFXC1: AOSL A,NPFFX
SPECPRO INTPPC
PUSHJ P,GTNPSG
ADD A,EPFFX
NOPRO
PFXC3: MOVEM TT,(A)
POPJ P,
;PCOPFL PFLCONS PCOPCX PCXCONS PCOPDB PDBCONS PDBC3 PCOPDX PDXCONS PCOPBN PBNCONS
PCOPFL: MOVE TT,(A)
PFLCONS: AOSL A,NPFFL ;PURE FLONUM CONSER
SPECPRO INTPPC
PUSHJ P,GTNPSG
ADD A,EPFFL
NOPRO
JRST PFXC3 ;ALSO EXITS WITH POPJ P,!!!
IFN CXFLAG,[
PCOPCX:
KA MOVE D,1(A)
KA MOVE TT,(A)
KIKL DMOVE TT,(A)
PCXCONS: AOSL A,NPFFC
SPECPRO INTPPC
PUSHJ P,GTNPSG
XCTPRO
MOVEI T,1(A)
MOVEM T,NPFFC
ADD A,EPFFC
NOPRO
DB% JRST PDBC3 ;WILL DROP IN IF NO DOUBLES
] ;END OF IFN CXFLAG
IFN DBFLAG,[
PCOPDB:
KA MOVE D,1(A)
KA MOVE TT,(A)
KIKL DMOVE TT,(A)
PDBCONS: AOSL A,NPFFD
SPECPRO INTPPC
PUSHJ P,GTNPSG
XCTPRO
MOVEI T,1(A)
MOVEM T,NPFFD
ADD A,EPFFD
NOPRO
] ;END OF IFN DBFLAG
IFN DBFLAG+CXFLAG,[
PDBC3:
KA MOVEM D,1(A)
KA JRST PFXC3
KIKL DMOVEM TT,(A)
KIKL POPJ P,
] ;END OF IFN DBFLAG+CXFLAG
IFN DXFLAG,[
PCOPDX:
KA REPEAT 4, MOVE TT+<2#.RPCNT>,.RPCNT
KIKL DMOVE R,(A)
KIKL DMOVE TT,2(A)
PDXCONS: AOSL A,NPFFZ
SPECPRO INTPPC
PUSHJ P,GTNPSG
XCTPRO
MOVEI T,3(A)
MOVEM T,NPFFZ
ADD A,EPFFZ
NOPRO
KA REPEAT 4, MOVEM TT+<2#.RPCNT>,.RPCNT
KIKL DMOVEM R,(A)
KIKL DMOVEM TT,2(A)
POPJ P,
] ;END OF IFN DBFLAG
IFN BIGNUM,[
PCOPBN: PUSH P,(A)
HRRZ A,(A)
PUSHJ P,PURCOPY
HLL A,(P)
SUB P,R70+1
PBNCONS: AOSL TT,NPFFB ;PURE BIGNUM CONSER
SPECPRO INTPPC
PUSHJ P,GTNPSG
ADD TT,EPFFB
NOPRO
MOVEM A,(TT)
MOVEI A,(TT)
POPJ P,
] ;END OF IFN BIGNUM
;PCOPSY PCOPS1 PCOPS3 PCOPHN PCOPH5 PCOPH2 PCOPH3
PCOPSY: PUSH P,A ;SAVE POINTER TO SYMBOL
HLRZ B,(A) ;FETCH POINTER TO SYMBOL BLOCK
MOVE TT,SYMVC(B)
TLNE TT,SY.PUR ;IF ALREADY PURE IGNORE COMPLETELY
JRST PCOPS1
PUSH P,B ;SAVE SYMVC ADR
HRRZ A,SYMPNAME(B)
PUSHJ P,PURCOPY ;PURCOPY THE PNAME
PUSHJ P,PSYCONS ;GET A PURE SY2 BLOCK
POP P,B ;RESTORE SYMVC ADR
HLRZ A,(A) ;GET POINTER TO PURE SY2
HRRZ TT,SYMVC(B) ;GET THE VALUE CELL
HRRM TT,SYMVC(A) ;COPY INTO NEW PURE SY2
HLLZ TT,SYMARGS(B) ;ALSO COPY THE ARGS PROPERTY
HLLM TT,SYMARGS(A)
XCTPRO
HLRZ B,@(P) ;GET POINTER TO OLD SY2
EXCH B,FFY2 ;THIS IS NEW HEAD OF FREELIST, GET OLD HEAD
MOVEM B,@FFY2 ;PLACE CHAIN IN NEWLY FREED CELL
NOPRO
HRLM A,@(P) ;STORE POINTER TO NEW SY2 BLOCK
PCOPS1: LOCKI
HRRZ A,(P) ;GET POINTER TO SYMBOL
PUSHJ P,SYMHSH ;GET HASH VALUE
IDIVI T,OBTSIZ ;MAKE POINTER INTO OBARRAY
PUSH FXP,TT
MOVEI A,(FXP)
MOVE T,VOBARRAY
PUSHJ P,@ASAR(T) ;BUCKET ADR
MOVEI B,(A)
HRRZ A,(P)
PUSHJ P,MEMQ1 ;FIND ACTUAL ATOM
POP FXP,D
JUMPN A,PCOPS3 ;IF IN OBARRAY NO NEED TO GCPROTECT
MOVEI T,1 ;GCPROTECT
HRRZ A,(P)
PUSHJ P,.GCPRO
PCOPS3: UNLOCKI ;CLEANUP AND GO HOME
JRST POPAJ
IFN HNKLOG,[
PCOPHN: SKIPN VHUNKP ;TREAT HUNKS AS LISTS IF HUNKP IS NIL
JRST PCOPLS
PUSH P,A
PUSH FXP,TT
PUSHJ P,USRHNP ;Is this a user's extended object?
POP FXP,TT
JUMPE T,PCOPH5
PUSH P,[QPURCOPY]
MOVNI T,2
XCT SENDI
PCOPH5: POP P,A
PCOPH2:
2DIF [HRRZ B,(TT)]GCWORN,QLIST
PUSH P,B .SEE INTXCT ;CAN'T USE FXP
2DIF [AOSL B,(TT)]NPFFS,QLIST ;THIS WORD SERVES AS ARG TO GTNPSG
SPECPRO INTPPC
PUSHJ P,GTNPSG
XCTPRO
MOVE D,B
ADD D,(P)
SOS D ;SINCE ALREADY AOS'ED ONCE
2DIF [MOVEM D,(TT)]NPFFS,QLIST
NOPRO
2DIF [ADD B,(TT)]EPFFS,QLIST ;B NOW HAS ADDRESS OF FRESH PURE HUNK
PUSH P,A
PUSH P,B
MOVE D,-2(P)
PCOPH3: ADD D,-1(P) ;WE SCAN THE OLD HUNK FROM THE END BACKWARDS
HLRZ B,-1(D) ;GOBBLE A CAR AND A CDR
HRRZ A,-1(D)
PUSH P,B
PUSHJ P,PURCOPY ;PURCOPY THE CDR
EXCH A,(P)
PUSHJ P,PURCOPY ;PURCOPY THE CAR
HRLM A,(P)
MOVE D,-1(P) ;CALCULATE PLACE IN NEW HUNK
ADD D,-3(P)
POP P,-1(D) ;POP COPIED CAR/CDR PAIR INTO PURE HUNK
SOSE D,-2(P)
JRST PCOPH3
POP P,A ;RETURN NEW HUNK
SUB P,R70+2
POPJ P,
] ;END OF IFN HNKLOG
;GETCOR GTCOR4 GTCOR6 LHVB0 LHVBAR LHVB3 LHVB4 LHVB1
IFN PAGING,[
SUBTTL GETCOR
;;; THIS ROUTINE IS SPECIFICALLY FOR PEOPLE WHO HAND-CODE LAP.
;;; IT IS USED TO ALLOCATE A NUMBER OF CONSECUTIVE PAGES
;;; OF MEMORY FOR VARIOUS PURPOSES, E.G. HACKING OF PDP-11'S
;;; OR INFERIOR JOBS OR WHATEVER.
;;; THE NUMBER OF PAGES DESIRED SHOULD BE IN TT; THE LOW ADDRESS
;;; OF THE PAGES IS RETURNED IN TT, OR ZERO FOR FAILURE.
;;; THIS ROUTINE DOES NOT ACTUALLY GET CORE; IT MERELY RESERVES
;;; ADDRESS SPACE.
;;; THERE IS CURRENTLY NO PROVISION FOR RETURNING THE MEMORY GRABBED.
GETCOR: HLLOS NOQUIT
LSH TT,PAGLOG
MOVE T,HINXM
SUBI T,(TT)
CAMGE T,BPSH
JRST GTCOR6
MOVEI F,(TT) ;GETTING F THIS WAY FLUSHES
LSH F,-PAGLOG ; RANDOM BITS. (IT'S SAFER.)
GTCOR4: PUSHJ P,ALIMPG
.VALUE ;HOW CAN WE LOSE HERE?
SOJG F,GTCOR4
SKIPA TT,HINXM
GTCOR6: TDZA TT,TT ;LOSE, LOSE, LOSE
ADDI TT,1
JRST CZECHI
LHVB0: WTA [BAD SIZE - LH↑<!] ;↑< = |
LHVBAR: CAIL B,QLIST ;SUBR 2
CAILE B,QARRAY ;GROSS KLUDGE FOR LH
JRST LHVB1
JSP T,FXNV1
TLNE TT,-1
JRST LHVB0
ADDI TT,PAGSIZ-1
IDIVI TT,PAGSIZ
MOVNI AR2A,(TT)
PUSHJ P,GETCOR
JUMPE TT,FIX1
CAIE B,QARRAY
CAIN B,QRANDOM
XORI B,QARRAY#QRANDOM ;GROSS KLUDGE
MOVEI D,(TT)
LSH D,-SEGLOG
IMULI AR2A,SGS%PG
HRLI D,(AR2A)
2DIF [MOVE R,(B)]GCWORS,QLIST
LHVB3: MOVEM R,ST(D)
SETZM GCST(D)
TLNN R,$FS+BN+HNK
JRST LHVB4
MOVE T,LHSGLK
DPB T,[SEGBYT,,GCST(D)]
HRRZM D,LHSGLK
LHVB4: AOBJN D,LHVB3
JRST FIX1
LHVB1: EXCH A,B
WTA [BAD SPACE - LH↑<!] ;↑< = |
EXCH A,B
JRST LHVBAR
;PDLST0 PDLST8
;;; IFN PAGING
SUBTTL PDL OVERFLOW HANDLER
;;; CALL BY JSR PDLSTH
;;; F HAS THE ADDRESS OF THE AC HOLDING THE PDL POINTER.
;;; D HAS AN ADDRESS WITHIN THE PAGE TO GET.
;;; R MAY BE USED AS SCRATCH.
;PDLSTH: 0 ;HACK ST FOR ADDING PDL PAGES
PDLST0:
LSH D,-PAGLOG
IFN ITS,[
.CALL PDLST8
.LOSE 1000
] ;END OF IFN ITS
IFN D20,[
MOVEM A,PDLSTA ;SAVE AWAY AC'S SO CAN DO A JSYS
MOVEM B,PDLSTB
MOVEM C,PDLSTC
MOVEI 1,.FHSLF ;DISABLE INTERRUPT FOR OURSELVES
MOVE 2,[<1←<35.-.ICNXP>>] ;WE CAN'T HANDLE THE NXP TRAP THIS WILL CAUSE
DIC
MOVEI 1,(D) ;PAGE NUMBER
LSH 1,PAGLOG ;MAKE AN ADDRESS
SETMM (1) ;CREATE THE PAGE
MOVSI 1,.FHSLF ;CHANGE ACCESS FOR OUR PROCESS
HRRI 1,(D) ;THE PAGE WE JUST CREATED
MOVSI 2,(PA%RD\PA%WT\PA%EX)
SPACS
MOVEI 1,.FHSLF ;REEANBLE NXP TRAPS
MOVE 2,[<1←<35.-.ICNXP>>]
AIC
MOVE C,PDLSTC ;RESTORE AC'S
MOVE B,PDLSTB
MOVE A,PDLSTA
] ;END OF IFN D20
MOVEI R,(D) ;CALCULATE PURTBL BYTE POINTER
ROT R,-4
ADDI R,(R)
ROT R,-1
TLC R,770000
ADD R,[430200,,PURTBL]
MOVSS D
HRRI D,3
DPB D,R ;UPDATE PURTBL
LSH D,-22+PAGLOG-SEGLOG ;HORRIBLE HACKERY TO UPDATE ST
ADD D,[-<SGS%PG+1>,,ST-1] ; WITHOUT AN EXTRA AC:
REPEAT SGS%PG, PUSH D,PDLST9-P(F) ; USE PUSHES! (CAN'T OVERFLOW)
JRST @PDLSTH
IFN ITS,[
PDLST8: SETZ
SIXBIT \CORBLK\ ;HACK PAGE MAP
1000,,%CBNDR+%CBNDW ;GET READ AND WRITE ACCESS
1000,,%JSELF ;FOR MYSELF
,,D ;PAGE NUMBER
401000,,%JSNEW ;GET FRESH PAGE
] ;END OF IFN ITS
;PDLOV PDLH0A PDLH2 PDLH2A PDLH2B PDLH3A PDLH4
;;; IFN PAGING
;;; HAIRY PDL OVERFLOW HANDLER
PDLOV: MOVE F,INTPDL
MOVEM D,IPSWD2(F) ;SAVE D
MOVEM R,IPSWD1(F) ;SAVE R
SKIPL INTPDL
.VALUE ;I WANT TO SEE THIS! - GLS
MOVEI F,P ;ALL RIGHT THEN, LET'S PLAY
JUMPGE P,PDLH0A ; TWENTY QUESTIONS - IS IT REGPDL?
MOVEI F,SP
JUMPGE SP,PDLH0A ;SPECPDL?
MOVEI F,FXP
JUMPGE FXP,PDLH0A ;FXP?
MOVEI F,FLP ;IF NOT FLP, THEN IT'S PRETTY RANDOM
JUMPGE FLP,PDLH0A
HLRZ R,NOQUIT
JUMPN R,PDLH3A
LERR [SIXBIT \RANDOM PDL OVERFLOW!\]
PDLH0A: HRRZ R,(F) ;FETCH RIGHT HALF OF PDL POINTER
MOVEI D,(R)
CAML R,OC2-P(F) ;IF WE'RE OVER THE ORIGIN OF THE
JRST PDLH5 ; OVERFLOW PDL, THEN ERROR OUT
HLRZ R,F
ADDI R,11(D) ;HERE IS A HACK TO PAGIFY
IORI R,PAGSIZ-1 ; UPWARDS, BUT KEEP WELL AWAY
SUBI R,10 ; FROM THE PAGE BOUNDARY
CAML R,OC2-P(F) ;IF WE'RE ABOVE THE OVERFLOW PDL,
MOVE R,OC2-P(F) ; ONLY INCREASE TO THAT PLACE
CAMGE D,ZPDL-P(F) ;SKIP IF WE'RE ABOVE PDLMAX
JRST PDLH2 ; PARAMETER FOR THIS PDL
TLO F,-1 ;SET FLAG TO INDICATE THIS FACT
MOVE D,MORPDL-P(F) ;PUSH UP THE PDLMAX
ADD D,ZPDL-P(F) ; "SOME MORE"
ANDI D,777760 ;BUT KEEP AWAY FROM PAGE
TRNN D,PAGKSM ; BOUNDARY (PICKY, PICKY!)
SUBI D,20
MOVEM D,ZPDL-P(F)
HRRZ D,(F)
JRST PDLH2A
PDLH2: TLZE F,-1
JRST PDLH2B
CAMLE R,ZPDL-P(F) ;IF OUR GUESS WOULD PUT US OVER
PDLH2A: MOVE R,ZPDL-P(F) ; PDLMAX, GO ONLY AS FAR AS THAT
PDLH2B: SUBI D,(R) ;CALCULATE NEW LEFT HALF FOR PDL PTR
HRLM D,(F) ;CLOBBER INTO PDL PTR
HRRZ D,(F) ;FIGURE OUT IF WE NEED TOP GET
ADDI R,10 ; MORE CORE FOR ALL THIS
ANDI R,PAGMSK
EXCH R,D
CAIG R,(D) ;SKIP IF WE CROSSED NO PAGE BOUNDARY
JSR PDLSTH ;ELSE MUST GET NEW PAGE AND UPDATE ST
TLZN F,-1 ;SKIP IF WE WERE ABOVE PDLMAX
JRST PDLH3A
MOVSI D,QREGPDL-P(F)
HRRI D,1005 ;PDL-OVERFLOW
HRRZ R,INTPDL
HRRZ R,IPSPC(R)
CAIL R,UINT0 ;AVOID DEEP INTERRUPT RECURSION:
CAILE R,EUINT0 ; IF PDL OVERFLOWED WITHIN UINT0,
JRST PDLH4 ; THEN JUST STACK UP THE INTERRUPT,
JSR UISTAK ; AND SOMEONE WILL EVENTUALLY TRY CHECKI
PDLH3A: HRRZ F,INTPDL
JRST INTXT2
PDLH4: MOVE R,FXP ;ELSE TRY TO GIVE A PDL OVERFLOW
SKIPE GCFXP ; USER INTERRUPT IMMEDIATELY
MOVE FXP,GCFXP ;REMEMBER, PDL OVERFLOW IS NOT
PUSH FXP,R ; DISABLED INSIDE THE PDL
PUSHJ FXP,$IWAIT ; OVERFLOW HANDLER!!!
JRST XUINT
JRST INTXIT
;MORPDL PDLMSG PDLST9 PDLH5 PDLH6
;;; IFN PAGING
MORPDL: 400 ;AMOUNTS TO INCREMENT PDLS BY
100 ; WHEN OVERFLOW OCCURS (THIS GIVES
LSWS+100 ; LOSER A CHANCE TO SSTATUS PDLMAX,
200 ; AT LEAST)
PDLMSG: POVPDL ;REG
POVFLP ;FLONUM
POVFXP ;FIXNUM
POVSPDL ;SPEC
PDLST9: $XM,,QRANDOM ;TYPICAL ST ENTRIES FOR PDL PAGES
FL+$PDLNM,,QFLONUM
FX+$PDLNM,,QFIXNUM
$XM,,QRANDOM
PDLH5: IORI R,PAGSIZ-1 ;BAD PDL OV - REALLY DESPERATE
SUBI D,-2(R) ;GIVE US AS MUCH PDL AS IS LEFT
JUMPL D,PDLH6
MOVE P,C2
MOVE FXP,FXC2
SETZM TTYOFF
STRT UNRECOV
STRT @PDLMSG-P(F)
JRST DIE
PDLH6: HRLM D,(F)
HLRZ R,NOQUIT
JUMPN R,GCPDLOV ;FOO! HAPPENED IN GC - BOMB OUT!
HRRZ B,PDLMSG-P(F)
CAIE B,POVSPDL
JRST PDLOV5 ;PDLOV5 HANDLE WILL GET US TO TOP LEVEL
MOVEM P,F ;FOR SP, TRY TO POP BINDINGS FIRST
HRRZ TT,SPSV ; SO *RSET-TRAP WON'T OVERFLOW
MOVE P,[-LFAKP-1,,FAKP] ;SO WE HAVE ENOUGH PDL FOR UBD
PUSH P,FXP
MOVE FXP,[-LFAKFXP-1,,FAKFXP]
PUSHJ P,UBD
POP P,FXP
MOVE P,F
JRST PDLOV5 ;PDLOV5 WILL SET UP PDLS
] ;END OF IFN PAGING
;GRBPSG GTNPSG GTNPS8
SUBTTL PURE SEGMENT CONSER
;;; GRBPSG RETURNS ONE PUREIFIABLE SEGMENT. ADR IN AC T
;;; GTNPSG IS INVOKED AS FOLLOWS:
;;; AOSL A,NPFF% ;SKIP UNLESS NO MORE LEFT
;;; SPECPRO INTPPC
;;; PUSHJ P,GTNPSG ;MUST GET MORE
;;; ADD A,EPFF% ;ELSE JUST FIGURE OUT ABSOLUTE ADDRESS
;;; NOPRO
;;; WHERE % IS SOME APPROPRIATE LETTER (E.G. S, X, L, B).
;;; GTNPSG UPDATES NPFF% AND EPFF% BY LOOKING AT THE AOSL, THEN
;;; RETURNS TO THE AOSL.
XCTPRO
GRBPSG: HLLOS NOQUIT ;GET NEW PURE SEGMENT
NOPRO
SAVEFX TT D R
SKIPN T,PRSGLK ;SKIP IF ANY SEGMENTS IN PURE SEGMENT FREELIST
PUSHJ P,GTNPS3
LDB D,[SEGBYT,,GCST(T)] ;IF SO, CDR THAT FREELIST
MOVEM D,PRSGLK
MOVE TT,[$XM+PUR,,QRANDOM]
MOVEM TT,ST(T) ;SETUP ST TABLE CORRECTLY
SETZM GCST(T) ;AND ALSO GCST
RSTRFX R D TT
JRST CZECHI
;GETS A PURE SEGMENT FOR CONSING PURPOSES
XCTPRO
GTNPSG: HLLOS NOQUIT ;GET NEW PURE SEGMENT
NOPRO
REPEAT 2, SOS (P) ;BACK UP RETURN ADDRESS TO PRECEDING INST
SAVEFX T TT D R
SKIPN T,PRSGLK ;SKIP IF ANY SEGMENTS IN PURE SEGMENT FREELIST
PUSHJ P,GTNPS3
LDB D,[SEGBYT,,GCST(T)] ;IF SO, CDR THAT FREELIST
MOVEM D,PRSGLK
IFE HNKLOG, MOVE D,@(P) ;NOW D POINTS TO NPFF-
IFN HNKLOG,[
MOVE D,(P) ;THIS ALLOWS REFERENCE TO NPFF- TO BE INDEXED
MOVEI D,@(D) ; BY TT, WHICH MUST BE SAFE TO THIS POINT
] ;END OF IFN HNKLOG
2DIF [SKIPN TT,(D)]GTNPS8,NPFFS
.VALUE
MOVEM TT,ST(T)
SETZM GCST(T)
LSH T,SEGLOG
ADDI T,SEGSIZ
MOVEM T,EPFFS-NPFFS(D) ;UPDATE PARAMETERS FOR NEW PURE SEGMENT
MOVNI T,SEGSIZ+1
MOVEM T,(D)
MOVEI T,SEGSIZ
ADDM T,PFSSIZ-NPFFS(D) ;UPDATE STORAGE SIZE
RSTRFX R D TT T
JRST CZECHI
;;; TYPICAL ST ENTRIES FOR PURE SEGMENTS
GTNPS8: LS+$FS+PUR,,QLIST ;LIST
FX+PUR,,QFIXNUM ;FIXNUM
FL+PUR,,QFLONUM ;FLONUM
DB$ DB+PUR,,QDOUBLE ;DOUBLE
CX$ CX+PUR,,QCOMPLEX ;COMPLEX
DX$ DX+PUR,,QDUPLEX ;DUPLEX
BG$ BN+PUR,,QBIGNUM ;BIGNUM
0 ;NO PURE SYMBOLS
HN$ REPEAT HNKLOG+1, LS+HNK+PUR,,QHUNK0+.RPCNT ;HUNKS
0 ;NO PURE SARS
IFN .-GTNPS8-NFF, WARN [GTNPS8 WRONG LENGTH TABLE]
$XM+PUR,,QRANDOM ;SYMBOL BLOCKS
;GTNPS3
;CALLED TO GET NEW PAGE OF PURE MEMORY
;RETURNS C(PRSGLK) IN T
GTNPS3: PUSH FXP,TT ;GTNPSG REQUIRES TT TO BE SAFE
IFN PAGING,[
MOVE T,HINXM ;FIGURE OUT IF ANY ROOM LEFT
SUBI T,PAGSIZ
CAMGE T,BPSH
LERR [SIXBIT \NO SPACE FOR NEW PURE PAGE!\]
MOVEM T,HINXM ;UPDATE HINXM
MOVEI TT,1(T)
] ;END OF IFN PAGING
IFE PAGING,[
MOVE TT,HIXM
ADDI TT,PAGSIZ
CAMLE TT,MAXNXM
LERR [SIXBIT \NO SPACE FOR NEW PURE PAGE!\]
MOVEM TT,HIXM
] ;END OF IFE PAGING
LSH TT,-SEGLOG ;UPDATE ST AND GCST FOR NEW PAGE
MOVE D,[$XM+PUR,,QRANDOM]
REPEAT SGS%PG, MOVEM D,ST+.RPCNT(TT)
MOVE D,PRSGLK
REPEAT SGS%PG,[
SETZM GCST+.RPCNT(TT)
DPB D,[SEGBYT,,GCST+.RPCNT(TT)]
MOVEI D,.RPCNT(TT)
] ;END OF REPEAT SGS%PG
MOVEM D,PRSGLK
IFN PAGING,[
MOVEI TT,1(T) ;UPDATE PURTBL
ROT TT,-PAGLOG-4
ADDI TT,(TT)
ROT TT,-1
TLC TT,770000
ADD TT,[430200,,PURTBL]
DPB T,TT ;T HAS 11 IN LOW TWO BITS
; (CAN PURIFY, WITH SOME CARE)
IFN ITS,[
MOVEI R,1(T) ;NOT AN AOBJN POINTER,
LSH R,-PAGLOG ; SO WE GET ONLY ONE PAGE
.CALL GTSPC8
.LOSE 1000
] ;END OF IFN ITS
IFN D20,[
PUSHJ FXP,SAV3
SETMM 1(T) ;CREATE THE PAGE
MOVEI 1,1(T) ;THEN GET THE PAGE NUMBER
LSH 1,-PAGLOG
HRLI 1,.FHSLF
MOVSI 2,(PA%RD\PA%WT\PA%EX)
SPACS
PUSHJ FXP,RST3
] ;END OF IFN D20
] ;END OF IFN PAGING
IFN <PAGING-1>*D10,[
HRRZ TT,HIXM
CORE TT,
HALT
] ;END OF IFN <PAGING-1>*D10
MOVE T,PRSGLK ;FORCE PRSGLK INTO AC T FOR CALLER
POP FXP,TT
POPJ P,
;GCGRAB GCGRB1
SUBTTL FREE STORAGE SPACE EXPANSION
;;; THIS PORTION OF THE GARBAGE COLLECTOR DETERMINES WHETHER
;;; WE SHOULD JUST GRAB A NEW SEGMENT OF FREE STORAGE FOR SOME
;;; CONSER, OR DO A FULL-BLOWN GARBAGE COLLECTION. IT IS
;;; CONTROLLED BY PARAMETERS SETTABLE VIA (SSTATUS GCSIZE ...).
GCGRAB: MOVN R,D
JFFO R,.+1 ;DETERMINE WHICH SPACE WANTED MORE
SUBI F,NFF
MOVEI AR2A,1 ;MACRAK SEZ: GRAB JUST ONE
SKIPN FFY2
SETZ F,
JUMPE F,GCGRB1 ; ... SEZ MACRAK
MOVE D,SFSSIZ+NFF(F)
CAML D,GFSSIZ+NFF(F) ;CAN'T JUST GRAB IF ABOVE SIZE
JRST AGC1Q ; SPECIFIED FOR "FREE GRABBIES"
MOVE D,GFSSIZ+NFF(F)
CAMLE D,XFFS+NFF(F) ;CAN'T GRAB IF IT WOULD PUT
JRST AGC1Q ; US ABOVE THE MAXIMUM SIZE
GCGRB1: PUSH FXP,AR2A
PUSHJ P,GRABWORRY
POP FXP,AR1
JUMPGE AR2A,AGC1Q ;GO DO FULL-BLOWN GC AFTER ALL
IFN WHL,[
MOVE D,[-3,,GCWHL6]
MOVE R,GCWHO
TRNE R,1
.SUSET D
] ;END OF IFN WHL
JRST GCEND
;GRBSEG GRBSG1 GCWORRY GRABWORRY GCWR0A GCWR0B GCWOR2 GCWR2A GCWR2B
;;; THESE ROUTINES WORRY ABOUT GETTING A NEW IMPURE FREE STORAGE
;;; SEGMENT. (FOR PURE FREE STORAGE SEGMENTS, SEE GTNPSG.)
;;; GCWORRY MUST DO SPECIAL HACKERY FOR SYMBOL AND SAR SPACES, SINCE THEY
;;; REQUIRE MORE THAN ONE CONSECUTIVE SEGMENT, AND PRINTS OUT PRETTY
;;; MESSAGES IF GCGAG IS NON-NIL. MUST HAVE NOQUIT NON-ZERO.
;;; *THE FOLLOWING COMMENT IS HISTORICAL AND SHOULD BE IGNORED*
;;; MUST HAVE NOQUIT NON-ZERO AND ST/GCST PAGES IMPURE WHEN ENTERING!
;THIS ROUTINE ALLOCATES ONE IMPURE SEGMENT AND MARKS IT AS
; $XM,,QRANDOM IN ST TABLE. POINTER TO SEGMENT RETURNED IN TT
; DESTROYS C, D, AR1, R
GRBSEG: SKIPE TT,IMSGLK
JRST GRBSG1 ;JUMP IF ANY SEGMENTS AVAILABLE
PUSHJ P,ALIMPG ;ELSE MUST GRAB A NEW PAGE
POPJ P, ;FAIL IF NO NEW PAGES TO BE HAD
GRBSG1: LDB D,[SEGBYT,,GCST(TT)]
MOVEM D,IMSGLK ;CDR THE FREE SEGMENT LIST
MOVE D,[$XM,,QRANDOM] ;MARK NEW SEGMENT IN ST TABLE
MOVEM D,ST(TT)
SETZM GCST(TT) ;RESET GCST TABLE ENTRY
LSH TT,SEGLOG ;RETURN A POINTER TO THE HEAD OF THE SEGMENT
AOS (P)
POPJ P,
;THIS ROUTINE IS FOR NORMAL ALLOCATION OF SEGMENTS BY THE GC
GCWORRY:SUBI AR2A,(TT) ;ENTRY FOR GARBAGE COLLECTOR
ADDI AR2A,SEGSIZ-1 ;FIGURE OUT HOW MANY NEW SEGMENTS WE NEED
LSH AR2A,-SEGLOG
GRABWORRY:
HRRZ AR1,VMSGFILES
TLO AR1,200000
JUMPE F,.+2 ;ENTRY FOR GCGRAB
SKIPN GCGAGV ;MAYBE WE WANT A PRETTY MESSAGE?
SOJA AR2A,GCWOR2 ;IF NOT, DECR AR2A (SEE BELOW)
STRT 17,[SIXBIT \↑M;ADDING !\]
SOJG AR2A,GCWR0A ;AR2A GETS DECR'ED HERE, TOO!
STRT 17,[SIXBIT \A!\] ;KEEP THE ENGLISH GOOD
JRST GCWR0B
GCWR0A: MOVEI R,$TYO
MOVEI TT,1(AR2A)
PUSH FXP,AR2A
IFE USELESS, MOVE C,@VBASE ;BASE DAMN WELL BETTER BE A FIXNUM
IFN USELESS,[
HRRZ C,VBASE
CAIE C,QROMAN
SKIPA C,(C)
PUSHJ P,PROMAN
] ;END OF IFN USELESS
PUSHJ P,PRINI9
POP FXP,AR2A
GCWR0B: STRT 17,[SIXBIT \ NEW !\]
STRT 17,@GSTRT9+NFF(F)
STRT 17,[SIXBIT \ SEGMENT!\]
SKIPE AR2A
STRT 17,[SIXBIT \S!\]
GCWOR2: SKIPE TT,IMSGLK
JRST GCWR2A ;JUMP IF ANY SEGMENTS AVAILABLE
PUSHJ P,ALIMPG ;ELSE MUST GRAB A NEW PAGE
JRST GCWOR7
GCWR2A: LDB D,[SEGBYT,,GCST(TT)]
MOVEM D,IMSGLK ;CDR THE FREE SEGMENT LIST
MOVE D,FSSGLK+NFF(F) ;CONS NEW SEGMENT ONTO LIST
MOVEM TT,FSSGLK+NFF(F) ; OF SEGMENTS FOR THE
HRRZ R,BTBAOB ; PARTICULAR SPACE
HLL R,GCWORS+NFF(F)
LSH D,22-<SEGLOG-5>
GCWR2B: TLNE R,$FS+FX+FL+BN+HNK+DB+CX+DX .SEE GCWR2C
IORI D,(R) ;MAYBE ALLOCATE A BIT BLOCK FOR
IOR D,GCWORG+NFF(F) ; THE NEW SEGMENT FOR USE BY
MOVEM D,GCST(TT) ; GC IN MARKING CELLS
MOVE D,GCWORS+NFF(F) ;UPDATE ST ENTRY FOR THE
MOVEM D,ST(TT) ; NEW SEGMENT
MOVE D,FFS+NFF(F) ;ADD CELLS OF SEGMENT TO
LSH TT,SEGLOG ; THE FREE STORAGE
MOVEM D,(TT) ; LIST FOR THIS SPACE
MOVE D,[GCWORX,,1]
BLT D,LPROG9
HLL TT,GCWORN+NFF(F)
HRR GCWRX1,GCWORN+NFF(F)
HRRI GCWRX2,-1(GCWRX1)
JRST GCWRX1
;GCWR2C GCWR3A GCWR3B GCWR3F GCWOR4 GCWR4Q GCWOR6 GCWOR7
GCWR2C: HRRZM TT,FFS+NFF(F)
TLNN R,$FS+FX+FL+BN+HNK+DB+CX+DX .SEE GCWR2B
JRST GCWR4Q
HRRZ TT,BTBAOB ;DECIDE WHETHER THIS BIT BLOCK
LSH TT,SEGLOG-5 ; LIES IN MAIN BIT BLOCK AREA
MOVEI D,-1(TT)
CAME D,MAINBITBLT
JRST GCWR3A
ADDI D,BTBSIZ ;YES - JUST UPDATE MAIN BLT
MOVEM D,MAINBITBLT ; POINTER FOR CLEARING
JRST GCWR3B ; BIT BLOCKS (SEE GCINBT)
GCWR3A: LSH TT,-SEGLOG ;ELSE AOS COUNT OF BIT BLOCKS
AOS GCST(TT) ; IN CURRENT BIT BLOCK SEGMENT
GCWR3B: MOVE TT,BTBAOB ;AOBJN THE BIT BLOCK
AOBJN TT,GCWOR4 ; ALLOCATION POINTER
SKIPE TT,IMSGLK ;FOO! OUT OF BIT BLOCKS!
JRST GCWR3F
PUSHJ P,ALIMPG ;FOO FOO! NEED NEW PAGE!
JRST GCWFOO
GCWR3F: LDB D,[SEGBYT,,GCST(TT)]
MOVEM D,IMSGLK ;CDR LIST OF FREE SEGMENTS
MOVE D,[$XM,,QRANDOM] ;UPDATE ST AND GCST FOR
MOVEM D,ST(TT) ; NEW BIT BLOCK SEGMENT
MOVEI D,(TT) ;GCST ENTRY IS USED TO
LSH D,5 ; INDICATE HOW MANY
MOVEM D,GCST(TT) ; BLOCKS ARE IN USE
MOVE D,BTSGLK ;CONS NEW SEGMENT ONTO LIST
DPB D,[SEGBYT,,GCST(TT)] ; OF BIT BLOCK SEGMENTS
MOVEM TT,BTSGLK
LSH TT,5 ;CALCULATE NEW BIT BLOCK
HRLI TT,-SEGSIZ/BTBSIZ ; ALLOCATION POINTER
GCWOR4: MOVEM TT,BTBAOB
GCWR4Q: JUMPE F,GCWOR6
MOVEI TT,SEGSIZ ;UPDATE VARIOUS GC PARAMETERS
ADDM TT,NFFS+NFF(F)
ADDB TT,SFSSIZ+NFF(F)
CAMLE TT,XFFS+NFF(F) ;MUST STOP IF OVER MAX
SOJA AR2A,.+2 ;KEEP COUNT ACCURATE
GCWOR6: SOJGE AR2A,GCWOR2 ;ALSO STOP IF WE GOT ALL WE WANT
GCWOR7: JUMPE F,CPOPJ
SKIPN GCGAGV ;MAYBE WANT MORE PRETTY MESSAGE
POPJ P,
SKIPL AR2A
STRT 17,[SIXBIT \↑M; BUT DIDN'T SUCCEED!\]
STRT 17,[SIXBIT \ -- !\]
STRT 17,@GSTRT9+NFF(F)
STRT 17,[SIXBIT \ SPACE NOW !\]
MOVEI R,$TYO
PUSH FXP,AR2A
HRRZ AR1,VMSGFILES
TLO AR1,200000
MOVE TT,SFSSIZ+NFF(F)
IFE USELESS, MOVE C,@VBASE
IFN USELESS,[
HRRZ C,VBASE
CAIE C,QROMAN
SKIPA C,(C)
PUSHJ P,PROMAN
] ;END OF IFN USELESS
PUSHJ P,PRINI9
STRT 17,[SIXBIT \ WORDS!\]
POP FXP,AR2A
POPJ P,
;GCWORG GCWORS GCWFOO GCWORX GCWRX1 GCWRX2 LPROG9 GCWORN
;;; TYPICAL GCST ENTRIES FOR IMPURE SPACES
GCWORG: GCBMRK+GCBCDR+GCBCAR,, ;LIST
GCBMRK,, ;FIXNUM
GCBMRK,, ;FLONUM
DB$ GCBMRK,, ;DOUBLE
CX$ GCBMRK,, ;COMPLEX
DX$ GCBMRK,, ;DUPLEX
BG$ GCBMRK+GCBCDR,, ;BIGNUM
GCBMRK+GCBSYM,, ;SYMBOL
HN$ REPEAT HNKLOG+1, GCBMRK+GCBCDR+GCBCAR+GCBHNK,, ;HUNKS
GCBMRK+GCBSAR,, ;SAR
IFN .-GCWORG-NFF, WARN [WRONG LENGTH TABLE]
0 ;SYMBOL BLOCKS
;;; TYPICAL ST ENTRIES FOR IMPURE SPACES
GCWORS: LS+$FS,,QLIST ;LISP
FX,,QFIXNUM ;FIXNUM
FL,,QFLONUM ;FLONUM
DB$ DB,,QDOUBLE ;DOUBLE
CX$ CX,,QCOMPLEX ;COMPLEX
DX$ DX,,QDUPLEX ;DUPLEX
BG$ BN,,QBIGNUM ;BIGNUM
SY,,QSYMBOL ;SYMBOL
HN$ REPEAT HNKLOG+1, LS+HNK,,QHUNK0+.RPCNT ;HUNKS
SA+$XM,,QARRAY ;SAR
IFN .-GCWORS-NFF, WARN [WRONG LENGTH TABLE]
$XM,,QRANDOM ;SYMBOL BLOCKS
GCWFOO: STRT [SIXBIT \↑M;GLEEP#! OUT OF BIT BLOCKS!\]
JRST GCWOR7
GCWORX: ;EXTEND FREELIST THROUGH NEW SEGMENT
OFFSET 1-.
GCWRX1: HRRZM TT,.(TT) ;OCCUPIES A,B,C,AR1 - MUST SAVE AR2A
GCWRX2: ADDI TT,.
AOBJN TT,GCWRX1
JRST GCWR2C
LPROG9==:.-1
OFFSET 0
.HKILL GCWRX1 GCWRX2
GCWORN: -SEGSIZ+1,,1 ;LIST
-SEGSIZ+1,,1 ;FIXNUM
-SEGSIZ+1,,1 ;FLONUM
DB$ -SEGSIZ/2+1,,2 ;DOUBLE
CX$ -SEGSIZ/2+1,,2 ;COMPLEX
DX$ -SEGSIZ/2+1,,4 ;DUPLEX
BG$ -SEGSIZ+1,,1 ;BIGNUM
-SEGSIZ+1,,1 ;SYMBOL
HN$ REPEAT HNKLOG+1, -SEGSIZ/<1←.RPCNT>+1,,1←.RPCNT ;HUNKS
-SEGSIZ/2+1,,2 ;ARRAY SARS
IFN .-GCWORN-NFF, WARN [WRONG LENGTH TABLE]
-SEGSIZ/2+1,,2 ;SYMBOL BLOCKS
;ALIMPG ALIMP3
SUBTTL IMPURE PAGE GOBBLER
;;; ALLOCATE AN IMPURE PAGE FREE STORAGE USE
ALIMPG:
IFN PAGING,[
MOVE TT,HINXM ;MUST SAVE AR2A AND F FOR GCWORRY
SUBI TT,PAGSIZ
CAMGE TT,BPSH
] ;END OF IFN PAGING
IFE PAGING,[
MOVE TT,HIXM
ADDI TT,PAGSIZ
CAMLE TT,MAXNXM
] ;END OF IFE PAGING
POPJ P, ;NO PAGES LEFT - RETURN WITHOUT SKIP
IFN PAGING,[
MOVEM TT,HINXM ;ELSE UPDATE HINXM
IFN ITS,[
MOVEI R,1(TT)
LSH R,-PAGLOG
.CALL GTSPC8
.LOSE 1000
] ;END OF IFN ITS
IFN D20,[
SETMM 1(TT) ;CREATE THE PAGE
MOVEI 1,1(TT)
LSH 1,-PAGLOG
HRLI 1,.FHSLF
MOVSI 2,(PA%RD\PA%WT\PA%EX)
SPACS
] ;END OF IFN D20
MOVEI D,1(TT) ;COMPUTE A MAGIC BYTE POINTER
LSH D,-PAGLOG
ROT D,-4
ADDI D,(D)
ROT D,-1
TLC D,770000
ADD D,[430200,,PURTBL]
MOVEI C,1
DPB C,D ;UPDATE THE PURTBL
HRRZ R,(P) ;GET THE CALLER'S PC+1
CAIN R,GTCOR4+1 ;DON'T HACK IMSGLK FOR GETCOR
JRST POPJ1
] ;END OF IFN PAGING
IFN <PAGING-1>*D10,[
MOVEM TT,HIXM
CORE TT,
HALT
MOVE TT,HIXM
] ;END OF IFN <PAGING-1>*D10
LSH TT,-SEGLOG
IFN PAGING, ADDI TT,SGS%PG
MOVE C,IMSGLK ;UPDATE ST AND GCST, AND ADD
MOVE AR1,[$XM,,QRANDOM] ; NEW SEGMENTS TO IMSGLK LIST
MOVEI D,SGS%PG
ALIMP3: MOVEM AR1,ST(TT)
SETZM GCST(TT)
DPB C,[SEGBYT,,GCST(TT)]
MOVEI C,(TT)
SOSE D
SOJA TT,ALIMP3
MOVEM TT,IMSGLK ;EXITS WITH LOWEST NEW SEGMENT # IN TT
JRST POPJ1 ;WINNING RETURN SKIPS
;RECLAIM RECL1 RECL2 RECLFW REBIG RECL9 RECL9A
SUBTTL RECLAIM FUNCTION
IFN BIGNUM+USELESS,[
RECLAIM: HRRZS A ;SUBR 2
JUMPE A,CPOPJ ;GC A PARTICULAR SEXP
LOCKI
PUSHJ P,RECL1
MOVEI A,NIL
UNLKPOPJ
RECL1: SKOTT A,LS+PUR
2DIF JRST (TT),RECL9-1,QLIST .SEE STDISP
TLNE TT,HNK+VC+PUR ;DON'T RECLAIM VALUE CELLS!!! (OR HUNKS)
POPJ P, ; - ALSO DON'T RECLAIM PURE WORDS
PUSH P,A ;SAVE ARG
JUMPE B,RECL2 ;B=NIL => RECLAIM ONLY TOP LEVEL OF LIST
HLRZ A,(A) ;RECLAIM CAR
PUSHJ P,RECL1
RECL2: MOVE T,FFS
POP P,FFS
EXCH T,@FFS ;RECLAIM ONE CELL
MOVEI A,(T) ;AND THEN GO AFTER THE CDR
JRST RECL1
RECLFW: JUMPE B,RECL9A ;B=NIL => DON'T RECLAIM FULLWORDS
TLNE TT,$PDLNM ;DON'T RECLAIM PDL LOCATIONS!!!
POPJ P,
2DIF [MOVE T,(TT)]FFS-QLIST ;RECLAIM NUMBER
MOVEM T,(A)
2DIF [MOVEM A,(TT)]FFS-QLIST
POPJ P,
IFN BIGNUM,[
REBIG: MOVE T,FFB ;RECLAIM BIGNUM HEADER
EXCH T,(A)
MOVEM A,FFB
MOVEI A,(T) ;RECLAIM CDR OF BIGNUM
JRST RECL1
] ;END OF IFN BIGNUM
RECL9: JRST RECLFW ;FIXNUM
JRST RECLFW ;FLONUM
DB$ JRST RECLFW ;DOUBLE
CX$ JRST RECLFW ;COMPLEX
DX$ JRST RECLFW ;DUPLEX
BG$ JRST REBIG ;BIGNUM
RECL9A: POPJ P, ;SYMBOL
HN$ REPEAT HNKLOG+1, .VALUE ;HUNKS
POPJ P, ;RANDOM
POPJ P, ;ARRAY
IFN .-RECL9-NTYPES+1, WARN [WRONG LENGTH TABLE]
] ;END OF IFN BIGNUM+USELESS
;MAKVC3 MAKVC4 MAKVC8
IFN PAGING,[
SUBTTL VALUE CELL AND SYMBOL BLOCK HACKERY
;;; ROUTINE TO GET MORE VALUE CELL SPACE.
;;; EXPANDS VALUE CELL SPACE BY GETTING NEXT PAGE IN THE HOLE
;;; LEFT FOR THIS PURPOSE, AND EXTENDING THE VALUE CELL FREELIST.
;;; IF NO PAGES LEFT IN THE HOLE, A LIST CELL IS USED.
;;; MAY CLOBBER ONLY A AND TT.
XCTPRO
MAKVC3: HLLOS NOQUIT
NOPRO
SOSL NFVCP
JRST MAKVC4
PUSHJ P,CZECHI
PUSHJ P,CONS1
SETOM ETVCFLSP
JRST MAKVC1
MAKVC4:
IFN ITS,[
PUSH FXP,R ;MUST SAVE R
MOVE R,EFVCS
LSH R,-PAGLOG
.CALL GTSPC8 ;GET A NEW PAGE
.LOSE 10000
POP FXP,R
] ;END OF IFN ITS
IFN D20,[
PUSHJ FXP,SAV3
MOVE 1,EFVCS
SETMM (1) ;CREATE THE PAGE
LSH 1,-PAGLOG
HRLI 1,.FHSLF
MOVSI 2,(PA%RD\PA%WT\PA%EX)
SPACS
PUSHJ FXP,RST3
] ;END OF IFN D20
MOVE A,EFVCS
MOVEM A,FFVC
LSH A,-SEGLOG
MOVE TT,[LS+VC,,QLIST]
REPEAT SGS%PG, MOVEM TT,ST+.RPCNT(A) ;UPDATE SEGMENT TABLE
MOVSI TT,GCBMRK+GCBVC
REPEAT SGS%PG, MOVEM TT,GCST+.RPCNT(A) ;UPDATE GC SEGMENT TABLE
LSH A,-PAGLOG+SEGLOG ;UPDATE PURTBL
ROT A,-4
ADDI A,(A)
ROT A,-1
TLC A,770000
ADD A,[430200,,PURTBL]
MOVEI TT,1
DPB TT,A
AOS TT,EFVCS ;EXTEND FREELIST THROUGHOUT NEW PAGE
HRLI TT,-PAGSIZ+1
HRRZM TT,-1(TT)
AOBJN TT,.-1
HRRZM TT,EFVCS
MAKVC8: PUSHJ P,CZECHI
JRST MAKVC0
] ;END OF IFN PAGING
;LDPRG9 ARGCL7 MAKVC9 MAKVC5 MAKVC6
;;; SYMBOL BLOCK COPYING ROUTINE - TRIGGERED BY PURE PAGE TRAP, OR EXPLICIT CHECK
;;; B POINTS TO OLD SYMBOL BLOCK
;;; LEAVES POINTER TO NEW SYMBOL BLOCK IN B
;;; CLOBBERS TT, LEAVES POINTER TO VALUE CELL IN A
LDPRG9: TLCA B,LDPARG ;FASLOAD CLOBBERING ARGS PROP
ARGCL7: TLC B,ARGCL3 ;ARGS CLOBBERING ARGS PROP
HRRZ A,(B)
JRST MAKVC6
MAKVC9: TLC B,MAKVCX ;MAKVC CLOBBERING IN VALUE CELL
JRST MAKVC6
MAKVC5: PUSH P,SPSV ;MUST PRESERVE SPSV AS WE CAN COME HERE FROM
; WITHIN A BIND AND AGC DOES BINDING ALSO
PUSHJ P,AGC
POP P,SPSV
BAKPRO
MAKVC6: SKIPN FFY2 ;COME HERE IF HRRM ABOVE CAUSES
JRST MAKVC5 ; A PURE PAGE TRAP - MUST COPY
↓MOVE TT,@FFY2 ; SYMBOL BLOCK FOR THAT SYMBOL
XCTPRO
EXCH TT,FFY2
NOPRO
HRLI A,SY.ONE\SY.CCN\SY.OTC ;ASSUME COMPILED CODE @≥∃ &A∪PA
∨$↓∨)⊃H~∀∩∩$∩vA)!≤Aπ¬→_A+U≡O&~(∪≠∨-∃~AαYM3≠-ε!)(R∩l@Q)⊃%≥⊗Aβ ∨+(AQ⊃∪&AM∨≠
A5∨%
R4∀∪≠∨Y
AαYM3≠!≥¬≠
Q∧$~∀β≠=-~A∧Y'3≠A≥β≠
!)(R~(∪⊃%%hAαXQQ(R~∀%⊃%→~↓)(Y! R
∀%1π⊂↓)(Y∧4∀∪⊃→I4A)(1)(~∀%∃%'(Q)(R4∀~∀_vIβ1→∨ε@⊃β→→εX@Iβ→1αr@I¬→→εnIβ→→p@Iβ1→εh~(~∀
∃M+¬))0∪β→→=αA
+9π)∪∨8~∀4R"ε22|→h&∞J∃α¬e"JVR@H%nNαX%∩β∀¬R∧%→h∀lL4λ∀ddx1PPJ *%≥"∧H∀dd6QPPM8ZDz∧eA⊂HK8~$;mDπSr∧X→4*¬Z∧∧dM:APPLYλ4B∧eI∀tD_)∃ H↔85∀|99∃≤B It≤\∀¬R∧$xZ4r≥D U,ttλeEQ!∀l⎇ii∩¬∩Ihd0h$H∀dd6g M¬Z9α∧5λ¬D<5:9∃B\βQQE
J".j85Q(
Zλ∃P)J00SλT⊃⊂5λ⊃"B4
Zrλ⊃K
⊗⊃HjhsQHe∀J"'9∪pri∀⊂¬bbT)P$jλ!gg)Rij"g∃εE∧h∃id⊂#⊗(⊗&c⊃)Qg#⊃∀)∀FB∧`ge∪⊂)⊗∩⊂f&![βE$c'λ( cdS!V⊂)⊃h"`jλ~⊗∧h∃id⊂#⊗(⊗,(⊃&∃W)∀!g"εB∧fgk⊃fP#⊗∩g$$a∩j∧D]Qhj`f∪,P!i∪aadiR⊂*g&∪aadFB∧h*iR%⊂(⊗⊂d"aeRFE∧h∃id⊂()≠XεB$c'⊂∀ cdg⊃V-FEαfgk"RP)⊗~βE∩ f∪!\]∧T'h⊂#⊗(⊗**βEijP⊂**⊗⊂β2-1(R)
TLZ TT,-1
JSP T,FIX1A
MOVE B,(P)
PUSHJ P,CONS
MOVEI B,QREGPDL-1(R)
PUSHJ P,XCONS
↓MOTEM A,(P)
SOJG R,$ALLC9
U 9END OF IFN PAGING
MOVEI R,NFF
$ALLC7: SKIPN SFSSIZ-1(R)
JRST $ALLC8 ;S@ACE CIZA IS ZERO - IGNORE IT
POP FXP,TT
↓PUSHJ P,SSGP2A
PUSHJ P,NCONS
MOVEI B,(A)
POP FXP,TT
↓JSP T,FIX1A
PUSHJ P,CKNS
MOVEI B,(A)
POP FXP,TT
α JSP T,FIX1A
PUSHJ P,CONS
MOVA B,(P!
PUSHJ P,COJS
MOVEI B,QLIST-1(R)
CAIL B,QRANDOM
MOVEI B,QARRAY
PUSHJ P,XCONS
MOVEM A,(P)
JRST $ALLC4
$ALLC8: SUB FXP,R70+3 ;FLUSH GARBAGE
$ALLC0: SOJG R,$ALLC7
JRST POPAJ
;$ALLC0 $ALLC5 $ALLC3 $ALLC2 RS.FF RS.VMO RS.SQX RS.BRK RS.SCO RS.WSP RS.DOT RS.MAC RS.SLS RS.RBO RS.SL1 RS.PNT RS.SD9 RS.ALT RS.ARR RS.SGN RS.DIG RS.XLT RS.LTR NWTNE NWTNN RS.FF RS.FMO RS.SQX RS.BRK RS.SCO RS.WSP RS.LP RS.DOP RS.RP RS.MAC RS.SLS RS.RBO RS.CL1 RS.PNT RS.SL9 RS.ALT RS.ARR RS.CGN RS.DIG RS.XLT RS.LTR NWTNE NWTFNRS&CMS RS.SCS RS.OBB RS.WTH BS,SEE
α
$ALLC0: HRRZ A,(AR2A)
$ALLC5: JUMPE A,TRUE 8π π= ∃αdJNQα|1αBεM∩L4(LB2JI∧⊃1"¬HH%nε∀9α&M∧b&NQ∧z→αNj∃α~⎇∩5αε_h(&"∃∩`∩∧~"$
bλ⊃⊂HK4λ∩αtI~5αr¬ ∀`)5
(λ→q31)@*εE∧R&)-⊂⊂T∀ i TFEαa`dfλ!⊗(i⊃ch"&βE CAILE B,QSPECPDL
↓ JRST $ALLC3
MOVEI D,1←-1 ;SSPDLMAX
PUSHJ P,SSGP3$
JRST $ALLC0
$ALLC3: JSP R,SFRET
JRST $ALLC0
α JRST $ALLC0
SETZ AR1,
MOVEI F,(C)
SKOTT C,LS
↓ JRST $ALLC2
↓HRRZ AR1, C)
↓HLRZ C,(C)
HLRZ F,(AR1)
SKIPE AR1
∩AM↔∪!α↓β$bX!β$bR4∀∩@AM↔∪!α↓Yε~(∩@@A!→%$A¬$bXQ¬$bR~(Iβ→→dt∪≠=)∩A⊂Xg>Zβλ$%Nα:4<≥9≠$(h!~¬-≤ $¬αe88uβ~AQ LlzhTJ∧5E∧2HQ!∀l⎇hY∩∧"F[rkλ⊃↔5≥≤x9T
@Q!∃¬-9 "¬αJ:4=β4APPLYzd,Jλ5BD
&∃⊂hPα33jH2(⊃¬Fwk,!⊃.p iQafdgβE PUSHJ P,SSGP3$
JRST$ALLC0
α
PGTOP BIB,[MEIORY MANAGEMENT STUFF]
;+@ END MF GC@IB 247
;;@ READER 236 READ AND RELATED FUNCTIONS
3;; **************************************************************
;;; ***** MACLISP ****** READ AN@ RELATED FUNCTIONS **************
3+; **************************************************************
;+; ** (C) COPIRIGHT1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
PGBOT [RDR]
SUBTTL HIRSUTE READER AND INPUT PACKAGE
SUBTTL HAIRY READER BIT DESCRIPTIONS
;OBJECP FLAGS - AS AN OBJECT ACCUMULATES, THE LH OF ACC T
; HAS BITS SET TO DESCRIBE THE STATE OF THE OBJECT
;BIT VALUE MEANING
;3.1 1 TOP LEVEL OBJECT
;3.2 2 FIRST OBJECT OF A LIST
;3.3 4 DOTTED PAIR OBJECT - SECOND HALF
;3.4 10 DELAYED DOT READ
;3.5 20 ALPHA ATOM (I.E., NON-NUMBER ATOM)
;3.6 40 NUMBER ATOM
;3.7 100 DECIMAL NUMBER
;3.8 200 FLOATING NUMBER
;3.9 400 NEGATIVE NUMBER
;4.1 1000 EXPONENT-MODIFIED NUMBER, E.G. ↑ OR E (OR SPLICING, IF MACRO)
;4.2 2000 LSH-ED NUMBER, I.E. ←
;4.3 4000 LIST-TYPE OBJECT
;4.4 10000 SIGNED NUMBER ATOM, E.G. +A
;4.5 20000 MACRO-PRODUCED OBJECT
;4.6 40000 BIGNUM BASE 10.
;4.7 100000 BIGNUM BASE IBASE
;4.8 200000 HUNK
;4.9 400000 A form has been seen after a dot. For error checking
; splicing macros.
;CHARACTER FLAGS - THE RH OF AN ENTRY IN THE RCT TABLE
; GENERALLY HAS THE ASCII TRANSLATION FOR THE CHARACTER,
; EXCEPT MACRO-CHARACTERS, WHICH HOLD A FUNCTION TO EXECUTE
; THE LH HAS DESCRIPTOR BITS AS FOLLOWS:
;BIT VALUE MEANING
;3.1 1 ALPHABETIC, I.E. A,B,C,...,Z
;3.2 2 EXTENDED ALPHABETIC, E.G., !,",#,$, ETC. AND LOWERCASE
;3.3 4 DECIMAL DIGIT, I.E. 0,1,2,...,9
;3.4 10 + OR -
;3.5 20 ↑ OR ←
;3.6 40 SECOND CHOICE DENOTER FOR 3.4, 3.5, 4.1, AND 4.3
;3.7 100 PRINT SHOULD SLASHIFY IF NOT FIRST CHAR
;3.8 200 . <DECIMAL POINT> KIND OF DOT
;3.9 400 PRINT SHOULD SLASHIFY WHEN IN FIRST POSITION
;4.1 1000 THE RUBOUT CHARACTER, OR THE TTY FORCE FEED CHAR
;4.2 2000 THE READ "QUOTE" CHARACTER, I.E. /
;4.3 4000 MACRO CHARACTER, E.G. ', OR SPLICING MACBO
;4,4 10000 )
;4.5 20000 . <DOTTED-PAIR> KIND OF DOT
;4.6 40000 (
;4.7 100000 <SPACE> OR <TAB> OR <COMMA>
;4.8 200000 CHARACTER OBJECT
;4.9 400000 WORTHLESS CHARACTERS, AND ANY WITH BIT 3.8
; OR BITS 4.1-4.8 ON.
IFN NEWRD,[
;;;DEFINE READER-SYNTAX BITS
;;;THESE BITS OCCUPY 2.1-3.8. DO NOT USE 3.9 (SEE TYIPEEK)
¬
RS.FF==004000$, ;FORCE-FEED CHARACTER
RS.VMO==002000,, ;VERTICAL MOTION X==001000,, ;EXPONENT MARKER, STRING QUOTE
RS.BRK==000400,, ;SPECIAL ACTION NEEDED ON INPUT
RS.SCO==000200,, ;SINGLE-CHARACTER OBJECT
RS.WSP==000100,, ;WHITE SPACE - SPACE, TAB, COMMA, CR
RS.LP ==00004⊂,, ;LEFT PARENTHESIS
RS.DOT==000020,, ;DOTTED-PAIR DOT
RS.RP ==000010,, ;RIGHT PARENTHESIS
RS.MAC==000004,, ;MACRO)CHARACTER (RS.ALT = SPLICING)
RS.SDS==000002,, ;SLASHIFIER
RS.RBO==000001,, ;RUBOUT, FORCEFEED
RS.SL1==400 00 ;SLASH IF FIRST IJ @NAME
RS.PNT==200000 ;DE@π∪≠β0A!∨∪9(@Q
=$A≥+5¬%&$~∃%&9'_rztb```@`∩∩∩m'→β' A∪A9∨(A
%%'(A%≤A!≥¬≠
~∃I&]β→Pzz`h@```∩$∩wπ⊃¬≥∂
A5β≥∪9∞A∨↓∨)⊃HA¬∪)L~∃%&9β%$zt`d``@`∩∩∩m≥+≠¬∃$A≠∨⊃∪
∪I&A>A¬≥λA<4∃%&]M∂≤zz@b```@∩∩∩w9+≠¬I&A'∪≥≥&@V↓β≥λ@4~∃%&9 ∪∞zt``h`@`∩∩∩m ∪∂∪Q&@`AQ⊃%∨+≥⊂@r~)%&]11(zz`@d``@$∩∩ga)≥ ∃λA→Q)%&Q→∪↔∀@tR~)%&M→Q$zz`@b```$∩∩w¬∃∂+→βHA→)Q%&@!→∪↔
↓0R~∀4∃∪% ↓αXY7→Y-≠<Y'#01↓%⊗YMπ≡Y/M Y→ 1 ∨(YI Y≠βY'→&1%¬∨:4∀∪%&∀Cαzzq%&\C∧⎇>dd4∃)%5∪≤~∀4∃≥/)9
zzuQ%≥
~)≥/)≥8zzu)I≥≤~∀4∃↓
%≥∃αu:R9αU↓2ε
e~`4(M"∩9εU↓αε
eZJM→
~bt4U"⊗J6Lp4(Q+PK\YhB∧Lid∧d-z(@hPQ)∀4* hU :Q⊗aQNjnhH1R3HT∀Q0(H4K4jK3U⊂+∧⊂R5
1"C"J*iQQGW,β"J*kQS)w/,β!*TkTj≠∂/,↓QTTkH*Ro/&Fλε↓ TTejpso'VLεεβ"TJ5UttπW,,εεβ"J*iS∀πW-εεβ"TJ5Q∪uπW,Lεεβ"TJ5TT∂'V,ε↓"TTei00o'Vα_⊂_βE))W∀f)V↑L__⊂εB))W)⊂αO==1000
RS.SL1==4⊂0
αRS.PFT==200
RS.SL9==100
RS.ALT==40
RS.ARR==20
RS.SGN==10
RS&DIG==4
RS.XLT==2
RS.LTR==1
αIRP A,,[FF,VMO,SQX,BRK,SCO,USP,LP,DOT,RP,MAC,SLS,RBO]
RS%!At{%&\¬α~∃)∃%≠∪≤4∀~¬≥])≥
ztq)→≥∀~∃≥∂Q→≤zzi)→≥≤4∀~∃ ∃
∪≥
↓≥/)≤ααbAH_2e≥↓Q M$I`∃Eαλ_2e∃5d∃≥@Q*D-∀Y→`hPβ"W!↔q3Q∧ qH∩(h(∪Q*@i"εEβE))W⊂fi↑↑T)W⊗!∀%UafUif≤Jf`a←α]ad T aj"T⊗f`aT'P)lS* lεB))W)Pi↑↑i∀W≡!)∩Uif_Jif≤UTag←∧Nidg#S"Vad⊂i⊗ga∩⊂)lg∃ lεEαD@D]Tlg* V⊂#'iλ!d i∀P*$ U⊂!"cRe⊂'a∩"a`∀S
RS.OBB==RS.,SQX+CCO+LP+MAC+SLS+@!9(W'∂8W ∪∞αZb2Q\bRIXhRJM:="!`+Z*2sdx("\$zE5∃α8~%∪P↔:¬∀-JK∩∧mX9αb∧→k∩¬<z*DEJλ9∧
⊂β"TJ5Tq1'W4TkGJu∩∃Uih∃i⊂αO+FF> 3ALMH∂' αε:@∀λ4D
$
DD
D∀m(⊂ "Pd Y SEE
~∀_vI%∃β π⊂↓% π⊂⊂A%β⊃π⊂A¬⊃π⊂f@⊃β'π∪$A% π d~∀~)'+¬)Q_∪%¬ π⊂A¬≥λAβMπ∪∩A→+≥π$J6 55DhPQ$E∀,_H4CP→*5α∧EI∀d≤→I@hP⊃∀αα¬∀J$,H9hU(H4B∞C"J(01⊂iπB4∃*9⊂¬⊂(*,dFB)"!d]fgUα@
A%!2∧4PJ*JN αJ∩∞A⊂4(Q$D
≤9→∪@L*:α¬"Hk∧u3⊃Q%∀$9ε#@! ¬∧aPdg⊂*∃⊗→_→BD]`∩ARA CASE GHEJ @%∃β π⊂↓∪&Aπ¬→→λ↓
%∨~ααP≤MI ∀`H!∀∧U∃:@¬∀,_H4@H↔4∧
¬(X∀$d~:Bαj X∃J¬8XR∧
λ
4-,IuU≥∧_8RpH*8∩ L8→∀b¬JAC≠Q⊃∪\@StS(→∩6Q$λtH⊃IzH⊂p)→β"Th∀α(∪)zQ2(
J-!Q@03HI(⊃∃¬F-mc!!33uHT⊂K∃
A"B3)zQ(⊃¬JSpP**P6#!!01⊃ ∀∃∃ XU∀r+%l#"A~Suλ
J,!QB2U)Z∪λ∃
EJlaQB2∪
+H⊂+λε*⊃
!QB2TJ:λJf!"B2
*VH⊂%H*⊃¬⊃"B2JY4∪Hλ∃⊂t∪j C"B)*Tuλ
(⊂r∪aQA"@↓Gv∩3H83∪λ →Pp4jD∩3Pj83h⊗ →Pp,$ 3Pp)Iλ∩3H83
λ →Ptuε$∩3Pj:h∩)htu
∧ 3Pp)F(∩3H83( →Pp3∧∩3PI→Qλ∩)hSMλ →PSL$ 3PSG∀∪∩3H)N(∩)hp3D 3PtjF(∩3H83
hλYqPSF∧⊃3qH)3QλλYqPSF4⊃3qH)M(⊂hYqPSFQ"C"AQC"TjXU∃∪↓→Q5r)t∩3T
Zλ⊃U)hu∩3id⊂4Qj4∀∀Sh84tsj!"C"G7nb2J:λ⊃ →Pp3 A"Nng1"4/λiSP3(WC"Ng7h∀∀Ixq4thZh⊂4Hz313JJh⊃Sj$⊂3H →T∃5∧λU3PjI3sH
H2r3Ht∀q⊂)h⊂4Q↓QNnndλ4Qu)X3U∀d¬⊃3qD
P3∃(T⊂3Q¬ytH⊃I→α"P T) lTK⊂)`k⊃iP#↔βE→]]Be)h⊂⊃⊗,$g⊂`f&εB≥]]DBh↑#'∪ fb←βE≥]]H$iP)Rfdf T⊗⊂!*U⊂$g)Rij)P∪e⊂ P⊃$l'*SP)"iUf*⊂∀⊃'i⊂*⊗dV⊂*⊗dh"bRTVεE∞]]P S"⊂"l∀ ¬C@)LA∧A$yα∞>u"ε&9∧*&Bα-⊃↓
~MAE α⎇⊃↓
∞∧zB) ph)mmZαNεZ-→αεI∀ ↓"N,)αRfMα⊗⊗-Jp4(Q+∧LT8→DcPQ!∀U,Z b¬"K ∀`(p,#!!4∃4i∧∀⊃AQTqP$Q2TTjD*⊃¬⊃ R1ID∀qP%Kc"R)@!`ij∞∧h*iR%⊂ ⊗∩dεFGET ;GEPS VIJFILE AN↓β$b~(∪'↔∪A
A)βA%βλ~(∩Aπβ%_ αε∪ 2RJ-" $λJ↓α"J∃QαεI
bQεRLH4(εE∩2j%¬!2εMu~~∧$KZε"⊗≤Yα~>∩αε9αα8dλh!~D$td
Bd
8~"D
&⊃⊂K\izTtαλ→b¬≤h↔phP∀ %∃≥Dε∩Dα⊃⊃∪L@St⊃%D∀Q5
ZSH∀I_r∃λ~p6#!!2∪∀K$∃∃¬λλ∧DDNcbj∀'dg*⊃i⊂"'H'h⊂!∩jεE∧Sek"P∃⊗∀**
DD]cQj⊂"$⊃P aj∃`f⊂!∩hεE∧Sek"dH**⊗)T↔+gfBDXCHEC@⊗A¬∂β∪≥M(Aπ≥=(∞ 2λ¬∩ →β#iFB∧j"'∪⊂*⊗ ∃*)`i
i_DB]a`gλ$j⊂"∪P*$$TP)`⊂E@π∪
∪A∨!Iβ)&|q|4(Jα*JN ↓E"⊃HH%niuB¬∀X¬∃*)H⊂4d StS(→β"R)Htq3g↓33uHY(⊂k →β!`∪ELε∩αw≥∪ ~∃∧JQαN|j⊗R →d:¬Yi∃
1#"A~∃0 dλ#, ⊗⊃∧D]fPlP'"Qb⊂"'H)"`∀URN IF OVER-RUBOUT
PUSHP,AR1 ;@%∃≠≠¬∃$A)⊃∀A'
α4∀∪!+M⊃∀A 1∪')π¬_∩∩we&HAA%∨πM&A∪(4∀∪!∨@A
1 1λ∩∧∪A∨ A 1β$b~(∪πβ∪∀AαY∪9π'≡$∩w ∪⊂A)⊃
↓'
αAI ∩Vα)b∧,xgphPα(∩J*uλE6c"B$∧∀⊃4i H⊂λYβc∧DNβHANDLA EOF α JRST INCASP ;IF @%∃)+%≤ααR"⊗pαBJ>≤*⊗⊃α
∩0≥h@λλ_p23AQ@∧fgUα@
A%!1"¬Hh(&B⎇α)αAb$%@9irb¬(ZE-∀aQ%hHα.q)@ ∧ IFL SFA
P⊃∪9∞¬EPJR2x⊂λλE""'d¬U@'PA⊃β-∀A¬∪19+⊂∃αα(U≥3∃β!$g!`S&≥εE∀c R∧R*f`"H*⊂IN@πβ' H%nj-∩0~∧~(u_h*8d
(α2U)Z⊃(∃¬F*⊃∀CE AOJL D1∪⊂~∞aH (!~4-%$λ∃∪
AQ L-λ9α∧
&⊂¬
λ∧DDNβDEFAUHT NIHλA
=$A∨_A-β→U
~*Lr≤FG LUYZ∧*∧~ %H3qPI@_∧]g∪h∧ IF NIL
λ JSP TT,XFOS@ $∩w
∪1
A>∩αN~¬xh %αU∩NAα,z~
9H%nizB∧Ld
Bb∧z$∧L2 iu"∧i→D(hαR1ID∀qP%Kc"B$∧∩TTjD⊂3Ph→
#"I→β!`∪T2:↓HLRZ DT,(D) ;GET P@∨∪9)β$AQ~A>αα∀MAQ LlzhR¬"E
E"Hα".hx5λ∃ λαP aU*`f⊂⊂αIT
MOVEI TT1'$]∂=~∩αw
⊃⊗∞X∧∧<→→e≥λ∩sIZβc⊂*∩$g#iCE TDLN @(αbαRR≤
I"ε⊃ $%@88∀`$⊂5λIh⊂
$∩iP ∪PEC@∪
%
αzλU∀
I→t`'βFE∧H%))jλ$g!`S- ;L¬≡@1∧Bε 4IHR∧tz)T@⊂ε,]λkbT⊂ EVEHλA<J21ααJ$
Q!∃∧⎇∧
αd_⊃⊃∪@8q1⊂⊃dπF VAH +
4⊂λ&Rdr0∩∧EF⊂HKαq6
λαa`∀IL¬≥αλ∧∧4Mα∪U)T∀Q4jY∃∂c!↓(∩TJ:λ∩4jHp3α!↔pπ'h⊃T∧ CALL @)!
A'%∩⊗ε5∧
2⊃α<yα>aQ M¬X∧r∧
λε!DB]i"fQd¬BER EOF T¬β→+∀Aβ∂β%_λ ()→d
≥F7 LLzhTJ∧5I∀`(tp
3 0↔≥∃(
α⊗|1αZεe*∃ "λ∧siX5∩∩)@ π @+9∪#+
4⊂λ&BαZ4DRλ∧ ~u⊂p)A .ph→α TH@
A≤2∧4!~∧`:λ⊂λD@ ;R@'$zJ*λYt2¬h→E,(β"B(`dg A(@∪≥
' ⊃LHI`≤$_@λ
I⊃(∀hh(⊂ "U*i'1dπF >4⊂λ%αU∩N@" →d:u
α!↔v14eD⊂∧ g⊃&"P$U∧¬∀∪)' A ¬D5DβP_BDXELSE @)!
A-β1+
A∀*RVJt*⊃αX¬4jD⊂Q(λ∀⊃R6 @*fFEαh#h%λ(⊂
INCSPλht%'↔&∧qα¬2_H%n~⎇⊃α¬αu*21α,z→αZbV∃1¬~0∀02r)K εE∧H&gk"RP V$Sα0 ~@λH%mα≤b&AαLq↓5DhP&*NααQ2~β e & ∧D]Qd∧SE Tπ⊃β(ααP≤
4
¬∀⎇i_D, Q!∃∧⎇ $¬α`⊃⊃∪@4⊂ε`∃ST BE A FIXL¬+~~):∩αw∃_
" _db¬8h⊂hT→h4CTεB)Yβk"P⊂T∧TTSAR(AR1) ;GEPλAβI%β %¬"fB∃∧∩&BLhP&BIib∧
JJE≠d→w`HKαs5*:λ⊂Q$ 3P∃*Aα@
JRSD↓∪⊂~∞aD4!_UD≤αλ⊂%H4L#!∧h"iR%⊂ ⊂,Xπ∪∨_↓0∞ 4z@λλ→β⊂$g∀*j⊂#∩d∧E@'AεC;t~∀&-B≤Bλ⊂λ~L#"A→TTu∧ 3Pp)Fβ"R)@!`f_Nα TLNL∧AαYQ)&y)d|∩αw%A))dAβ→→=(
α
LrεJ@∀ Tl$QQ J¬IId`$⊂+∃
Jo⊂SGa .s*Zuλ∪I@h∧ BE BINARY FILA~∀$@A¬%M(A&t~ε %!Q L-α⊂r∧λ+⊂4F⊃ ¬∧h∃i`λJ P,[IOL [NOT ASCII FIL@
C;t~∀&-B≤Bλ⊂λ~L#"A→TTu∧ 3Pp)Fβ"R)@!`f-∞α POP P →α$∩∩`.α(U≥⊃tQ$λ3qH
@ f*bCE$g!∩dεD: SKAPE B,AR1
∀∩↓∃%' ∧∧L@PS@~βE PUSH@∀A@Y∪≥
≥ ∩∩m∂)&↓(
&:4J2* →b∧
&⊃P@LYzd,Jλ ¬λ4L"!QR3PIf∞B0h→3H⊂EJ∀U5 ↓α@
TDZA↓
$1Q Jαλ94M∧∀λ2e]J*U$EQQ Jα∧ ¬∃∃αH⊂*&+∃I*K2#"GDh"iR%⊂ ⊂,AP@∪
=⊗~∀v%+≥→∨
↔∩4PJ6 =h∧r$
λε⊗f∩dεBNd∩∩`.⎇α⊗96≤z∩&:8∧∧`8H⊂ h⊃aa$g⊃∧¬∀∪5≠ ~⊗h∧¬≥αJ:¬≥⊂Q)∀`(SH&A→∀TVD
∃∩)@!'∀T∃∀@
HRRZ R, @)PR~(LBJ2¬¬⊃1"R ¬⊂hPα4∃*9λ⊂ h)
HLRZ R,ANBL∧rQλ$~∀&%∩0∀rλ∧@⊗
β0∞nnβ1@ (αB(
TVH
%λ⊂@∀CE MOT¬⊗5¬⊃1"R ¬⊂hPα03h%'⊂*$g!'L¬&A !
A%¬_∩∧vl∩@@AU→%λX1+∃%¬ ≠β≤$p
↓αt*P~¬h→E,*aQ#@7b(λ
(01∀¬E∀Q0(J⊂ε`gβE&$g⊂'≤↑NKα-INBL9¬
λ¬∪≥π¬_d`(L
6*1¬!2&:≤
1\4PJB>A¬↓2∧⊃⊃∪@:α+gP⊂i#iFBα POP P →βHb~(LRV -λT∧
∪∃I∀`(R3Q↓Q@∧a`Rdε AR1( )%U)⊂~∀$A∃%'PA∪≥¬%_
Q!∃¬-9λ
¬⊂""'i`k"H gc⊂∃αALUE
∪∃M A)(αbb4z:hU8h∩(Jλ∧ri~⊂#"J8P)")*Tq⊂∩dεCAL5
∃∪→_ αN4 2l4PIα*J≥!α&:≥~QDQ!∩α∧**5"∧α3Ph→α~FEαP⊂⊂%∀)j⊂$SαCSDH~∃∪≥
' ⊃EPJt%@8Yd"∧α1SD
qP#!↓10!R⊂ V T_@ ;MP ↓HA≠+≥!α
∃∧2& $Tλ∃∃∀≠⊃P@LYzd,Jλ⊃BEαα""'ij'i⊃P ∞EW EOF T¬β→+∀~∀&U∩NQαLr≤FA⊂K\β02hT∀p
i⊃P#j$⊃i⊂$iH!gi)⊃ajεEβE$g!Pd∧7: HRRZ D, D$∩∩`.lzJ¬ααI∧Rλ¬∃i@P i#T]⊂#'SβEY.
λ JRST S %]_
ε0hP4*⊗|2α9ARαB>BJαA1DHI`≤<X@λλYβc⊂+⊂d∧UE OFF STACK
λ MOVEI A(AR1$~∃∨→
&:!P4(~ID`)H⊃⊗D@ ;BIH
λA→_∞IαLrBVQ∧*0≤2λ¬∀H~β"B$ TTu∧λ3qPI@→FE∧T*id P,F 8π
∨$↓_
V6-∩&∞εbα& 5λZB∧∀eD∧4Mαλλ@ Lπ$AπA_∞B!Q M⊂ε'P⊂T∧400000
EH∂
¬8ft&¬*N!ααb∧4!~¬-≤αλ∀¬Hq3qH'~FEαe)`⊂ T,E@%M) ∩∩m'(AU AαA→%β≠
4⊂λ&6⎇2⊗ *λ∧λYβc ∩TL∧∩αwQ⊃∪&A%&Aβ≤αα⊗ <dλe∀XQP@!4q5 (⊂QJ
Q∀α!∃β)bbH gc→βE)c IDh ∃SHJ @ 0bQλR$∩w%+8Aπβ→1∪⊂~≥∧2V 48¬∩)@dε~∃M
αH∪5≠ ~⊗Jα~@λ∧ @) 3@)!∪&A∪LA)"*α⊗ <d
d@∃1(λitH∀hh4c"J8P)α*
4r∩D
λε$g⊂βAS@($∩w"r∩2∃∧
0∩¬8h∩b∧YJ4*¬*Yb¬$α⊃(λ`f&"T∧¬∀∪5_∞@59∀∧"bβ3⊃*ε*hλ@(P)∩wI')∨I
A
∀
6∃αα:E,4aQ LE*)∩∧λε"i∀* ∞
BLTD,E@%I)≤W→∃ bZ@λh ⊂M8¬0D
λε-f⊃i)`∀P+2,,LERS@)@Ve 4KZ~2Vα9α∧TP3(Q ¬∧h∪βP@∀A@X∩$KZJ-JZ$`$λ⊂ "Th¬LTIHAααα0≥∩λ¬∃¬⊃ ¬εE⊃dπFBN5:∪!= A Y∧∩∩αw
_∞ ,T ∧-∀T t`$⊃3qAQ@∧j&⊗αN A0h``@β↓@ (αPq)@c!'58∧⊂∀!~∧`:⊂¬⊂( gc!∪α5¬
SK@∪!8Aα$HI`≤4z λλ∀⊂π ∃LL EOF VALUE(λA≤r⊗ε.Lbd4!∀¬≤\~λ∩¬%EK∧
@,""'P)f$T⊂ N↓α@@5α⊂λ →β)`∀EAD
BSP T →
a_
YDHI`≤,J8R¬<α⊂5∧
p4h
SuR(HαbεEαh ∂PJ P _∩$∩vA≠U' ⊃α∀)α¬α4Jb:Vhh ⊂c\Yxb∧3qLDλαgc≤λ ¬OF1 @∨\A⊗>3!α,xg∩∧3qM$λαgc-βE
λ¬'+¬Q)_∪≥∃(∞&=∧*0∀"β3qEXR3⊃$ ⊂3Q I3Qc!∧¬
;lp
αλ→d$dTλT`8H∪sD
u⊂3HH4Q_i3⊃(λ~TP6$ 3H⊂*&+C"AQQ3qG∧h ∃SHJ FXP,SAV5
∀∪!%% )¬!2
~α
$%⊃↔49⊃0rd
p∧"j∩ ¬R IL∧A%¬λ⊂∀!→%,@4∪@⊂∃⊗"gc⊃i
ELπdt4⊂
N~λ∧@L@3uTi∀∃∃⊗⊂iP∞@'→α~*≤2¬⊂&$"0∀(⊂
* i`i
i_@) ;DID AN SFA GET EOF?
αSFA$ JRST ELπ
(HI`≥LX∧k∧ Q0"T⊂ g,H ¬OFFL∧~(Lj0≥Q2(
Jλε#$Kα@∨4⊂λ&"α*%@$⊂K⊂
J∀p4Eλ4L ∀CE JUMPE B,@∨T~∀&-B≤Bλ λ~L#"A~p¬dh⊃P V"SβFRTN
∩A!%% )∧ 162-∩N@%¬P%λ*"+J81(⊃)@c!$g⊃∧¬
EXC@⊂A∧Y∧4PJ≤IHbβ∩Eλ∃∪
⊃Q LUYZ∧`$⊂+⊃)@c~εE⊃dπF 0βP&N9~∧*¬H~¬∀1α"'i"`b∩dεG FRO@~A%_
~&d)|4!∀¬¬-9 "¬αβ∩3J tα"'lb`∪, P@∨ ↓)⊃
A%_
BVα@
≥⊂0raQ@∧h*Td
P,@∨\~∃∨_bt&U~AαIeα∩2¬⊂¬S(hαB4 @h
P,λ
(hR⊗<d¬nA→∀TVDλ+ →
(⊂ 8π'β-∃λAβ$βλ4(→Yu (αP ∀T,TTSAR(A)
λ∧∪)→9_ αR ¬E%%4π∃↔@∧D]Q'`∞'T C@→∨M
A))dA∪≥¬*Q04PIαBVα9∧R¬¬I∀9α'ibBDX FLπ$A$Bε@"λ¬p*4⊂εbi⊃d∧Y OT¬⊗Im∩V
>- 4(~ u∧Rλ∧↓Q@εE"SβF4: @πβ∪≤βαP∩R∃*R 4PIα*J≥!α,xf⊂hPα4ri~⊂π⊂* gc)∃'
JRST @∨`~∀&E∩J5αλ¬Bl@⊃0 )U(⊂
"αBQ$∃j4,*λYt4∀→h@hTYxcKPα33j@ ¬ @ 1⊂≡~α*D`! ∧W)QbP ∀YPK9
JRST @%$βλ4(Q(T`8M(
∧T*id%λ(⊂EOF7
ELπ
)PJN.~λR¬$~
$, ⊃↔4`)h⊃3hd⊃P
g⊂βP ∪∨8X αJ,
∩&:8∧∧5∀yPλ →β#$f⊃←FE∧H(*`∪HJ P,IL¬!>H%nf-→1αB⎇↓αRλT¬≥⊂0raQ@∧ieRh ∞ ELπ
%)8~∀%∧RJNQ∧*0≤3⊃Q LU*:B∧3qN!Q@↓Gp∧g(∃X⊂$g∀*id IH
!
DA∪≥¬)EIαLrBUI∧J0∃¬T∧h →β('hλ$g ⊂U5 @∪≥A*`→αLrBU]∧J0∃¬Tεβ!∧¬∀~)' ⊗
%"0&:-:& : →e¬-9λλj3Pu →β`∞
0⊗@Xπ2∧D→~%J∧α3T
Zp∧⊂#∃dεC@)%_∞ 2d
¬-≤α⊃4dλβ$f"H'`∞DO IN@'Qβπ-`h ∪[4ε`⊂∪βR MAYBE PUS@⊃LA∪≥
%→αXA=$A6
J∀(⊂λ'T)P∞
8εvvA%_
Bz∧¬∧⎇λ∧h →β)`∀A@π⊗A∪9)≡A∪9
∪→
↓_∞ 48U`hPβ"R)@(*P⊂: P∂)ααα`≤∀_@λλ~Qh$ 3Pλ*Td⊂nFBαIN@!U'⊂t∪
β∪≤A∧Y)%+Q⊂∩αwM+¬$@D~∀&E∩Jiαλ¬E $αj,dCE JSP TT1β
∪→∃ ⊂∀!→%∃≥D ∀`*∃( εBα P@+M⊃∀Aαbε@$α1Si1"B5)@aeRF@
EXC@⊂A∧Y-∪≥→∪⊂∩∀hP&"J∃Qα 24J0∃≥H_4Xh!~¬-≤α∩H
¬⊂ssJ1"B3)Zβ"f@ @∧Y-∪9' ∩ε≤X4*&uαUEHM~.&Bp∧∧
@∃R3Hi3⊃#!∧e))U⊂ NPU12
CAIN A,TRUP@⊂~(∪'%R5αR
αJ,AQ M∧z "¬αββ"AQR3T
V,NB*
4r∩D
λε$g⊃&*`~
λ∧∪∃%M(A&uαUDQ!P@)3Pλ*L≥ieSh∧T A,BP≥
JRST IN@!T`⊂∀!~4\M `λ
Jλε∀ JF@
JRST IL¬!*@λh ⊂L*YU∧bλ¬∃¬I3Pλ*MF@
INPU3 4%⊃%%4↓αP∩ZLr~&2(H%nεp∧∧L@T⊂
iR⊂ OOPλ
(LBJJ@$λ"e4→j5$91P@!4⊂
iR%⊂ ⊂,@π⊂≡h∧c!∧fgk⊃d¬ A1(
&:α:D≤αc"A~pπe#H**⊗$SαPU &4⊂λ&*∃~Qα→j¬+λβ"C!$g ⊂OP:∪≠=(
:%¬"Q1DhP&BVα9α¬αβ⊂"!↔pε`∃ST SAVE A (E(
∞\αaαN⊗*α2>ε ¬⊂hPα4∃*9λ⊂λ⊗⊂βPGPAJλ
¬∪9!*j@PJBVN@∧∧5E¬JE HαR3J
-H
∧Te`h'λ V+$SαSTACK
JRST IL¬!*@@h ⊂L J%@$⊂4@_K∀ TFBα; PUSH@∀A@Yβ)∪→_∞,4SX&V:dz≤\α#"A→⊃∀VDλ4L ⊗
TFEαd¬OVEM ARDY-∪≥→∪⊂∩∀hP&"J∃Qα¬1D $4!→T`:β"f@ A( -∪9' ∩ε≤X4(_→u≤<T¬∧5E¬⊃P@!2TTjD⊂∧g(∃Xε~∃%_
BUαp∞A~u0@⊂⊃,(⊗)
β0 ⊗@λh ⊂L**5"∧α3T
V εEεBαIN@!Tpt&lzP∀2(⊂%J∀U5 ↓α@
MLπ ~⊗h∧∧
@∃R3Hi3⊃#!∧e))U⊂ NPU3
;TYI$ %@)e∩A)3$A+≥ e∩A+≥Q3∩fAM+⊂~RLH4(Q!P@*u0U
Iα5⊗)∀⊃P
g⊂βP &|qαε: ∧¬∀H~D,"λ∧SjZ⊂∧g"TFEεE∃,dR: S@↔∪AαAY
∪ !α⊃⊂K]8¬0J$λ∧'$S⊂⊂∞ 0) @≥π¬→→β¬1
~(Jα6 =hY∩∧∩H:∧`:⊂¬εEαh*`∪H P →4⊂λ&*∃~QαRLH4)⊗αK∀KPα4ri~⊂(⊃EHqR6ε⊃ ∧]f∀h¬BRP`@\α↓I%αt~ε $β⊂0IHα@
MOVEI F,CPOPJ
λ∧∪∃'@A⊃K ∀`(p3∪↓QTqP$Q(λλ
∀5⊗2!QTqP$A(λλi`∂.TYI,,],,Q%TYI~∃Q3∩`(Lj0≥Q2(λ∃α(Rj⊗d@
PUSH↓
1 Y
!% @~∀&E∩2j5∧ 2
~α
$%Q!∃¬-9 "¬αβ⊂∃→303AQ@∧h'T⊂# _P,BF@!I ~∀%≠⊂≡Z,Iα¬1E"Q$⊃↔4(4QC!∧h'h∩⊂(⊗εBαλ
(hQ`≠[4 TLd
T`*⊗2(
)u0
$Sα@
4SY`≠X__484⊂
)H!`λARACTER IN A AND↓∪⊂~BαZB∧∀→HR∧Ld
dL@QR3λUβ
;8εv∪'Q∪π.α4∧9⊂4P(h∧E@$αα∀90λ →β*'P⊂βHARAAP ∧αα∃,hhU∩pQ'3@7b0s @a!"i∀P V! i_@,T,TTD. MUST SAP
A@Q'∀A%β⊂RP_Q!PE,hK∀KPα4∃*9⊂¬⊂($g##Qh∧D]Qbj)P∃$g#$S ¬ IN AR1
λ SKIP@
A$
BJ⊗ h %α≤
& 2λ~#
@∃∀U*Iβ"B$∧⊂⊂ )⊗α AR⊃,V%@)e∩~*L20∩¬8h∩eXQ!∀l]h∧r$
∃⊂*5TqP!⊃,r⊂)Hα E DIFFERANDLY @∪↓β∀A≤2∧4λM"∩:∃¬"Q2ε≤
I"ε⊃ $%@8∧ri~λ∩1D Su⊂⊂e⊂ ∪FA
∀∩↓∃%'λααNF:%J$$↔:44
λ¬3JK2#"KQ .q)@ ∧ IFL SFA
∪≠=(
,∀λBc≠∧∧εελ∧ @) ;U@'∀@d``@``A¬%(@A∪8Aπβ'∀A∨AyR4PJ6 =hY∩¬%EHdJ@PPPa⊃,¬`∀HE 100000 BIPλA∪LAαAπI_∞∞4λdm∩λ∧∀H~α*εEαD@ ;THAT↓≠β≥LA↓=∧r>@"λ
U"∧9λ∃∩∧zZB∧|dλT9⊂πc$S iFEαd&)-λ*⊂@TTSARλAR1) 8π∂(ααN&:<b∃α
,2~⊗J,!α∞α
⊂4(→*Tm∧T
Be,jK∀K_⊃↔5$DX∧Q$ 4h∪Iyβ"P⊗H* $iH$iP"PilFEαd))-λ!⊗ *∃)`i∧⊂i_TDNβFOOEY ~A]
A-~Qα∞|rMαRD(4(→Yu (αdP*∃⊗∩Y0000 !(Rαv↓_∞"⊃∧∩V~~-∩⊗⊃α∀
ε-α≤BεHQ!∀U≥∧
Bd∃α⊂si@)DD]H$g ∀O T@⊃
↓→∪'λααR=αd*ε@4T
$`9βbFEαh*`∪HJ P,CMH
&∩$p
α~⎇⊃αRλT∧d5h∪i@ ¬¬
MH∂-$A)(Y→∩P~
∀_4(→
%∃TTλ∩d¬JJ4
∩λ~#
Hβ"U)@*,dYNα H@%1~AλY↓))'βHQβ$bαH%n
,2~-$λ$≤αh∪HZβP!d⊂i
POPJ P,
λ¬∪
≤ααN~¬eX4*NαYe%L↔!∃¬-9λ
¬⊂b"'a`g'∪βPλA¬¬'⊂Aε4⊂λ&6⎇2⊗%ααJBbD∃⊃⊂K\9λ∃∀8¬⊃*$⊂∧g*∪β TT
λ∧∪∃'@A(@25Bε <h∧b!↔qq3HZP5⊃$λ(∪∩*:λ⊃R+ U3#!∧fgk∀dP",SH∞M,rP$%]*:RfJα0≥∧X∧P*I3sC!∧fgk⊃dP!V
TDDNβARGUMENT↓∪⊂~Rzα~αα⊂rλ~P0uλZH⊂
'H*g",RT@
PUSHJ P →∪M)πβ_$∩w∂≡↓)≡A$B∃αN4 α∞εdb⊗HQ!∃∧⎇∧
αd_Q!∃∧⎇ $¬α`Q+PHKαq3HD⊂∧c'λ)c FBαAS ESUAL
] 0↔9λA∂↓∪
≤AM
α4PJ6>Zα9∩¬"JJE≠d9G`hP~HDt(⊃⊗∃*)`i
i_DCE JRST $DVLUZ 3INPUT (FILE) CDOSED LOSSAGE!
α$DER0* LOCKI
∪≠=)∃αα@
J∀p4Eλ4L"!QI⊃⊃*@_X
SKIPN↓)(I
$Y¬¬ε!(R4PIα*J≥!↓α∩-1H$(M"2j9¬"Q1Iβ↓AA@hP%α
∃~Q↓∩$*P∪⊃Q LDJ+"¬%EJE H↔9t`(αP!d⊂i⊂$iH⊃!*c⊃ i"bλ⊗⊂!gH* ebH$jεEαiadh⊃P"εEαP λ@%I0
Mα4I0∀∀(5¬"HQ!∀U∃:@λ∧Hα"k_Pα α$DEPcαβP&&>5→αRQbBRQ∧HI`≥⊂⊃4HT⊂∧iP⊂P!*c⊃"i⊗a⊂a` LIST
SCIPE D
@⊃→I0
5ααJBd4∃h$∧~λ@
!↔hPq
$H∩5∧ 1H∪IZα⊂&bT f,P∀ ¬EKIL¬ε~∀%≠⊂≡Z*αRQ⊃E"Q$⊃↔4@Qλ∃λ→q(∃ @h⊂!d⊂iαE∩⊃ ¬V #λp∪)%i_A)(0b``@@`∩αvD```@β↓α6⊗rMα∩|q≡Aα⎇*RBVα@λ
Ih⊃0i qR3λZc"B$ TTu∧∧⊃⊃5HXpπFEαjg&%T'h%∧BU)bbH*g*,RFAεEβ≥R""Uα2 $DEP
→~α↓∩%iIUBαHJddm∀∧D%4IP∧∧α"+&∪XP∩"⊃hεP@&I∩Zα
3
αHJe¬≠∧∧D%5λ∧v∧∧α"+(∀Y⊂∩"∃αPS &4⊂λ (αN`≥Nβ @≥≡↓∞"ε∃→α
V42⊗J⊗ ∧∧(0r`⊗λ)`∂ DISPAT@π⊂A∨8A~&d)αRf∧(4(Q$D$5H : H@→%hA$Y¬→!% 4⊂λ&Rdr0∩¬EJE%≠JK∪pH↔9∀2¬I ∃~∧α4sDzα⊂ @ TTY,
λ∧∩A∃I' ⊃↓$"⊗@3A⊃∪@4∃∩⊃)@⊂#'i⊃bj⊂!S ¬VER HACKS
α CAIN R,Q%@)e∩∩%\J→αRDJMα~4α*⊗2(ED∃∩⊃)@∧¬
JRS@(α↓∩$X¬P)↓ ∧]@ PULL @π⊂∩⊗αhU∩∧_:DMP5∩)@dε HA@π⊗~∀%≠⊂≡Z*α→2→tj0≤$U
BHhαL@_ ∧j&'⊃P#⊗#⊂αT<LN>λ
)⊂εα J *%≥λ ⊃λZβ&&FBα JUMP@
A⊂¬B$⊃0~αDXNIL @≠¬_
Mαtyα∞HZd-∀hZ5~∧~@λλ→α
HRRZ R,TI,¬¬
≤αBQ$Q!∀U,X∧∪D
K ⊃λZβ( ∪
λ∧∪)→9_ α→d2∃#HjSpHα.sI@P( ∩E-SCAN @
+≥
)∪∨≤αA∪≤A→∪⊂∩∀hP%α**5"αHHU &β"B*Yβ&'aRd@ 8ππβ≥P@E!∀*N∞εp∧"∧TSs$
∃⊗(
@dj$,Y↔⊗a∩h∧ CHARS
PU@'!∀A Y%_
4J[ hPα2TJ:α⊂∩"⊃hε$
0⊗vβYα2→hTl@q⊃(λitH∃
K<c"AQR1SDλα→_⊗⊗β
∀I⊃ ~2hπ LE)IR∧λε∀(
F@
PLπ A
a Y)(α$$↔:∧`:λ⊂
$⊃P OCKI @/=%⊂4PJBVNDQα5α∀
85H
FBα P@+M⊃≤A
a Xp@αp4(~94M∧T
D,@Q0(βE JRST $DVLMX
∪≠=(
⊗%β 15@ε¬b[
λk¬αλβ"B)
S∩(ε∃α~~04ε``~(∪⊂⊗>4)↓I2]∩↓-Izαβ#∧∧KQ ¬∧iQh∧Z 3,λ
(Lj0≥Q(∀EF ∧DDNβSAVE BP IL∧A$~(∪⊃%%=~A)(αb& 4 _$Mα".m\8¬rP≥x⊂↔5LOCKI
∪%⊃))2~(∩A∀R6AαLJ0≤-*!P@!2⊂ )⊃dP#⊗X∧0 8PdR~(∪∃%'P@@∩∩4b6DQ$D%4I[β@! ¬∧fSβP
∩dX@5βεα`%l*⊃K
λ∧FEαd)&$H→⊗~4070 -λ∧∪≠∨Y∩@@~aQAAph ⊂LYzd,J∧¬ε6βFE∧SdπVEI 1,-D~∀&E∩J>T
E"dα3R _R5β!∧fgk⊃P)⊗→βE SIL∧~(Jα⊗J*m↓α&&|*JHQ!∀E∃(Y∩∧K ~_⊂∞(LR~(Lj0≥Q(%F@εE∧R))⊂→→FE∩⊃+&&hNα
∀∪)+⊂⊗Bpε→1∩%225@hP%αB⎇α%α~β
αcC¬aP@!(⊂λ*Td⊂#,∀⊗**∧BDXRESP ∨%∀A→>≤Z%α↑⎇∩⊂ (!∀∧U∃8¬∀Hα+ ⊂SX ∩∩m1& ∧∧@Qλ∃
+(⊂1h→3H∩(d⊂π'j∩$g#@ IH
!- 4(Q$D%4IPπ⊂( ∃SH F@1@Y)(∩$∩w%M)∨%
↓→∨π↔$A/>∀ 4(~Ydd|99⊂HHα".jYβ&'aRP*'P∀ ¬RMIT CONSING
λ∧∪≠∨Y∩A∧αb0∀LAQ"$∃S∪&↔@∧df⊃!⊂ ∀T,R~∀%∞ε&pεRQF6phPα(∪)@hεEI TT →=4~∀&U~AαQd2b∞yj0hPα4∃*9⊂¬⊂(!`∂NS
∪≠=(
∃α⊂¬DλhαB0)@e&⊂#⊂∧DVLM1~∀%!∨!∩↓
1 X``\4PJBVNDQαAIj$-Q0 )QD@ ;CLπ⊂~M¬*AαRD)α2~:@hPα33j@ ¬ C,A
∀∪)%'(@⊃ -!≠λ$$↔0λλ→β"⊂%∪βIN "PRE@'
β⊂~:-⊃∩∧9xD(hαW"!↔q3Q∧ qH∩(iH⊃→∧¬∀~(~∀4SY`≠Z Yt+(⊂dSαNING PRES@πβ≤AIβ HA~>⊂∧¬%%≤∧c!⊂∧DEVPS: HRL@~A⊂XQ R$∩w&u20≤\T
DD(⊂λ)⊃T¬SCAL∧A
,r≥⊂∧ggλ∧¬∀∪A+'"Rα~bAe~ε@3Q⊃∪@8R4TjEλ⊂ `Uα@
A$B∃α↑⎇∩2"λ¬∩λYβ⊂!`S&⊂ ∀HE SCAL¬≥⊂h ⊂LYzd,Jλ~#∀
E
"HHα.qJYβ!`∀ILπ⊂→ααy∃$B∧4∧
∀zYT,@U∀nAQ@∧fgUα@∩A∧XQβ$β $$↔0αC
∀
DD(⊃R)HαP i∀ h
HDRZ B,BFPRDP ; (HRA)⊃∀A~Vt~R&>p∧¬$zλ*T4Q0 FOR
H ∧ααQ2mβ↓IEAαa2
~α
$%¬Q↔2αC5∀∧L2¬E∀⊂∧iP i"`b⊂*$"CE UNLOCKI
∪!U'⊂A
a Y(∩$p
↓↓α↓α:Vl∩⊗Iα|1α"εt:& 4t u∧3C"A→3uQ)∀⊂k
λk∀
"!↔hλλ∧∧∀⊂4HYβ*$"TbiFEαh*`∪H BP@ 1
5λ∧Q
↓ ¬∧h∃i`⊂#⊗(⊂LPL@
∀%∞ε2d1↓MEλ∃∪∀∃⊃P@!4∪t∧λT∧ ⊂,LP@≥4⊂∪!∨@A¬ "α¬D(β( ∩DPλ
(M~V α5BA2I;↓-DQ!∀E∃+$∧
∪∃ES
E¬⊃P@L*YU∧(⊂ ⊗ ∧VEF0 ↓;NIHλA≠∃β⊂~M∧zP∀4K4JXSu5¬D⊃0 #Sβ EOF
∪≠=(
,∀λ2bD∃⊃P@!4rr*λαP ⊗.RSE@(4⊂λ%α≤
& 2λ∧@⊗∀h∧TYBUF∩∩m ∨9=!α:⊗,!αRtλ4D0r`⊂∀ ¬S@+1(A&0h ⊂J∧ %∃≥D∧D%5λ6⊂HKαh∩*D∃p4d u0 Lπ⊂∩⊃∧2J&⊗t!αRRL∩V_Q!∀l@uQ2$λK
⊂e⊃ ¬∧d∪)(
A,(B) ;@→∨= A)≡↓(
-)_eJ¬Iλ∃"¬(Z5,@∃∀hλjSs ⊂∃*,FEαP
SP B,TYLπβ%∞$∩vA↓I'πβ8Aβ%
↓∪⊂~∩,*⊃αε≤~&%ααh∀e,X∧c!∧P$)∀-⊂!,(B)
@∃+5!≤A∧αa0∩k1Q"$∃Pλ)L] LO@π↔$hQ∩%h∧∀fπ@∧d)∀-⊂ iT∧ ~BαBA$⊃Q L@3uQ$
∃∃
84J⊂*&*#"A_4∧!dλ!PFI,¬¬¬ε!(R%]~0~∧_HB∧dα4u∧ qH⊂iλ4Th
Ih⊂U(hβ"`∩5
ε∞Xh ⊂L*YU∧rλ5B$∃Pλ)L∧@ ;@A>⎇αM "λ∧siX(λTi@ ¬AKED" IN
$DVPSX 4%∃' AHY! →∧dZj~(∪⊃ %hA⊃E
αHhαB5)@& ∂CKI
∀∪)%'(@⊃ ⊗Y H%nεt!αRJJαε≡εLq∧4!Q"$∃Pλ)L≥ TLX¬∃α~aIAAαεβ@"B( *Tp
$@ -¬→L4!→T`:β"P K εI.B@¬ε@"α@
!⊃ ¬∧fShεEI @∧X@"~H$%@8*T4Q0 -@¬βπ⊗αα2&N ∧α*pπ"`Rbb⊃ UP IN T@⊃
↓≠β≥Q∪⊂⊗∀hP&BVα9∧R¬¬Ed`(pπg!BDX JUST TAC@⊗A%(A>p∧∧,@Qλ
93Pq$ 5λ∃h~hλSλ~α"a")
α JRST $DVP@'`~∀4R"∩ZB≠→`&6⎇2⊗%ααJBbD5⊃⊂K\*Xd4
%X$≤αh⊂iλ4HλJ9Q02hXλH∃*∧⊂3@⊂∃$"P&Q`g ∀IME~∀%≠⊂≡Z,Iα
⊃h ⊂LXε⊂i∧⊂k⊃I∃β!!!J*⊂ ;LIS@(αα~J>h∧¬%%~84@H⊂λ&⊂abb IHAε4⊂λ&Vtb0≤≤αr"!⊃,¬c'Sβ! @!∃%≠∪(αα≤@pπ ∪IL¬≥dλd`9βPP⊂⊃'`∂!A~>z (αB2J:λ⊂
,FXCONS
α PUS@⊃∀↓ Y:≤z0∃_Q!∀l@uQ(λ∃α!FEαh*`∪HJ P,.L¬π>t_4(→*%≥λ ⊃
@()P⊃
λ∧⊂∀ cZHHU &λ⊂
,Rl!`∀I∩⊗αfD$ ⊃⊃*@~!P*⊗dhλCT TYIX@π ⊃↓$"⊗@54¬⊂ ∧E@,Q&@I ∃( RUα"∩-d¬⊗D∧α""k
*⊂∩"⊃hεAH↓)3∪π¬_@I Yβ⊂b@⊃ ⊗YαIPhPβ"Ng]P ∃NIPλA∪9!+(A=_ αJ,
1α∩-2&∞∃I5α→h4e,I→d:α*JEJ∩ →b∧≤~8R∧|dλ4@⊂ε⊂*∪β TYI @
+≥
(∩(hQ∩$XfC@!4rr* λ⊃KλeS3qλU∃
"!∃β)bbH εBT9∞ (β"B$ TTu∧∧α""k
F@
HRRO TT, ⊃
a R$HI`≥~~0→H40r bet`)∃` β∨,εBπεTπ<=Y0∩λ$g$$PαIT
∩∩$X
N⊗*↓∩$XfhPα33j@ ¬M TT, INHIBIT ∩wQ+%≤AQ⊃∃αdz≤\α(∩)@* ∂ A .5LO@π↔$hR&~9∧JRMK1P@!33uHT∀K⊃E@!`λAN(T ∩~(∪⊂∩N@∧¬∩c&qP@!23tD
K⊗cI→βj⊂_**.FBα SP@π¬∩0~∧α3U
K4∧εE∃,dl!U≥l!U⊂)∧DB]` NPUPλAπ!β%βπQ$4R↓↓αiz¬∀xQ$D$5H
!∞α JUMPL @)PX@∩∩-2⊗_⊃↔4U,X∧∧`9β⊂"gQ∧¬∀∪¬_∞Mα2r~Bz5¬"Hα".i@h∧@⊃I(∞&N*α& 48∧Q)X3Q⊂⊃$f"P∀'idj∩dπ@≤@!_∞-α-2⊗ 2 _b∧∩hiD,@H∪Q(u εE∧R))b $@ 304*@Q⊃∪@83Q⊂∪βF IFL∧Aβ)L~∃∪
8A⊃Iαb`_h$HD-M⊂nA~∃0 d∩⊂# _P,SAV3
∪⊃I%4@@λ¬D2t(ibE"α#"D∧λ⊂ h⊃ah ∩O IN@)Q30~∃Q3∪ "≥!`⊂L)→`HHα.r)@(*`∀↓∞"ε∀
≥⊃0 εBα ERJMP $D@,@% 4)↓αα2>Bα)phPα33j@ ¬ @)PXd4PJBVNDQα5α⊂λ⊗∀)j→FBα AOS F.FPLπ&@"α@
!⊃,¬gj∩ ¬RWISE IN@π%≠∃_
Qα4J2*λ∧∪j95∩3i@⊂⊂λOK @-8A∪A_X
4HYb∧tXp
!Q@∧ieRh ∞ TEH
E4(∀ %∃≥D∧D$5HεBα TRNL∧AXD`∩αwMβ∪_A⊃∨&AQ⊃∪&AQ_∞ ;qQ M∧β∪Q$λK⊃PJGα#*←αDXI DO@≤OPA+≥ ∃%')β9λA)⊃%&~∀∩↓∃%'λα↓∩$Xf`hPα0p)→β⊂ ∀T,37 8π ∩⊗t*aαzzα&Mα≥⊃1α
∩_ (!∀∧l@uQ2$
∃↔IQ ∧]o↔P⊂
<αα≥⊂β"B)*Tq⊂ ∧EF6
P~∩$p∞⊗: ∧∧`8H∩1I@⊂"→λβE$c'λ ∧10,Y
SA$ $DET∧iε@PH$%@8∧p)→α⊂ ↔ANT'S LINMOD CHE@π⊗AY⊂→α4zIαRLH4(→Yu (αP ∩10∞&:≤BV "λ¬∃Q ¬∧j∪''⊂# εBT≤LN0≤~)'αJ@⊃ ⊗YαH3@!α@
MH∂-
↓$Y7∪9∞"J8∧¬%%QQ"ααλ∧tλXt⊂ 'H$g ∀TYX
TYIP⊃πPpλ&@λ:B¬⊂β"H∧∧⊂π'h∀'FE$Q'⊂ ∪AIHλY64⊂λ&R∀r∃α→c @$↔8d`:Qq5∧
⊂∧$iH$ aeH!'i∩d¬AGE MODE
∩A)%'(@⊃ ⊗YαaP@!33uHY(⊂ ,(TT) ;CANMH
∪π¬→∪ **αεN∞LIα∞≡$*L4(M"2:∃∧124*CD5+a⊃∪@9(⊃∪i@⊂πT UL¬∩⊗α*5$h@λ
I⊂4c!∧e))U⊂∩""UαS4 8π¬+λαα≤@pπ#"T*⊂$gλ''g-FULL MH∂
4⊂∪πβ%_ αIc→H$%]"& $HW"β≠$πSrβ⊗r`hPα(∩
*Sr(
%-`≠βE CAIHA⊂¬CmB"'i$cd∃⊂!) PbY⊂_Mβ0@@hπbβvQP@J
%∀|∀
"cvQP@L8→∀`$∀K&@X¬∩∩mβ⊂∩Rlz∩+αH&@X¬ :βq↓ML PROCEED
] ↓;EL¬⊃α|1α&~p∧¬≤→AP@*p)"(`df⊂∃*∩~_αDXCOLTROL C@ARS CAUSE AN IN@)∃%%+¬!α↑α,qαJ⊗ 4*Nλ(%α
∃~Q↓∩$*P∪0Q$D$
dJS@L
)Dj∧EE¬αHβ"B)Yβk"dH ⊂(TT)∩∩m_∞ 4K∀∧L@U⊃4J*4⊃⊂∩c⊂$g∃⊂#"g⊂βP@∪∨8Aβ "M~RL4PJJ>Q∧!15DHI`≤≤β⊃5HZH⊂4J(4∧P Pab`∪S AS PER @)Q3∪π⊂4⊂λ&ε$"%α⊃d2∩t*XbE"α#"A~∃0 dλ!( ⊂,Rλ
(LB2J@$
"bDE⊃P@M99∃∧q(⊃↓Q@∧P$∀)(
R,(D)
λ∧∪∃+5!∃αα ∧Hα"c~⊗αλ
(Lj6@4Y∀∧"cFεβββ¬
E"Hβ"B)
S∩(λEλ∧ iT@D]U$"`∩E IS NLεA>∃2& =X∧h @ ¬ED↓
∨$AQ⊃∪&A9_∞@8Q!∃¬-9 "¬αβ∃0i 3P
∧B]cdk⊃P*`∪ER @∪≥Q%%+A(A
∨HA))2↓∪⊂~Q∧~"εHhQ∩$X¬M≥ POP F@1@Y$4PJ"2JRα⊃1λ¬⊂hSαh∀h∀λ ⊃λZβ~+≥αh ∂P FXP,TT ↓;RESTORE THE C@∨≥Q%∨_A
⊃β%β
)⊗HhP&*J≥!↓$HZc !α@
] ;END OF IFN DD`⊂∀!Q$L4dλC∪αK1PB$HZc%#!_u%≥J1P@MIIdbβ%E∧=~XYt2Hβ"B$ TTu∧ 23q**@εE∧R))b $@
∃∩¬:$∩w≥⊂A∨A%
≤AλH`∩(hP4)@4εndλ(⊃∀I_p¬`→ HACK↓)≡A¬∀Aπ2-2⊗Iα∩6@-D ∀lLXI∀
∧Tλ∀
⊂∧k U$ggεB≥]U@ Tπ⊃≤ααRf%αB6Iαα(T$9∧ tH∃iλ5⊃5HZJ(∩*4⊂∧g+∪d∧VED,∧⊂∀!Q"$⊃0 R≥ieRh F,F.MOD@
Q(αH%nX¬4jD⊂Q(
I⊃(∃
K(⊃Sj$∃∩∩*4∃∪h
@dπRK
λ∧∩A∃I' ⊃↓$"⊗@3QQ LE*)r¬%EE∧5E¬⊃⊂K]M
↔4~_9∧Y=≥↑H→y.D≥~→$∞x8 %d @∪≥!∪¬∪(4⊂λ$⊃⊃∩`*q1(∧Hα"c_βE MOT¬⊗5¬"Q2→i∧L∀~A∪@:α*`∩N T@⊃
↓→∨π↔$A∪≥$yα¬↓q*2>∞\H4*& (&*J≥!↓$HZc$_⊃↔4L<βStHT⊂ε$g⊃P
ODE(λAβ9λA+≤)α∞α
∩ε∞R-⊃α&:α
U"¬X¬3aQR1SD 5∀kFA⊂⊂λ)h"aT)'P$S**,lβE*,dPβAL: ,¬πβ→0@A Xi~$KZ≡.
∀b∃α∞D
I1α-2⊗ 2 _b∧tz@λλ_u∩5H~⊃1β!∧λλ∪I@h)'FB∧P↔&∪βSE 1400
IOVE TT,TTSAR!β$bR4⊂λ&N\JB9αα λjPsJ5∃∃∀CE JRST $DVAHD∩∩`.$z0∀(∩1D Sh⊂*:pπadPh∧ED↓_∞@-J
U"¬JK⊂hPα2∀II(⊃⊗
(⊂
H∨-∀A)(YQ)'β$αBI$↔:U∧⊂5⊃$λp∧ i∀'iP Sα@λA→%_
,h¬3$λβ)'fH!j`∩SLπ$4PJBVN@∧∧5E¬J@hPα4∃*9⊂¬⊂#⊗(⊂CLRO4 8εA!∨M∪ ∩→yb∧|dλ∃≥≤βpr(~α"b Lπ ⊗R¬*QαR%H4(~ uα∧hε∀¬Jβ"B) ∀VHλEλ∧ ∀CE MOT¬∃ααJBe%J8∃∩D~ %⊃ ¬∩"∃αAH "βP&⊗@λ9α¬"β∃∃↓Q@∧e)∀h∧ $DEPi∧4⊂λ (αI⊃λZβ~&@: SE@)h~∀&≤Jb
& αr&>%`$%@9∃t`4∃∀P)@)c"iβE 500 0X@⊗RL
≥α".j(α`b @π⊃β%¬∞@$X λ →αfbb∩`j"f⊗P"`⊗EL∧A&2α0∀⎇Dλ∀
∩5P*ItC"A∀λλλ∧∧λε⊗#αC@⊃β8Q(@$KZ≤D→id,@λλc!∧Z_→__⊗⊗∃∧@]iRdεGLE C@⊃βHA%%*J:⊗ ∧∧D4Q(¬
λε⊂'∪βPλA%!¬$Q+PHKαq3HD⊂πc⊂∩c'⊂$U)FEεBαλ
(1m∩$*P∪,∀∧D$5H
P ∧E@,U⊗@I ∃(
V2αRf&≤ E↓∩$*P∪-$∧D$5H
iH⊂∧DEV5H
4R4)@70∞dλpπb"H εORFILE ARRAYS WITH A BUFFER
~∀4⊂ ∩∩-1V¬@!~¬-≤α∩H
¬ ⊃⊃
@!*c∧B]cbjλ P'"Uβ BUFF@$A1⊂∞ε⊂p¬α↑ε$~!αzZB∧St@_YβcεEαP
RST $DET¬∩4⊂ ∩∩-1Uh⊃⊃⊂K\(~4L~λxU"k∃X4D
$λe∀|β(⊂JXQQ4HXλ⊃R)HαFE_L⊂∧ HRRZ @)PY~λtB⊗⊃
@
!⊃L, ↓~pπicQP⊃∀*∃∀@
10
∪'='∂
A→ :∞u!"Q⊃⊃∪@8pπaBL@
A≥∃1(A∪9!+(A
⊃β$~(∩A*∃~Q↓∩$"P∪,⊃⊃∪@906( @"bb5'P#bU⊂ ∞EW BUFFER~∀D`@⊂&Lb∩ ααJBc
λ¬∃¬⊃ ¬_@0% ILD@∧A)(αb~ :∃↓"Q⊃Q#αA~Ddtd
Be%J7DL@/B"'dg⊂$S`cbP∪dπDE, W@⊃βPA3∨*↓'~α&Mααy∧
λ⊂gUP#bj∀F@
1@H∩A∃U≠!
AQ(XI ∃( T⊃↔4L@H⊂4hddP&SβDE, A @≥,b1α~4∧dMJHU∀
it`$⊃tP*H εE∧R))`∀$@ 32P_hαC"AQL¬]@; READ IN A NE@.αα∃,hhU∀dβp1∧∧λεP)Rdh⊂)⊃h∧U@%8A∨9¬~V∞∞-~M " ir¬≤αr4∧ pπ⊂"SβF~∀lp
mα-BB,8¬∀dλ4TP+∀∀⊂
)λ$g⊂ T_V⊂*∃)`i2dε @(α↓5αN
2⊗Mα ∧∧@Qλ⊃AQ@εE↔∀bbP#∀'iP∃
λ∧@∩∩-1V-hHH$%@9Iu≤Lhpλ
;30SiD⊃StDλα)e@:JL@⊗@\b&NBαD¬∧
H9hRHHU (U1NA~∃0 dλ εP⊃ 1λ⊂∀!→T`:β"P" εB.BT¬ε@"α@
!Q@∧`b⊃&P",F.F@!=&Q(R$p∞@-λH∃$(⊃R)Hαh'iH!( NUH¬HA∨AYβ⊂∩_@+5⊃4aQ@∧ibU-&P#⊂α.BVC(T ∩~)∪
≤A%)&@2Xh ⊂LXε⊂i∧∃∃
Aα@
MLπ ~∃∧!24%h$4bα⊂
*
DXBYT@
Aπ=+⊂~PhP& ,zhR¬"β⊃PE@$a(∀∃*⊂ ;@¬3)
↓!∨&u"⊗HQ*ELL8⊂'∧W!`S&⊂ ∪ILπ ⊂4PI↓:2⎇~∃↓E εβ@ ¬∧bV!`λ T,TT
SUB↓λY
∧αr∀S
∃¬⊃ ∧]g⊃c`j$Uα@
A∨_A≥+≠ %&A=A¬3Q&A∀*ε⊂4PJ6 =iiR∧λε#!αC@≥ ¬¬"Hβ"B)Yβk'&H ∧ →
λX
Z~BQ$Q+PHKαq3HD⊂πc⊂∩c'⊂$U)FE$Q'⊂"20,[
PU@'!∀A
E↓2Nε3_$%@8∧∀HZq0 +⊃P OW T@BEE AC'S
α HRRP∀@DY→:T20∩EE⊃P@!33uHTK⊃H↔$a(
*⊂
IOVN 3 →
λX
~bBQ$Q!∃≤La⊃⊂K](X∀"∧∀λ%,4hZ$5,AQ LH@λε5⊃P@↔⊂α@
_QPR~(Lj6@4YPλε5⊃P@↔⊂dεT(T) 0↔≥"0≥∀Tλ4`:αg"∪βF BYT@&AIβλA%_ α~Lb∃αx)$,≥AQ L@3uQ)Tk⊃H↔!+!J*⊂
IOVE @λ@1_h &BαZ4DRλk¬αe*:C_h+Q⊂K\YhB∧|d ∀4rλ@F↓α@
IFL∧Aλb@Y6~∀%≠⊂≡Z*αRQHed9⊂3@∀∃∀@
LS@⊂AQ(Xdn4⊂
&~*αNε&bb`_h!~Ddtd
Be%J5d∧hQ!∩∧U*:Bα⊃⊃5FZ@εE∧R))-⊂∃*⊂FB,¬⊃λαBQ$↔9T
L(T∧*1QQ*$⊂∧ iH!"bgλ)"f'PβATED? THEL∧A
∨H~∀&lzP∃≤α(⊃¬E⊂QKI→βjTPβE ANDCAB↓λYQQ(R$KZRVJu→α>~2α∃,hhU∩l→`*Zq(⊂I~α⊂ g⊃⊂ b+⊂dεCES BUFFER~∀%'↔β!≥
@@" ¬⊂HKαpQE@$gjP∪h¬S@(αα∀(⊂R*D
@≤H εOR↓)⊃&~αR=ααyu∀XQ!∩∧U*:Bα⊃⊃5FZhβ"A→3uTi∀∃∃⊗∃*)W!∪F@
AL¬∩∞iαRQe"RNε⊂¬∧
∪∃⊃∪@:α*`∩N OFF ¬¬+
→$[≠=(
,D λλ$j⊗⊂⊂αUT LEAVE @UF AD@ $A%_ α⊂hP&&>4)αRQd10∀≤α⊂3E
λ∧FEαd∧SH↓)(@1⊂εphPα2∀J$∃∃⊗⊃∧¬∃:$p∞⊗: ∧∧`8H∩1HT∀p2)Aα@
$DEPk⊂π M⊂ε'P∃*⊂(IL∧@`X$~∀&D~QαR H$%@8∧Q(_λ⊂ ⊂∪α@.A +
I
+_~(∩A*∃~Q↓∩$*P∪,Q⊃∪@:u0phZth#!)`RDPdεDCMI TT0Zb4PJb>I¬"Q2mβJ5$
Itβαdα3kHYβc⊂≡y∪≤@@Xp~@QQ MD8¬~Jβ"B$ TTu∧ 23q**@∧D]S'iblK& ∂SEY
∃∪→_ αNJ12lhP& ,zhR∧λε#!αHED!(R4PJ6 =hT∧"c%λBHhαB3)@hεEM↓λY
∧αr∃45
BHhαB2JYαh#@ D,$DET∧k~~):∩%\*0∀λ∪qD 1S@⊂∀`dfεBαX
$KZ⊗ 4D t2∧α1SDλα_XεBαIFN↓∪ ∩M\!IAA→%,@4∪@⊂⊃⊗∩""Uα5M 8πλA⊃=→∩Mα∩2>Ql*0≤2X∧ hPα(∀ @h⊂#,∀⊗"∧DNβFALLS THRU TO H@%
↓_∞ 2λYt2∧9yd$MI→t`!α@
PLπ!)¬↓0$⊃↔2∧h@λλ[⊂∧j)H+` THMP(AM↔∪!∧J0∀c"C!$c' D10*<1('β%_p→2Xh ∩⊃⊃5FZnH∩
*T¬⊂*∃⊗#!.H@λQPR~(LBJJ@)PλλEλ∧ ∀T) ∩wM)∨%
↓∞@-*(T`*λ⊂U(hβ"`∩↓β $αα& 2λ9t`*∀Ss∧λS∪pi1 ¬∧j∪-⊂",-1~∀%β λA⊂Y6`@8εβαbβ7!Q@∧j&∪α@
A ¬E%%5h$`!α@
TLC D,0700 ε`⊃Qβ4(→Yu (αfP"_T ∀T) ∩w
_∞ 58¬∀JXuλ∪HZβP!(λ εOR↓
V~4*H (αB3)@hεE D,(D)
λ∧∪)→9_ αQe"RMh)`hPα(∩)Zαf$P⊃⊗~FEαd¬OVEM D,2(TT) ;S@)=%∃αt*P~∧+~D*∧9zTe" →dM⊂πP!∃c#"i⊂βH∂:αJ$`9α⊂
BLLππ,hQ`≤4→IB¬$α⊂ *H* ∂ $D@,@,h4*@Q↔4,@Qλ∪hd⊂∧c'λ ∧10*<1-CAIL>
$DET∧k~T$∩∩%\j0≥∀T ∀`*∃0
Tπβ&A=↓)β∪9λA¬dA¬+
→%λαα& 5λ¬5↓QR1SDλα_X⊗⊗β
∀∪5≠ ~∃∧!24%i∧,"α⊂
)
∪≠=(
*λ@ε%⊃
"!↔pπ ∃M@¬⊗I∧z→αZb&⊃α∃JR-1Q L@3uQ)T⊃⊃H↔!+!J*⊂
] 0↔9λA>2α&~9∧!E@4Rr⊗ %8UE@1 ¬∧fSβP
AQ(Y
∧αr&
AE!$4!→T`:β"f@ TT →
λX
AE!$%@9→dM⊂∧`f∩m"P!∃c#"iλ( ∂INT@$~):∩`.,r⊃αxdα`(αf)bCE POP F@1@Y⊂4PJ*JNα@λ
t∩L!⊃,¬`∪KIP @%∃)+%≤β_∞ 2λ∧u(ab`∪S
~∀_vI ∃( Y↓$"⊗@3h¬`⊂ ∧EF6A $DET∧m∧@⊃ ⊗Z,~0~αHHU (αc⊂∩⊃+"c_H⊂∧DVEF0
λ∧⊂∀'0∞gP+i T⊂*`⊂, W@∪) A≥8∧∧9⊂4@⊂∩dε @)PX ↓ααZ∧$
HTα*⊂1q)@*fQ AH
λ@ →∪≥9+⊂∃ bαε 4DλT9⊂πFEβE∩""Uα62 SEP >h∧∧L@R∩0I~α⊂∧DNβRECOL¬-∃!↓9Vdz≤\α(∃ @P OCKI~∀%'↔β!8A∧Y
$X
~BQ$Q!∩∧U*:Bα⊃⊃5F@+FE∧R)&&@ D, ⊃$~∀&lzP∀(⊂ ,Tλ
(MαVN $∧5E¬J4
M#"A→Tpλ
E⊃P!SβH
&~(∪!+≤B)αAdr≤@pπ ∪
λ∧∪≠∨Y
AεY∧~∀&U∩NA↓$"P∃¬4∧β!↓α@
$DEPm∞βP&*Vmα1α⊃Lπ!)¬↓0$!Q hRHHU (αc⊂~ UNLOCKI∩∩$p∞∞yXR∧DX∧Q$ qH⊃)@cαE∩⊃+"c_Nα MOVL¬∩A%!1DQ!∀U,XλR∧αβ⊂t Z⊂¬∧DNβH∂:eIαB⊗,Z& 4uD¬≤Z XU∀3⊗(
(5∃4I@⊂∩P⊃
λ∧∪!-~")αα¬D,@qB"'i` GNAHλA=⊂∀λLRJNQα"∩-i_4(Hα.tHZα),P∩c⊂ ↔E SU@%Y∪ ~∀hP4)∩%2⊗→Aβ!∀U≥∧
"e∧IH∪∩kQ⊃∪@83qHλ_U⊃4D
∃⊗4h`g'$SαC
JRSDI∩Z,1D4(hP4(1m∩$*P∃≤h⊂α$⊃1Tε∀ ⊃⊃*@(→⊂∩⊃ k "H$g##U_⊂$g⊃!bj $@ -→U0Aβ≥→→5 )∧J24J[ hPβ"Ng]P&'Tdg#@⊂βKDE FOR "$@EFI@π
E∪9∞AαAM
α
∀4⊃∪
≤ααN~¬eX4)∩$*P∃≤h∪ M¬X∧r∧λT⊂λ⊗⊃∧@]iPhεE D OVER CALL
∪!U'⊂A 1α~∧∪A+'A@Y∧4PJBVN@∧¬αd1Q M¬X∧r∧
λε iFA∧h∃i`⊂( i→ CE SETZ C, ↓;NIHλAβLA∨ A⊃!≥⊃⊂~Q∧
J∞LhP&*Vmα∃α⊃b"∩εZαλPHK8∧⊃(Yp3QeD⊃21i
λ∩⊂)Hα""P∃$"P)Q P"$Q εE@%∃_
R2Hh &"∀b`∀Jλ¬⊗∀eW ∀YI ∩w]
Aβ%∀A >Lr≥ᬬ"f$Q$D$5T'∧h ∃SHJ @,ISTCAL ;IL¬)∀rε!α≤2¬α∞b11α≤2¬α→`λλ~L#"DHα"c(≥∧h'T⊂(⊗ T→ FEαh'h⊂∀⊗ i_CEh'T⊂(⊗!CE∧h'T⊂(⊗!βE POP FHP,D
SKIPE A↓ 8πβ→→=*A:L`4(∀ %≥α
@λk⊃UL!⊃,r3J:4Q(λi4∧'*SP g"λ#bj∩dεTO TT
JUMPN A,POPAJ 8π∪A9≠∀[≥%_A)⊃∃_ α≡⎇!αNyXU$Dα3QeD∀sh
(5∃4ID∩5β!↓33uI@$P ∀T,1~∀%∃+≠↓∀A⊃J u∧!⊃∪@9βc&,H("beRe#V⊂∀eP&bT f,P∀ j*i∪α %!
λ PESHJ @ 1⊂≡_HI`≥≤_ydBλYt0H!~∧mα
¬Dλh!→%∃≥D∧D$5R0hQ .tHZα),P∩c⊂ ↔E SU@%Y∪ ~∀hP4)∩$*P∃∧TεB)Yβk"dH**⊗)T↔+gfBDXCHEC@⊗AQ⊃∃ααy∧L≤α3jλαi j∩dπ@≥ε↓≠β'⊗αα~>I¬"f&B,*,4(Lj6@59∀¬"e9ue$M↓Q M∧IhR¬"β⊂∃
Jp4@∀⊂TD]aPdε IT D@≡A%(}~∀$A∃%'P@A Y b$KZf⊗Mbα∩=αM!α$α4Q(h∧@→24⊂λ&6⎇2N%α ¬E≤@iP
,RD@ ;ELSE DLεA& ∧∧
~λ¬⊗)∃βjg*⊗d@
MH∂-$Aβ$bαa"¬$HI`≥≥J(T@(∩3Dλ4L ⊂⊃'i⊂$Th∧CAL
∪!U'⊃)¬↓2&NαH4@⊃↔4$zλ¬∩λT∃⊗2!Q@∧e*Sh"P K⊂∧DEVP2∩∩m⊃∪(A∃_∞_4PJBVN@∧¬αd⊃⊃∪@:Q31)XQ0 THE CHAR WE WERE @⊃β9 ⊗⊂hP& ,zj4J¬EJ4`5β*g*αDXNOTεA+≥Q3∩A$B∃α∞D
Jε∞αHU⊂@ ¬∧fSβP
∩↓
"α⊂ ∀BDX@)!
Aβ%≤A∪&AQ⊃∃α≤BεJε≥"⊗HQ!∀l@uQ(λ∃α⊂
$αBA$⊃↔4<-D
DD(⊂ c⊂P iP⊃$i)jλ i#FBα P@+M⊃∀Aαb&NR≤
0$¬\"0~¬IλR¬,hK∀HhαB4 Zλ⊂λ⊃ ∧D]Q*b#bH* λE @π⊃β%¬β ∩⊗⊂∧∧
~λ¬∩λT∀Q5
ZSQ1∧
P3∃(Q ¬∧e∀)j⊂∩⊃ ¬V@2
P~∩m⊂~⊃∧J~9αα8dλhαC"AQR3QHzα_⊂~ PUSHJ P →∪9
→+Ph ∀Lhht-∞B4i94∪@⊂⊂i_V+∩dεFILE 0↔∂∃(A-∪9
∪→
↓∪⊂→α
⊃D4!∀∧U∃8¬⊂∩dεFGT0λ
(Mα0≥∧αH∀¬Aα@
$@ -→U0 hε¬*N!ααb`~$HZb%@ εE$SαFLZZ8∧∪'↔%!αA ¬E@;tr6λ$j⊂.∩dεFILE CLOSED!\]]~∃%_
4J[#@!33uHY(⊂
,Xπ'β1 ∪ ⊃αβH$"λ¬P)J1(⊃I@i⊂$g⊃$f"PW,¬~∀%!+'⊂ααA2∧hP& ,zhTJ∧∃JE∃-I↓⊂K\α3QI→α"P$TP P&∪βSE@$αλ4(_[∧9λ⊂ ⊗∃αINFIL@
4PJBVN@∧¬αd8∧∪jλ2C"A∀1P0d¬∃
#!∧¬∀_w¬3QβεA5↔⊂~I4→α6.α
HH@εEεBαλ
*≥*αRR`JJ,_IDM≥ED∧L@4∪∪hHαV⊂&Pe`∞AM
~∀4⊂
@~HT≠Tπ5
Aα@
MK@≥⊂εd7@∧fgUα@~APY≠↔≥
⊂⊂∀!→%≥αλ¬∃¬I4Q⊂!Q@∧ieRh FE∪ei≠"⊂α:∪∪⊃!∧A¬e)⊗ε~b_hαB4
Zp∧%⊂∀⊗ &eSαC@⊂~(∩A*∃~QαJ$
⊗ 4AQ M≤βrQhT⊃∪):MQ⊂AQ@∧h*Td⊂#,∀⊗!,j⊃`aFEαh*`∪HJ F@1@Y% αβ 4(→*5α¬J@ ~Q⊂ _CE POP F@1@Y¬#)∃βε~∀%'⊂≡(⊂λλE⊂εei
α@ ∧~(~∀4P1nJ,
∩2ε≥!αJ∩eα⊗-αα(De%→∀¬∀∧JK∪
¬(IE%K4
$$eK↔∩¬∀IJEK∩λ∧Q J⊂¬P⊃R@ +9)3∩AIβλmA$mεD~∀4Ph ∃∀X_DdM8@∞AQ@∧e*Sh"P K)"&_Lε@
MMP
∩↓Y% 1)3∩~(∪⊂⊗>4*%α
e∩∩2Vu"f$Q!∀U≥∧
Be≥λX4)3Qβ!↓(λλε∧⊂+∀HI⊂4QaQ@∧P⊂λ_⊂!,TYIMAL∧⊂∀!∀ααβ∧λ2e,jK∀L@03C!∧fgk⊃dP @,R@@∪≤4⊂λ&BαZ4DRλ∧
(α`b0A
∀∪M↔∪!
↓(Y% 1β%∞∩$p∞J⊗b2eα⎇*≡"Q¬"0~∧→ID`:βFE∧H!`dgλ*⊂-D∩∩`-∧ αRJJ2&:8∧¬≥∧_8PhPα(λ *Tp
UH
¬∪9λ⊂∀!→D-∃$
$%∀T∧"!↔u∪sd 03V$λp∧ i∀FAεE∞β;; READLISPλA∧*⊗-αr⊃αRLIαJ>-"& 4X∧kD∧λ∧!cα $DET¬∪π
$Xλ (αN`≥Nβ SAVES A1 2
d
IJ¬X∧∧9α ∂BBERS AR1. RATURL¬&Aπ!β%βπQ$A∪8A)(\4⊂⊂∀*(De∧Y0∞A→TTu∧
Q∪∀ 6 ∧D]T TYI(
bA%&A
∨HA!-∪⊂~≥αBN⊗∃¬"f&B,*-$Q*$$eK→∪@!4⊃4i∧∀⊂!Q@∧ieRh ∞ A,RDLARC
JRST RDLTY2~∀%∞ε&p∧∧
Bβ(λFBα LERR @%⊃%~f∩$p∞@$yt∧4
tλ4D
*1P@Lλ∧TK⊂ iλK∀ TFBα MOVEH
AβHbP∩J$bεJ≤hRJ$JK∪Pα2∪
+H⊂ ⊗
TFE∀ ∧DTY3:∪∃M A(Y
⊃≥,@λh &*∃~QαB⎇αε(∀Ph ∃∀IJEKKαB4i≠⊂R5∧⊂π'jλ iadRP!d T⊂h
RDLTY2: HLDOS RDLAR@∞~∀%≠⊂≡Z,IαRQc⊃AL$KZBN⊗,"0~M8∧⊂(8#"B)*Tu⊂∀'h eβE
RDLPKDpλ&N\JB*λ¬∃¬JQ∪⊂*(c"B$λp23D
∃&⊃ ¬∧Pλ%))jλ&Xj*∀% ;RATURL∧@@5α⊂λλitH∀λX2r3Ht⊂5∧ ¬OF"
∪!U'⊂A 1α~∧∪!→% )∧ 2αJ$bεJ≤hP&*J≥!αJ∩e"eL$KZ⊗ %8T¬∀
JZ$b∧9λ∃∩bλ*U"∧Iyb=αλiE-≤↓Q hU(IE,uK→∪@@ B3)zβ"dP∃*∩∀ JFA∧e∀h⊂"ε⊃,!gg∀FE∧d∀)(
B,RDLARC
PUSHJ P →π=_
L4PJ6 =hYR∧
J(Dd
(qP@M z∧R¬¬AP@!α@
READ6C: PU@' A¬ "α¬Dλh!→TmQ2(
E∀MPf⊃ ¬∧h∃i`λJ FXP,MKH
$m~∀&≥*↓α~β
αe∪v¬3λhαB2J*uλ∀I→β*"i∪αλ
(hRIZ
α⊂∞A→3⊃⊂D
∃&∃⊃P(
FA∧e∃dh"P∃*⊂CPLπ!(hP&ε∩$IαRQc!@ (αB2J*uλ∀ @h!_FBαλ
(hP1nJ,
⊃" ~$,D ∃∀01_H'i"`Q⊂)"`Q⊂)"`Q_⊂ ∩EADS R@β M(⊂∀!Q%≥0U∃ A4Q0(D⊃P
g⊂βP &|p4(Q!P@'nh
@ ********** H@∪%M+ ∩∃¬∩⊗ε∩-⊃↓))RQ)))RQ( (αTQ(_ ∞B)Yβk"dH*⊂0
λ∧∪∃%M(A%¬λ⊂∀)~$,G!∀l@uQ2$
λε_εBαIREAD10∀∪M↔∪!
↓)∨%¬λ⊂∀!→$83∪⊃Dε-K⊂
ItQ0(Aα@
OREAD: JSP D,INCALL
SFA% QOREAD
SFA$ @7M~U%⊂XY:X1#⊂≡J,
⊂ (αTQ(_∞B3)Zβ"dP⊂T∧QOREAD ;EH
β¬1
A))dA!%
5'πβ≤4⊂λ&"α)Dj∧∃H$5¬(JhPα33j@ ¬I A,RDIN
∪⊃I%4A ¬D(β( ∩DPλ
(LRV - `λ
E∀Q0(Fα.si@dπ@∨!LXAαAI
P⊗⊗u"Jε:α@λλ`f&⊂∃'P ∩EAD
PUSHJ P →%∃βλa∧$p∞@$βt)Hαk"fλ)"`bβE HLLZS BFPRDP
∪'-∪!αAλY% ¬-4
∀*ε⊃Aβ!∩¬¬X∧r $∀∀HYtQα'i"VbSαTRANT READλ
(M"2
αα@ε&,λλ_α]`OSIH
∞AM!→&≤J0∀h∪0(i'iP⊂h∧ @)= A2-2⊗ Q!∃$d9`λ
EL __εE∧H%))jλ)"`b∀h∧ ;JUST GLεAβ%=+⊂~⊃∧
0∀λ⊂
)⊗P c`Rdε~∀4⊂
J⊗"MAhM"2:∃∧⊃1EAαεββ↔9∀2¬xT∧,@Q⊃1∧
p∧j$λ P ⊂SEP ≡5'!βπ∀~∀%¬"2:9∧⊃1Q@KY↓!Qαj∀MD
4-λ∩3D
t⊂0hT∀pg∃ hλ),
∩@↓)→:p∧¬"cd∧α'P ∂R↓∪A∨ ∃⊗∞α@λ
@`ig'T AN↓β ∩yP↓Q@∧P⊂λ( ∂PJ P _∩lA)",qα$βh∪I@h∧ BUF@
⊂∧∧(0r`⊂⊂P!d T∧¬α;lp
αJ,
∩MAβ!∃$dβS@⊂⊂α,100000 ;IF @/∀A⊗:$*⊃α↑M"!α¬α∩P≤Dα5⊃%Zt⊂0hTH⊂rλ~P0uλZ@εE≥Nβ; TL@≥≤β(Xl@$p
αz λ _H∪pI(αa`∀Tπβ'≤α:Qαεpεε@$βs ⊗βE_ 6βY%↓¬α0≥∧αH∀¬A,¬P*∩ ¬N DLεA:⎇!α
V42⊗Iα∀
≤Zλ⊂λλd iεBαλ
(LRNAαα
*TPu↓↔pπj$⊃i+diQP
@+M(A+≥Q3∩Aααα≤D~(∀:α"`∩
λ∧∪D~!α¬d_4(~
U≤DαH∀¬H∃3U→303AQ@∧e)∀h∧ CREP (hP4)@8¬y${y⊂_P9x ,icing hCGβ∪=βπα@λ∞Mβx⊂ ,evel. @∪L↓ShOF↓_
&1;READ0B RD0B1↓%⊃B⊃∩¬αJ ε∧*S(∀J@)!`∀
λλ
)[Y`~ααJJE%H∩⊃*(αP$jλ$iP#⊂g)V⊂∃$"P!⊂i`aP∀ `b"T⊂⊂
****~∀4⊂
J⊗!B HLBJJ@)Pλλ∃α)"$SαC@ ;R@βλαj& 2λ9∧ThYB∧4→JD-⊂Q*$#∧&∪ LU:∧¬"e*;¬≥ Q!∀E∃+$∧
Ei_$
≤QQ$L4d
U≤,HZ5~e1Q L≤→→b∧
J~$l@03C!!(∩TJ:λ⊂QελTS#!+ ∧D]QdεD OF @∪
8A+'1'&~(∪'π∨Q(AαY→0∩(Jα*JN ∧∧L∃8Z%⊂H!→T⎇∀T
E"bλ⊃⊂hPα2U)Z⊂ε"P∃*∩$a∀bi)εB∧a`dS⊂**,200
BRST ABSERR
IFN USELESS( SETZM RDROMP
RD⊂@2A: MH∂-4A)(YI ∪¬&4⊃¬∞H%'#¬∩↓)(Xb@X∩*∀9⊂&6⎇2⊗%ααJBdu(@&λβ&εEαfgk)RP*⊗→B]j'hλ&"`⊗EL, FIRST OF @→∪M(A
→¬∂&~∀%!+'⊃(A Y%⊃_∞
)λI`≥∀X_B∧|βQ( @a%"aU∧@
HRRP∃&↓α~(M~⊗Bj⊂∧∧5α i1
∪≠=(
ε%∧
IJ¬c4(~ u∧Rλ∧↓Q@εE$Q'⊂ ∃SEH ≥→2l4U∩⊃B
∀i`&6⎇2⊗%ααJBc¬aP@M8ZDl@(⊂ "∀'f`⊂
λ JRST RDA J∧hRt$¬\*0∀λ∪qD 1S@⊂∃ibf"TiFEεB)+ ∩CT:↓MOT¬∃α~bP∃∀X_E$)HPhPα33j@)` TT, ≠→Iβ ⊃
α!P@L8→T*∧%H¬%%8~"D~⊃Q Lx)$`$∃∃β¬@⊗XFEαe*fh⊃bP"* i→DNβBLAST; -↓%ββλ4∀∪≠∨Y∩Aε0Q)(R4⊂∪∃%M(@A∧$~∀_w%¬λaαAI≠π$ααJ,8(B¬∀Y:$#
λ∧Q @a%→P∀" ∂BJ1 RDO@¬∀A∀"0≤∀&↓P@@ ¬)"Pb_ Mαh*`∪HJ P,REKRD
λ TLNL T,4060
RMCER8∧∪→I$A% I~`∀¬]∩⊗ε⊃∧jε∞Jzα≤@qP
"V*⊂"i∀'iεEαh#h%λ(⊂
REKR@λt∪Mβ ~∃¬∩∩&:≤AαJ∩L∩L4(MαVNαRαA2J,
⊃BλHh ∃∀Y:$#αB4J:∀H∀HI0Th
(⊂3Pi↓α@
POP@∀A@X∩(hRJα≡∀QMhε$b2*λ!E∃~Xz5K8¬⊂(¬∀pλ PbV!gSd¬A
BRST RDO@¬∀b~(∪!2tqαQ⊃λh %αα u∧Rλ∧↓Q@∧d)∀-⊂ ∀T,BF@!I ~∀%∃+≠↓8A)(YI≠π∧4⊂
J∩|∩)E@!→%≥αλ¬∃¬JQ⊂rλ~@""'U∃∃⊂∀ ¬AD↓_∞ 4T t)Q0u∧
Su5 →β"P∃
∃
RDOBJ: JWTN N,B1_∞
λHI`≤@pRQ(~α⊂!"Qdg⊂!R i⊂⊗H''j USAGE AT TYIPEEK
α JRS@(ααJαx)#_h!→TmQ2(
Jλε~λ__⊂⊂
λ∧∪∪∨I~A)(αb∀T⊂ "∀∧@
TLNE B,RS%MAC
JRST RDOBM2↓ ;MAC@%<Aπ"
⊃0⊂@ ¬∧j∪'"P!))RiPβH∞~∀$A∃%'PA% π!_
D⊃↔5≤LhyD*∧9λ∃∩∧βpRE@∧¬∀∪9(∞@$βQ(λ⊗))W∂&*)+XLT>
λ∧∩A∃I' ⊃αα(D@∀∩α!↔tQ∪h%⊂ ↔ILL EXIPλA<JR!α|∩*,8¬⊂∀ ¬AD
λ∧∪)→9
A∧YI&K→ $∩w&p∧∧≤4λ∩b∧→hB¬∀8¬⊂⊃dεTRY OF BR@β⊗α4(∀ %∃≥D
$$e8¬α!↔pr⊂*(0p
"T⊂ N↓βπεAλ~∀&u:R:∃∧⊃2JMt"&≤4PIα*J≥!αJ∩u*44!→e :α ∞E @∧Y%&9'∂~(∩A*∃~QαJ$z∀Sa⊃∪@5hε⊗FB∧fgk⊃P i1,B~∀%∃' AQ(Y%
⊃β$∩$p∞∩⊗4
V %D ∃~αβH∂λIu∂C!∧j&'∪α ARDY%&]A_
P4PIα*J≥!αJ∩|∩)@$KZP≤
4λD`:α*"bλ( diλ( ∂INT @∨≥12~(LrP≥⊂π"P⊂α,RS.DIG 8π∪&A91(A
⊃β$A∧A↓&<JQl4PIα*J≥!αJ∩|∩)T⊃↔4L2λ∧seD∃∩⊃)@⊂
@+M(A¬
↓
→>
"& 4t e,@(⊂siY3Q`⊂∃hεE∧U& ∞N↓β$bYI&K ∨P~∀%∧RJNQ¬∩∩)JλH%n_d∧`)uλ⊃ @h∧TED PAIR, THEL∧A)%dAβ→!!β¬$J_h*(D`8RL∞A~α NE AR11%&K =(∩αv(TTA =(A&~α∩>R$*⊃6BJIα∩⎇!↓))Ph ⊂MIId*¬EF⊂hPα(∩J*uλ⊃*&@εE∧U& ∂E T,4 8π⊂∩≡≤)α&→∧
2J⊗"eα→`λλIu∃⊃(D∀⊂2*!αA∧P∩))b ER2
P@→≥8A(@1⊃↓AAAα↓⊂K]9t∧<-D
4,≤βsQ∧
⊂4U∧ qH⊃ Zα*"bλ( diβE JRST RDOBJ ; BUT @∪↓⊃+≥⊗αaαRλYb∧∧βh∀iYαbP!R ¬CKIL¬≥α4JJNPhP&BVα9∧R¬¬J$%≤αpdβE PMP@∀A@X∩αw∃_
∞≡,rR-(XBα4T∧λ4∧$jλ& ∂OKIH
∞A1∪↔
AMπ>t 4(~IE@$∃
↓⊃ ∧]@∀ i* LπA =([!β%$A)≡↓'∪∂≥¬_A"αYdZ∧YhDL@Qc"A→TTu∧
Q∪pI!αAεEβ≥i"% P ∩DLπ¬∀j↓%↓∂¬(dA% (eαbAI ∨¬∀XA% ∀YαA% =
)]∧*IEαα(D`8RM
(∞⊃`⊂∀"≤'εB∧¬∀~(p
mmp∧¬ 95∩⊂⊃ ¬CIMAH CYLTAX↓_∞ 4K∀¬%-)j2∧Lh¬∪d
psk∧ 1H⊃I@d∧DOWED BY BREAK
;;8π⊂≡I∧∩⊗≡→idL@Qh∪hd⊂3∀ λ(∩1DλSs∪ @hπED↓
eαbB"∧hRJ$&(∪@!5∪∪ID⊂K∀J4/⊂TI5tpse:βi`⊂+LP ↔ =(W% -≠βεWM→&G∀∩5x4PJ0∃=Iib∧∩J*2c@∀∪U¬84T@∃Tcg∃l∪*⊂LTR:¬
JRSD↓%∩∞DyP (αB2J*uλ∀HILP _CE
RDOBJ58 TLOA T,200 ;FLπ ⊗: ∧∧4dx~DL@Qh∪JY εE)⊃'a%→∞α TLO T _b@```∩m_
V5∧26J∞,!α↑~Iαα∩4!P@*Q∩LH⊗,¬∧e∀h⊂ ∀T,IRDA
∪∪⊃!∧AβHbP∩hP&ε>~α⊂ (αB2J*uλ∀HIU3 →βE
λ¬% ∨ ∀ld∪)' A%!2&J$λ%nBα)t84p P∪βBJ BEG@∪≥9∪⊂~≥¬:&@$αλ
d tH!Q@∧db∀!⊂!,@ε~∧∪M_∞Mα h ⊂Lh¬u @ ¬ B1%&@:bP (αB5 Ih⊃βεFα.eQ B2J:λ⊂
*)"!d⊂iαE∧R))j @RDOBJ8 ;CH@π⊗αα~>I¬:"&R*:M↓4 ∧~D
U≤Lhp¬∀β
p∧ tH⊃ yUλ⊂IZ⊂∧"i⊂*`∪IL@∞A∀!b8∀U∩∩)ZP&RIhR∧∩J*2+dX_2]∃¬9Eα]89r]≥8∧∂AQ@∧e)∀h⊂!"∪a%~εB∧g+j∪'⊂!ε∀)S ⊂NT
∀∪)%'(A∃$b4PJ6.Z*αεIEd⊂4(→*5α¬J@
(⊂r⊂*!"B5 IQ(∃¬Fβ"B)*TqλZL#"A→TTu∧
Q∪pI&".jehα⊂⊂"⊃a` MAL FLOAT@∪≥≤A¬∨%5β(~∃I ∨¬∀\pλ&:="2*λ
*iQ∩(q B2J*uλ∀HIU3 →α]P 9⊃π&l
1α∩L:&@#aQ M∧β∪h
ELα'U↑ f∀$ P!R i @> OR +<@ "αHT`(α"b AH !⊃∧|⊂∀λLRJNQ¬∩∩¬DhP4(_Z#Pα3⊃**H⊂ "∀&YεEβE)"'PαJ4: TL@≡APXd`∩m'∪≥∂1
Aπ⊃¬%α@DαY∩∧βt@∧⊗QεEαe))jλ)"!%CE)"8Tεt&u:R:∃∧⊃2JMpπD$Lu9E%∪βC"A→TTu∧
Q∪pI&@εE∧R))`∀↓%∩&h⊂hU(@∞ @≥ NWTNE B,RS.q'∂W⊃∪∞@.e"I.be!x (αB2J*uλ∀HIpRMaQ@∧e)∀h∧ @%⊃∀mα~(~∀_w% 9+∩A∀"2V5⊂∧¬∀∧iP&∧∀Q∪JY,(∀HIU3 ≤λ)"'*SYP ∩DLUM) R@@≥~e
A% 9~s∧AI ≥~s~∀4U∩∩:Vhπ LU:∧¬%"β∩4HH ""!↔h¬∃∃λ'*fa⊃i⊂ j∪βH
@T(T∩¬%⊃→+~dh~∃∪
∀A¬∪∂9+~X∪M!5~ααεIDKZ~2ε8∧∧L@Q∩0h~⊃0h uh∪(→T∧P"∩c`j)H!"`→OL@λA∨Y%
→=(4*∀":5EβP&N⊗αK$$⊃K∀A↔pP4hT,D U30HZH∩3D
Kλ⊂H~q(∩(λ4q( →β⊂#εB∧j&'PP*⊗~∧¬αRDNUM1~ JSP TT,RDAHAR
λ NGTL¬∃α⊂bJM~α e HαB2J*uλ∀HIU3 ~α]b"aRd¬AL POANT [WITHOUD↓
J⊗Yα
&"αN⊗Rhh &N⎇~2¬α 4(→_E∧∩λ!D1"B3Jzα#"P⊂⊗))W⊃$cFEαe))jλ)"'*SZ@
TLFE T,3 0 ;ALPHA CHAR CEEH4PJ*JN αJ∩~αYS@hαB3JZ⊂π'⊂⊗))W∪*)εEαe))jλ)"'*S[FE∧U'∃⊗_X__εE∧R))b∀"# ∃M4 αNW% MOVEI @)PXQ∧R$p∞≡⊗ αε"R∀
0$
u9⊂&"∃∩`∩¬JAD! SUdA03Q ∀∃∃βε⊗β[FEαa`dfλ**⊗⊃_DXALLOW FMR LOWER CASE LEP )I&~∀∪M+¬∩AλXEBZ α~∧∪M+¬∩AλXEαZα⊃A5Eαp%n∩-"RεJ~αεJ∃¬~VBJλ¬T$0r3(→∞C"A→TTu∧
Q∪U)V ".dλ/($¬eλ⊂O&⊗+Kλ¬eKKλ'αYZWβE
RDNUM_8∧∩¬≥\J∪πβ%
AαX
∩g-αBεI∧
:" Iu<-$λ4
≤TλR∧IIu,,AQ$u:Q_4Ldλ∩b⊗Q↔4m
:@λ
I1⊗(
I⊂4h
Zλ⊂siX1⊂6!QSUi↓~⊃∪Q$λK∀TdZt6α'86⊂∪ihαg*⊂∪βR (SOIEDAY) STRING
QQOTE
∪∃I'(A%⊃→~qα4⊂∪≥/Q→≤A∧1%&]DbP4λLRJNQ∧*IDQ*$$uYRs@!5∪∪HT∃fvλλ∧NβEXDEL@ λ↓β⊃!⊃∧Aπ⊃βHA'8~∀&U∩NQα-⊃D4λLr↑B~pα↓2J~rεJHhP&*J≥!αJ∩u*5X∀PJ2↑Rt)α 2∃→:ε2 h(&Rdz¬αQc⊃AA@KZ|4(M"2=α"aEAAI`≥pQ($: ~94M∧d e∀β⊗λd`K9_b¬<Tλ∃∀
λ∧Q(_⊂3Qd 3H⊂H~q(&¬Kλ∃ λ3C"HλβR∧j∪'P*⊗X_∧]H#⊂$ TP#'j∩$g#@∩e⊂$jλ⊗P!gH&jijλ* ebH)αE)⊃'*f\N∧j&'∪⊂*⊗_M____βEe)∀j⊂)"∪&\bFB∧j&'⊃P*⊗→L_∧]c∪βR EXPONENT-IFIED BIGNUMS, RDNSV GILL
HRR AR2A,AR1 ;BE EEALINGL;RDNUI0 RDNUMXA% ≥4qαA∀":6→¬∩∩:5⊂∧¬∀⊂π&@2A RDFXNM RD@
!λ∧¬∀⊃S!Q@εEεBαRDNUM0: IDPB B,C
RDNUMXp∪)→hA(@1≠!@%NαJt
~λ∧Q(→⊂ε,P⊂dε ALPHA ATO@~~(∪!2zαQ1Ih ⊂L**5"¬(H∪_h!Q%∀⊂π&@8A:↓TLX∧A(XD``~∀%)→=¬!1EIβ4(→Yu (αfP")"")U∧¬∀∪)%'(AI ≥+~βH4(Q!P@*Q∪S(g@∧e)∀h⊂⊃,@[ ≤Vβ
t%@89D,
$ u-αλ→Db∧~)∃$DXZDL~ zd-∀iIu 4⊂R5
1"B3)zβ"P!*εE∧Sek"P∃*∩#∧NβFINISHEDTπ∪)⊂↓_
V6∀*IαJ,
⊃1α≤yαB_92¬-∧ e,@0Q4D 3H⊂H~q(∩(λ4q#!λQiα*9r4∪D TQ_L εL
@@∞H∪Q→≡Aλ0b``~(∪!2tqαQ⊃≠↓@$!→%∃≥D
$$tV!P@LYzd*¬J@
!,¬`$PβK @+@A≥+≠ $A∪8A¬β'∀@b`\4⊂
&~*α∀LyjTjE1Q LUYZ∧*∧~ %JQ∪S&!,¬g*Sa"`∩↓_∞→α⎇2⊗J~dzP~∧I_tM∀h∩)@⊂ i1
∪)1_
9αα@ε&β"A→TTu∧
Q∪S(Z@εE∧Pb"&@ AR1,D
∪β⊃ ~AβHbP∩J$"N@0Q+PhU(Idk∪αB5 IQ(∃¬FλλεBα MOVL¬&A% %nhXt
⊂5Q$ U30HZKλ∩(d⊂∧g"∩a`j"Q∧¬∃¬≤H∪)→9
A(XDh``@β4*
8∧@LU*:B¬∀H)∀<@A"THIS( Nα TLNE T,200
JRSD↓%∩~dr44*(D5DβS ≥αh NE T _f@``~∀%∃%' ∧¬∀⊃P"V∧¬∃%⊃
0bt%∃' APY~@λ9t`*c"THHβ&_@: H∨-∀A(@2⊂h ⊂L**5"¬(Idm@Q!P@ ↓GtQ∪JY-(∀HIU31∧
Q∪U)XH⊂ "∩a'k⊂∀"_X'U⊂)"'∃daFEβEαE)⊃'*fZN∧e#!S⊂≤↔⊗α+1 8π¬β'%εA ∨= A)⊃¬(A∪≥
%≠9)β→→dAβ LA∪≤A=≥∃α$J≡&PhR&~∃∧∩&≡:,i1α*,jB9α
⊃E"J$rV&hR&~9∧∩&≡~,i2l4PJR2~*αQ1Qβ↓A@4PJ*JN ∧¬∀$(r∪@ W#!
Q∪U)X∞B3)zQ(∃
E∀B.h ibPX∪⊂+⊂d*bP⊂aabfUf j"TP N↓$∩∧∪%≠+→∩↓$Xb`8∩w¬βM
A&∀
N∃α4
2V∃∧J0∩∧aQ$e:Q_∀$∧α(∀EE(L
λ∀@
NU$ LD@ A,[0011@`X@2∃h4*:8 &ε∩ ∧¬∩d⊃Q LTh9BβBJ(C∧zaP@)1S@λ$cg*SV-FEαh NE T$1⊂000 $p∞
&<rV%ααh∀e,Tλ$
≤Tε∪αr λTdα →b∧
&⊃P@L**5"¬(H$<L!↔4)1sU)T∃P3
X(⊂P*8(∩0H~q(∩λY⊃λ∩)@⊂ i ⊂FE)"∪*fa
αiadh∪⊂'!"X#&εB∧e))U⊂)"'∃fXFE↔FA$c⊃P!$cS*fV⊂∀ # ∃M@:
JFCL 8$.,b∩`.lJ≡"Q∧∩∃αN-!α&→∧zR4D t`$⊂P4hT,D
Q01 →Kλ∃hYβ*⊂*∪β RDDa∨,X↓ ∪λA∧Aεcπ=→&@0hP&6>4)αRQd0%n∩L!α¬α<→1αα~.⊗⊃∧
J>Vt!αε: ∧¬≤-D ∃"∧_x∀L@H#"A→30
fλ!⊗)"∩a)FE∪αW% AD@ %∧115 αB∩Hβ"SJTα3⊃λ⊂ V-L__X@00, →¬t~∃≥8 &ε∩ ∧∧2d⊃Q LTh9BβBJ(DL∀zaP@L**5"¬(Ie,@,#"AQR1Q$λR1sJY+⊗c!)"$a∪βP`(Lj>@4Tλbe Q!∀l@uQ(
E∃∃α'dπVERFLOWTπ⊃&d)αε∞≥*6F2
"& 4t e,@0Q4AQ@∧fjS⊂*⊗)⊃$a)DNβIN BASE I@¬β'
8@A)%dA)=¬∩⊗∞VαλU∀
HQP@!3∀r∧
λ¬X@,1 0↔$yαε2dzP~@λ⊃Sj$⊃0 Sh E, 40 0000 0000
HSHC T$35,∧∩*u9∀&ε$"%αQbi∪αα⊂@∀CE' ↔$ ADD↓(Yα~(∪ "≤AαQHaP@!2TTjD∀Q∪JYαXFE∀ ∧10OT∧t&lzP∀(⊂ ,TT
RDNUMC8∧∪β∨)αAβ$β 2J∩u*6λQ+PhPβ"@↓GtQ⊃Kλαhλ RX1 @%`bA% →0d4Ph"J∩5B⊗ahhR&~9∧∩&≡hYR`L8→∀:∧∃Fs 1 B5 IQ(∃¬FLλλεBα JRST EBD~∀&r∩%ααJBc;vqP@LXε⊂i∧∃∃⊗∀ ∧N@'X~∀&$b0∀rλ¬⊗__⊂⊂
λ JRST ≤VL~∀&e~!αR ¬D¬∀Ij5 @ ¬∧e∀)j⊂)⊃ εP⊂@λh ∀Li`λλ$cg*ST-FEαi`IPGE @)P~∀&$b0~¬EFCβQ!∀l@uS4d
∃β"J+.B*9βicbH)"')Uαλ
(LRJNQ¬∩∩5αλ εBα TLNE T,1000 @~∀&U∩N@"λ∧Qλ[c"KQ ¬$c⊃P!$cSαUM,[
RXDpλ&N⎇~≡∃αα(D`*uC"A→TTu∧
Q⊃Vε⊃ ¬.FBα M@+0A)(YI ∪¬&4⊂
&~p∧∧)1sU)Uα
UMPN @)PY% a_∞_∀PJ2N∧
E"[∃F⊂hPα3∀iλh⊂
*→ZWεBα JRST RXD~∀4TJ~9α∀J≡ 5YPFA)"⊃,→≥∧U& ∞E T,100000
JRST RDBIGH
∀%)→:*αQ1Qβ4(→Yu )Th∃
A ¬∧e∀)j⊂)⊃ εP⊂@λh ∃@ εEβ≥i"#∪'&P)⊃ εL3 R@FL3A RDFL2A RD@
_e⊂A% _Iλ`A¬⊃_eλf↓%↓_e⊂bA% →_e
AI _eλA% _IαA¬⊃_e
@↓%↓_e∀bA% 0e⊗
¬∩∩1Jλεα¬∀IF$∩λ∧Q FP,
(∪P&1"C"J(⊃S∪IWB5∪ @'⊂*,1000
JRST RDFL3
MOVE D,RDDSV
ADD D,TT
AOS Dλ
∧∪5∨%
AQ(Y% 9',~∃I ~1≠P&"J∀*%αIbj
fR≥:⊃*2∧r
V→i "↓⊃Q$L4dλ$L<jYReXQ!∃$e(T¬"c⊗Fβββ↓Q LU*:B¬∀HiC≤λQ+PhPα21 ~R(∃
E
εεβ"A~rr4λT∃∃β!!5∪⊂d
∃FVλ↓Q@∧j&⊂P**∃LT∧233000
SKIPE @↔αDa ~∀$A∃%'P@\Vn4∀∪!+M⊂A
→@Y)(Vβλ4(ε≤*Riα%!-E0hP&BV≤Aα~2αbRQ-λh(&∩4
⊃αR a5E"4bA$∀PJB>BJα~2Ac⊂4(εU∩NQ↓rYH4(Jα~ε∩bαRQ2%!-D4U∩∩4F8∪PLYzdj¬EJ hU(Hdc∀↔!∀U,Zλt*¬%J$$c(⊂AQTQ⊃IFQ∞B*85⊗H
%β"B(_21h
ElAQ@∧e)∀j⊂)"∪→"→FB∧c!aH**⊗~M↔∧D]Ta`f"K⊂)gP∃$"i"H+gg*λ!"P*S "i#∪'kiFB∧fgk∪$P),54.
RDL2D0: SKIPN KA10@
JRST .+5
FDVL TT,D1.0E0⊂∩$s⊃∨∨@A
∨$↓≠+→)%!→3∪9∞[∪≤↓≥β∂βQ∪%
AA∨/$↓∨@bβ↓9@4PJ~αZ⊂∧¬%"6⊃D#
fλS@hαB1H_⊃λ∃
E∃∃
f⊃"B2J*uλE6A"B$λ⊃Q∃D
∃⊃ε∃L⊃.↓QB4u( (∃⊗∞εA)"∪→"→]αa`df⊃P*⊗≤βEe)∀j⊂!"∪→"_εB∧e*fT"P*,RDFL2E
RDL2D1: SCIPN CA⊃0P
JRST .+5
λ FDVL TTD10.⊂
∪
⊃)$A%!-E2! A9@hP&~ε$aαRQe"Q-DhP&*J≥!↓9-⊂h %α$2∩YααJBdβ⊗¬cHαB4iyQh∃¬JQ∪HF εE)⊃ εL2E8∧∪'↔%!∃α\ EB@hP%α
∃~QαJ$aJ,!Q M≤9~∧<*λ@
Jα".j(313(λ4H∀i_pπ⊂$S⊂*εEαP"&gU'⊂ ∀T,TT 8π⊂~⊗<
R¬αα9r¬$α⊂5∧∧TSu)hα(⊃∃ ij @πβ≤A
AβM2T4PJR2hT¬%"αl ⊗__⊂⊂00 3DE@π∪
↓(∞"ε ∧∧,4hX5"b _b∧k∃B¬∀zYd$Lhp¬ 93∪λ λ5Q#!↓(⊂
)∪βHA%!1D⊃↔2∧e8 ¬ 84h¬D∀sh *4u⊂∀bj⊂$Uε@
JRST RDL2EC ; OR NLεA
→π(A¬(Aβ→0~∀&lzP∀(⊂
*
XV**αDX"HEAVY" CASE, CBEAPE A FLONUI IL TT1 WHOSE
AND↓)(Fbαbe@;vrββαβ+Q,¬P+⊂d∧UE IS 1LSB OF F@%¬β!β∨8@Qβπ
≠ ⊗:$J2:λiu⊂H!→%,MλxR¬"J(Dc∀X!⊂KZλ⊂¬¬∀z t<
HXB∧≤~*%JJaQ J∧β3uI@)P ∀T 3@%∀[⊂~⊗<
R*λ(∀Zβλ∩(d⊂π"aQii`i⊗F@
MH∂-≥LA)(Vβλ4*J$aJ,'!∀4J λ
J ∃∃¬6 ∧D]Pb"⊂$Sα THE ROUNDING↓
&PhRJ$F(TPα1ThP**,(R)
JFCL 8$RDL2E "4⊂
J∩c∩∃AhLRNAα ¬D5∧9ye_h!→%∃≥D
$$S#!)"&→⊃XY∧e∀h⊂",,∧Vb~(∪'π∪A
A-U*2α⊗∀22>\hP&RIib¬"β$ε↓ ".j(3Q∪iT⊃Tλ
YQ⊃4Hi∪u`λ$jεEαe))jλ)"'&QiαE∧SdπVEI TT,0
∪∃I' A∀"1J∃α↓P@H*(Dc∀X7"¬≤αr4λt∃β"A∀⊂εgk∪αS DT
∪∃I' A∀"1J⊗λh (*(Dc∀⊗π M≤αr4 @⊂!`@10P ;LOGP FOR MUHTIPLYING-IN PMSATIT¬∃αα u,-$ t2β⊗¬c@ ¬∧P∩))b ,∧Vn~(∪≠∨-∀A)(Vβ⊃2RQXε⊂hPα1S*
H⊂
*
Y⊗"1,∧a
@@h ⊂LiZ∧b¬J@λF+Hλ"N∧¬∀∪U
αA%!-E2%!-HQ!∀4ID¬%"JJB[⊂β"B)*Tp
,∧Vd~(∩A
5 A)(αb⊃E9αλS@HαB4jXR(∃¬Gβ"THIP →∞α CAIL T,8
∪∃I' ⊃αα(Dc∀⊗↓P@!2U3*λαP ∀1%∩⊃∀ L4*∀"1J¬λπ M≤αr4 @⊂ ADa ~∀$A∃%'P@\Vn4⊂∪≠∨Y
A)(αYI2R YD4λL26BJJαRQ4 ¬ε,@_
FA∧c∪h TT,D1⊂,∧`~∀%+
αAQ(VbYQ(Vd~(∪
β 0A)(YQ(Vd~(∪∃%'P@\VD4⊂λ%α$26AααJBd,F↓ ¬∧iSβJG T,RDL2A1~∃I _eαβ→`⊂M8ZE@$∀Kβ!↓2TTjD∀Q⊃IFQ#"AQ@↓GtQ∪
:α⊂ ∩DLSTA↓%↓2≤
¬αJ$B0∀[IF @)!
A:,b1α&$*51α4z22><*⊃α
J↓⊗JAh(%αU∩NQα∀"2N`KYα~>⊂α"V:XaαR",qα⊗BM!8 (*(De≥F∪ M¬X9∧R¬¬Id≤\h1∪L<zD∧`(αh"∩h∧EMFOR LIST (MR HUNK ∩~(∪∃' ↓)(Y%⊃→')α4∀∪⊃%1~AαX! R4U∩∩2N εβ@LYzd*∧%H∃∪∀⊃↔5D
∧ u-" x$T8¬⊂⊂αITS, EP⊃π∃!(A
=$@E⊃U→⊗DA¬→λ~∃I ⊃:\ h&ReR¬αQbiE
Iβ↓AAIX↓∀R4TjD⊃pRHXuλ@⊂
&`la⊃P7:v≠⊂9x&~qtw3H4pqi≠FE)"∪)j→]αP%)hλ**⊗)⊃!` iα]P⊂1Xzyr`3 returj to here with jg`)!S]NA¬GGk[UYCiK⊂RT4U∩∩2M≥I`&B-~")ααbJα≡∀P4(~IE@(αP",4 ∀∩↓∃%'(ααJα∩≥!P%N|Rα,8¬⊂∩*ib R@βλααP≤
4
¬∀0q1(Hαb⊂!⊗P P"∪hεE∧Sek"fH!⊗ i BE∧U&-"P∃⊗→___εE∧H%))jλ)"&)Lb∧]fPai'VT)'b*Pbb⊂'P%⊂ ∩ETURNEDλ
(M"2:∃¬!1IAβ↓A@4PIα*J≥!αJ∩Dr-D%\~0≤@U∩3JY3Q`
@dj$⊂P ∃NK
TLNE T,24060 3EXIPλA∪_A≥≡A=
*⊗≥!αJ⊗ 4(∀ %∃≥D
$$e8B⊂hU(IE≥C!~Ddtdλ"e∃4Z%@ ¬∧f⊃i)⊂)⊃)&P⊗ 8π¬→βM(XA≠%''β≥≤@DRD4⊂∪'∨LA¬
!I ~∀%!∨ A@Yα
∀%)→5
↓(Xd`@```~(∩A!-~")ααb6ε.E*2,4PJB>A¬↓2P4U∩∩2N@ε∪@!33uJ9(⊂@⊗∀)RV!∀%Q`↔SP8%]""J><
Vε@∀λ%∀02`⊗Pd i Ph∧EB
λ∧∪)→<A(Hh@``~∀%!∨!∀↓ X~∀4⊂⊂∀
∀"2MN!P&BIib¬"β
∧ε@_∧D]S`a`∩O-H∂¬∃∃∞@"λ(U%-)hT"¬y~DDLdλ∩∧d~:@hPα(∩J*uλ∀IXq0 εBα TLNL T,1000
@∃%M(A% 1' ⊃DHI`≤@StS(→α⊂&`Pi'P'PαJECT
↓TLX∧A(X4bFd`@``d∩$p∞∩>u!α
2-~!↓
E*2- ∧zI↓
~Qαx)"∧|d DM≥D λλ$j)FB∧e*fT P F∀ ")j∧@]g∩d∧ i@LAUkgPASO]=eKH~(∪∪∨-∃∩A)(αa"¬$HI`≤@→=↓n∀_z→,=h≥~
≡h≠p~]⊗⊂4`3 thi@LACLAαS >WqP@LJ9α¬%EEU≤,yIt8H↔8v/"∞Mε*π<X m\8π:≠8rq2\∧¬α SKIPL ST DT) ↓;IpεASh↓BAπβIβ %C YJ}~(∩@A∃I' A¬⊃'≠⊂H%m↓πK↔MDλ↑λ~~-T~{[nt~→(
MβyzεB∧e)hλ**⊗)⊃&)b CE JSP AR⊃,RLAST ;SPLACIL@∞A≠¬β%≡A=
*⊗≥ 4(→
$djλ⊃BEαα#"A→TTu∧
Q∪∀jFβ"C!↓ ¬εE∀ ∧LST4:∪∃U≠!APY% →Liαα∩m_∞*
,~Qα*-~QαJ,
⊃α↑
→αBJ,~⊗⊗∩,!α
@∀λ∩∧∧zAP@M99∃∧rλ¬S(→p∧ ∃NK
JRST↓$d~(∪)2zαQ1Iβ↓AA@HI`~∧*ZB∧tzI∧L@Qh⊂(j⊃4@
I⊃(⊃ zα⊂"l⊂bh* A %BP
∪∃I' A¬⊃→'0~(~∃% 1&aαt%)→
↓(Xd∩$p
))Rα∩>Q¬αε&IαQ)(∀PIα*J≥!α⊗I⊂h(&ReQαQ⊃34(ε$b2¬α ¬C∪β∧εβH↔84lL)→d
$→yb∧|d∧$E,i4"∧hDα(⊃uλDλR5∀d sHβ!!(∩TJ:λ∀Q Jvα"'∀∃r⊃)@⊂"l$U$g#P⊃)'f@∀"'a%λ&b`g∀P⊃↔∀H⊂!`iQFE∧fSk)P*∃⊗∀(∀CEd)∀&P V
**∀FB∧j&-⊃P*⊗→__⊂εB∧P*&⊗'⊂*εX_⊂∧B]ge!⊃aj⊂$Sfbb$Pj"f,H#'f&∪idg#H⊃"'jλ⊂$iFB∧P⊂%∀)j⊂)⊃&)Z!βEfgU P i V)!U_∃Q↔α]b`aT'Vh)∪b*abQ⊂)h&∩adg#H'a%"Ph⊂ iH⊃"'jλ∃ca%λεA∧e∃fh"P⊂V)"&∀j_∧DNh∧HBOU AWAY IF RETURN ()
HRRX AR2A,(A)
↓JUMPN AR2A,ER2
HLRZ A,(A)
↓HRRM A,(TT)
RDLS4B: PUSHJ P,RDSKWH ;SCAN CHARS FOLLOWINC OBJ TO RIGHT OF DOT
JRST RDLSX ; HOPEFULLY, NEXT INDERESTINC ONE @∪&↓α@K%@~∀∪)1≥αA∧1%&K =(~∧∩↓∃%'(↓% ⊃≥,∩∩w∪_A∪)&↓β≥∨)!$A =(XA)!≤A∂∀A⊃β-∀AαA⊃U≥⊗~∀%)→≥
↓∧Y%&∃≠βε~(∩A≥="29α∩bJM:bP4(J↓α*J≥!α⊗I⊂h(&B-~")ααbJ∩>∀R4$%]~B2&≤J:: X∀≥∀tλ∀5$Z$α∀∪uλE9pRQ(~β"B)*34⊃$λ+∀Q Jm⊂B!↔u∩∀IZβP kPlP$cλ)"`∀URN ()
↓JRST RDSIE $$∩w∨@&C↔K←O≠∃1βO!∨Mβ>{SC¬∧∧&*ε≥dε/↔-}"λh!Q%∀$ i3PM99∃∧rλiT\λYdXh!∀∧U∃:@λλZLC"A~⊃∪h
ELεεα.h(1r3D Su∩(dg#P∃$ j⊂∃$$iP∩iP P∩*g%FB∧fgk∀P**⊗
(⊂
HRRZ A,(TT) ;UNDO THA CDR OF THE CEHD
PUSHJ P,NCKNC
HRRM A,(TT)
HRLM A,(P)
PUSHJ P,RDSKWX 9SCAN CHARS FOLLOWING GBJ TG RIG@T↓≠A =(~∧∩↓∃%'(↓% →'`∩∩`-∧B>B⊗5*22ebα2εB α& 5HZ$-≥I→d:∧yhR∧M4λ∩α-*↓PP@ B2J*uλ∀HI⊃Rp!Q@εE)⊃)a`↔H: TLNE B,RS%RP 8π%∪∂!(A!βI∀`=¬"",dλUDMD d⎇∀X→DeHQ!∩¬∧z "¬αββ"A→Uu∪Dλ+⊂@⊗∃βP@
BRST POPJ1↓;EXIT BY SKIPP@∪≥≤A∪@ ∪∃)I')∪9∞DAπ!β$A∪LA≥∨(↓!β%9&~∃%⊃'↔/0h∪∃' ↓)(I%⊃β⊃β$$s∪A
⊃β$A%&A+≥]_∞JREI1αRD*0∩∧iJU≤B ~B∧h@λ
JT∧P Q`dgεB∧e))U⊂)")RidεEβEβ≥i"'PαM2 RDOBJM RDSM@π⊗A∀"ε % λ
(α X⊂∀ ∧A1↓%∩¬~αJ$⊗@λ
)⊂4u∧
S⊂4jF(⊂ "⊂βHG1R@ π⊃<hA%
⊃≡fAI π"zαJ$9 s⊂@ ¬εE∀ ∧@∨¬4dt&¬*N"$
αe∀Ix$Th↔8v/"∞Mε*ε|-&.∨EaP@!5∪∪HT∃
↓↔ux<d∞α44`3 pro@
K@↔∪,∧Bε↔∀λλ$¬LπFEαP⊂ ∀LL¬≤A ¬Cβ∧∧α'P⊂ w→⊂9x ,icing?
∀∩@@A∧zB)αα¬@KZ∧∧α∧tqQ LU*:B¬∀J9T9b.v,↑hε⊂ $o error c@!KGWSαs⊂~ε≥lBπ⊗↑NW-@εEεBαλ
*∀"0≤∀)P∞A~⊂ε'P∃⊗→___∧]E
∃⊂&`PβRO CHARACTAR ***~∀%_
↑Rt)α 2∃→2ε2 I`≥≥ I∀93Q`∨CE TLLεA(XD```∩m'!2L~& 4t T≥)qP@!4⊂
iR⊂(⊗*βE PUSH FXP,BFPR@ ~)→.J∪
β⊂∩Hdβαbα⊂@∀B]`
ACRO CHARACTER HAS @→∪9⊗A&p∧¬∀B x`hT_ib∧tX¬tHE⊗c"A→α"! D, K@`bb`@XY¬:4⊂∪!-~")αα¬B∧≤X¬∪(_c"B)
TVHλ∃α⊂∀ JF@
CAH@→`X@Q∧R~*hI`≤,h@λ @c⊂$c∪α @≥]%~∀%!∨ A→1 @2∀2BJ∩h &*≥↓αQJ*5E≥AQ M∧z∧¬αeAQ LU*:B¬∀IJ5Cλβ"C!)")fPβK: JUIPE A(C@!=!∀%\r& "
_d8ε0↔ays OK
∪!U'⊂A
a Y(∩m)KK`4⊂λ&6⎇2⊗%αα@¬λ*".hwx<FBα LSH T _[M∂2|8%n∨,εBπ~→(∞O<→(-=_ FB∧iedT&⊂ ∪T(T ∩∩m∂π→∧KQβ*α≤
(8E⊗.GqP@J∧ %∃≥D
$%≤β1,!↔hλ∪Muα⊂10\3⊂0q≠zz⊂ )t ILLAGAL RE@)U%≤A
¬→+
A→%∨~@8X\R~(∪!∨ ↓
1 YP~∀&E∩Jiα⊂a"¬$KZ∞∩I∧εFF*hM|A"B)*34∪DλK∀Q
910 ∧Nβ ERp¬WdA%H β7⎇∪∃βSF9β?v(4(&∧zB)αα`4(Q!PE∀H→E∧C!~DdzλEC∪↔5"RRλ∧∪H→1(⊂*Is(
E%A"B*85∪s$ ∀∪QAQTQ⊂&πB2Tj∧∃∃β ~Q⊂ _CE)" L] IDPB B@ε~∃%⊃αft∪)' A PY% π!β$
∀%'↔∃∞αα⊃2J$ D4(Lj>J⊗hα∩d~"$λh!~¬-≤ $∧5E¬J$$AQ LlzhR∧∩H~#∀λQ!∀U∃:@λ
(⊂,β!!αA)"⊂Z≥∧h∃i`%⊂∀⊗('!SdεS ;ADDS ANOTHER @'∃∂∪≥PA)=∧ α2yhr¬∧βP3(T⊂ε$iU∧@
AMSF LPNF
PU@' A I$\`⊂∀!→T⎇Q(⊂EE∀
#!↓10!R⊂ V!βE PUSHB P,.NCONC
MH∂-4AαXQ@R~∀∪A∨!∧A→1 @0hP4*Jd
NQhLRV6B*α¬1λ~#
HQ*$d
:B∪@!2⊂TK⊂**ε
TFEαe*fh⊃P**ε
i_DCE LSH TT-SEGLMG
SKIPL ST(TT)¬
JRSTRMCER
↓HRRZ A,(A)
JRST RLAST1
λRDCHO1: MORE AR1,B
NWTLN BRS.@!9(~∧∪)%'(AI π⊃≡L~∀&U~AαR bJα∞D
H%mpαεMα≤~0~∧→J4j∧α⊂4dλ⊃0r)X3λ∀
EH⊂v)j⊂6β!↓3Qu HαP!ε∀)S"$QFE∧e∀)j⊂)⊃'a%~B]kdf∪⊂* eQP iP⊃&'j$Sα@∞A↓PX α~αYPhPα3UjIH∪Cλ⊗+j$α]iedT⊂ F Tπ⊂≡J$Beα∞D
H (!→%∃≥D
$$≤ v0K\8→b¬$βttd u1⊂∪α@ "α@λ
Yβ+gi∃$,P!R iεE∀ ∧CHO4:↓PUSH FXP,B ;Lπ ∩λZ% 94q+∧
p5Q$ Q0*λ!`λAR AS IF @∪(↓(∞⊗J*α& - z%$h¬λ)"`eH!`λAR
∪'-∪!αAY7%
⊃≡e:4⊂
J∩≤B0≠≠!→TmQ2(λ∃α)"&∀l_FEαd¬OVE B,AR1
∀∪A+'!¬↓24U∩∩∞ w LU8∧¬%"β∩4HH .jE%H⊂ dSα@∂2*α≤D~(∩∧|)(T:α⊂∃∃
∧@
SEPZM↓!≥¬+_~∀&L"B α⊂¬D1 B2J*uλ∀I→β*"i∪αλ
∧~(~∃%
⊃≡dt%!∨ A→1 @2⊂I`≤h¬⊃*$⊂ε`eRdεG UP & AS SCO, ∀∪5≠ ~⊗hα∩e(H$\_↔9T\T d-EDλ4D
$ D`9βeP&∩ebFEαh O T,20 8π∪≠∧zJRεu!α
J,
-α∞D
H (!~∧`:⊂¬⊂(∧@
;RDDa∨,AI ∪¬∨XA% ¬≤b`A∀"∀l0 ⊂∀ ∧BGI@∧A% ∂∪α@9%∩⊗αYEααβP
$Sbi⊂↔∃&W &βE
IFN BIGH
+~OVE T,TSAVE
TLNE T,100000
JRSTRDBGIA
JSP A,RDRGRS
JRST RDNUMB
¬
RDBGIB: TLNE T,3000
JRST RDNUMB ;GEPTING EHPOJENT MODIFIE@$4∀∪∃'@AαY%⊃%π'0h"J∩∀:&¬@!→T⎇∀T
Bd
&(⊂hPα33jHαP ∀T,RDIBS
MOREI D,-"⊂(B)
NW$ ANDA D,177
PESHJ @,,TM.PL
α JSP A,R@RGRS
JRST RDNUM⊃
~∀9% ≠,bAh&≤Z&B¬¬!2∧∀RrR&6-⊃`&6⎇2⊗%α"a@%n α&MαdJNQα|1α∩_y∃%~D
E"∧~4∧m,JI∃∧dα14EDβ"KJI+T∪π∧d&)⊗⊂ V∀∃∀D]bλ$iP!Pi),Wλ⊂εE∧Sek"P∀⊗∀ DCE MUL R,TT
∀∪¬ A∧,bQλ~(∪)2T)αI-
aQAAβ↓@4!_∀⎇~λ!PPLYzd,jλ!3
Bα⊂*!Q@∧fgU ¬ DR
HRRR A,(T)
JUMPN A,,¬% ≠U→ ~∀%∃+≠!∀Aλ@2≥α>BλhP&6>4)αRQd 4(~
U≤DαH∀¬Hl0sijc"B)
TS λ∃λ⊃α!Q@4∪j H⊂↓Q@↓GtQ∀HzuH∀HJQtTd
Q⊃6 xH⊂Qλ[h∀HHR1sD
Q⊂R(y#"C!'nnb)_SH⊂I_sU3!Q@εE)⊃)#ik∞∧fgk⊃dP"ε∃)`k"CE MOT¬⊗5∧!2αN
2∀4λLj>J⊗hαI2J≤
R∧Q!∀l]hYR∧2Hj4
∀QQ LU*:BαD∃⊃PPH*(E∀≥*7 LlzhR¬"JJ4
∀QQ LlzhR∧"β⊃∀h~Q#"A→3uQ$
K∀Th~Q#"A→3uQ$λK⊃Th~Q#"A→TTu∧¬⊂*#!! C"J(⊃2∪hgB5∪ @P*⊗_L__⊂_βE PUSH FXP,TT+1
PUSHJ P,C #
≠⊂~LhP&6>4)α 2λh(&B⎇↓α~BαbRP4PJBVNDQαA∩≠
ε.:_h(&"∃∩5α bB¬$∀PJR2:*αQ1Qβ4(ε$b0~∧∃ESλh!→%∃≥D
%CλQ!PE∀H[β≠P~
U≤B
¬Dλh!→T⎇∀YT¬"eJ8∃4(Q!∀l]hT¬"d⊃Q LlzhR¬%EJ$$L*1PPMλZ4DRλ¬Bu$→XU⊂h!→T⎇∀T
Be%8~d(h!~∧⎇α
¬Dλh!→%∃≥D
%CλQ!PP@"TQλ)1s@≥αj&'"H*∩→X_εE∧R))j RDBGEX
∀∪!%→∩A∧X`∩w
%ββ)∀A¬∪∂9+∩A≤J≡84PJR2~*αQ1Qβ4(ε$b0~∧∃ESλh!~DdtT
BcεεββQ!∃$dhT¬"c6εhPα2TJ:λ∀Qλ8Qc"A→∀T@λ∃⊂4LH⊃"TQλ)1s ≥αh*ad∩⊂(⊗!∪*))mβE MOTA @)PY6h`@```X0a2
∀%∃%'(↓%
0D~∀β!U'⊃∧A@Y¬≥π=≥&~∀%≠∨-
↓∧Y% ↔ε~∀%!∨!∀↓ X~∀4∀_w% ∂0AI ¬∂14A% ¬→'⊂A%⊃¬1
_↓% π¬≤A% π ∞bA%⊃≥~e∧4∀~∧vlr∪∪
8A¬∪∂9+~~∀4∃% ¬≥0t∪Q→≥
APXd``4∀∪∃%M(A% 1
_~(∪≠∨-∃∩AλXD~∀∪)1→αA(αaIAAh(&*∃~QαJ$∩~NhP&*Vmα2∃ααJBe∀H(uDhQ!∀L@53λλE∀Q∩()D]↑⊂$cg*S←+∀*∃∀@
SKBG↓)(H\αiD4
∀"α= S LLzhR¬%EH@hPα33j@ ¬M T,TSAVE
∀∪!%% )¬!2εI∀λ4(~
U≤DαH∀¬EU∩3(ZA"B)YuQ(λ∃⊂4LH⊃ B3)zQ(∃¬J∀p5HQ B2J*uλ∀HHR1s!Q@εE)⊃!#!d∞∧f)dλ"∩∀*∃∀D]↑⊂$cg*S←+T*∃∀BE∧R))j RDBGXM
RDBXFL: ADD TT,RDDSV
SQBI TT$BYTSWD)→!
¬U∩∀∪5∨ ~∃∧ 2εI∀λ4(→*%≥αλ(D8Ql#!↓ TQλ_QnB*I∪S@
Eh↓Q@∧e)∀h⊂!"∪&Y!εB∧d))λ V iFA∧j∪''⊂*→_⊂εB∧e))U⊂)"!∩cbFEαd))"RP**εa,j)Ub∃&(∪!*c⊗LT"∀FB)"!a⊃X]∧h∃i`⊂#⊗(⊗**αD]`∀HIS IS THE POWER-OF-TEJ EXPONENT
MORE TT,A
PU@'!∀A Y→→¬∪∂h~∀β!= A
⊃@Y$
∀%∃¬π_p\Y%⊃≥≠⊂h &*,jB<Tλ∩e∀HiC≤λβ"B(HSH∃
E∃∃
f⊃ B2J*uλ∀HHβ&→`CE
λRDNM2B2 TLZ D0b`⊃AαεβK8⊂λλ$cg*Sa"`∩↓
εN*↓EA→¬:εMα∀*ε"K∀∧
¬(Xte,QQ LU*:B¬∀IiS∀λ↔8$
≤T ∀∀
8UB∧∃Z@λλ$cP"S'jcdλ*#P'U εLO @ASE 10& CAHC
] ;EL@λA∨_A∪
≤↓
&≡u*44λ1nJ$~"εI¬∩∩∞!
αJ∩
XαJ∩:mAαJ∩u*5Qα∀":5Rλh( (*:T∃%IA∃∀,_HU∩¬9→d<dUX4D
(_5$-$λdLEHZ hPQ'3[Z¬%"RR$
$,D tt
λ9∧
∀_:D-∩¬λd⎇∩
(T"∀¬"RR%!PPh*(D≤D~' M¬Z9∧R¬¬H¬∀$→h4@h!→T⎇4Tλ"d¬*;¬$⊂Q*$$≤ε↔ hTjtPLUYZ∧<*λ%BE%E⊃PTutA∀u=IhR∧∩J*2,∃)1PTutA∀U∃:DαE%E⊃PPLjzDr∧UH"e[J:∃B]89r]=:¬4eα8Iu"]*¬4l5:∧u#kQPPJ∧ %∃≥D
$$∀1↔4∃∀X→4Lttλ4D
$λd⎇,hAPPLjzDr∧eH"e=I↓PPL**5"¬(H4D
!↔5<⎇*I∧d-:4∧≤D~!PPMIIdr∧%J%~-9J0hP→*%≥"¬
E"H↔8∀e∧λ_$-$_4∧≤D~$¬ 95∩λλ*Q02dλR5λ
9s12 zh∀q*A"B4
Zr∩H
¬⊂∀Q →Prα'5c"SJt"2∀J$⊂K⊂!⊃.pλ*U⊂"l*⊃e""bλ f($⊂a"b$PP)dg∃ l⊂'S⊂*$$TP!d TεE'+IDd)&∩P!⊗→βE'+Rαfgk"RP!⊗)∀W,&*
TFEαe))jλ∀**∀CE)"!∩]∧fgU"fP!)"!%PFE∧j∪''⊂*≠_εEαP⊂%)∀j⊂∀*∃∀FE∧U&''⊂∃⊗→_∧BP⊂⊂≥Q97vP~2y2P→7{w⊗λ;rSy→P92pY4w3P≠4z2y_v⊂:7ZrwεEαP⊂%)∀j⊂)"∪*fZεB∧h*iR%⊂#,∀⊗)" Qg"∧Pλ⊂≥i|[q7vεB$c'⊂∃ibf"TiV∧iRdh"P∀")'fTεE$c∪⊂*ibS"iiVαh*id∩⊂(⊗)⊃)'fFB∧h*iR%⊂(⊗∀$g*"T'εE)⊃'&l≥αfgk"H!⊗)"⊂%aFEαh'h%λ(⊗εEβE)"'∃fZ≥∧U&''⊂∃⊗→X_βEP⊂∃&''⊂⊂⊗→__βE∧P⊂λ⊂%))U⊂)"'∪Z FEαh*id∩⊂(⊗ ∀"$g!R∧D]Wλ#'jg⊃εE∧fSk"P! ))l∃!εE∧S+j'⊂∪⊗!⊗)QbFE∧H⊂%))U⊂↔⊗YBD]agS*)'fad i∀P i"H$cg'T"bεEαfgk"RP"⊗!⊗j)kb
&('!∃c∃XFB∧g+j∪"P!⊗∀)W"$QFE∧Pλ*&'`H*⊗→_εE∧Pλ⊂⊂*&∪P*⊗_L_εE∧R))j⊂∀"!d_CEεE)⊃'&Z N∧j&'⊃P!⊗)∀W)cgβE∧P⊂∃&''⊂∃⊗→X_εE∧Pλ⊂⊂%)∀j⊂)"∪&c∧]U"i&dS j"iH P'*Sa"i⊂∃'ebg⊂*g&⊃iiP H)dcgλ$iPεB∧P⊂⊂λ⊂⊂%)∀j⊂∀*∃∀D]c∪f&'kRg#P S⊂"l(∪g"g*∩`j'iβEεEβ≥i")∪dP)"∀'fXP∀")'fL⊂)")∪fYP)⊃)'f[H)" bS ⊂$i⊃ P$i⊃ XP)⊃$gεEβE$c'λ*ibf⊃iiV-CE)")∪f]∧iRdh#bH&('#βE∧P)Rdh'⊂∀'!*cβE∧P⊂∀'h%⊂∀⊗εE∧Sgk"dH"⊗∀!JFE∧aPdf⊂"('!*Q∃f('⊂*c⊗XBD]j'SP!$cH*'P"∪P g'U$"i⊂∩f"!⊂∂FE∧P∀'h%⊂∀⊗εE∧T*id⊂⊃,(⊗!CE∧ibU-!⊂*∃⊗"εEαdb(!λ"⊗!FB∧fgk⊃P!V-M~_≠X⊗⊗('⊂*c.FB)")'SX]∧dS"!⊂#!FE∧R*fh'λ#⊗)"∀'fYεB∧h*iR⊂#,(*εE∧R)h⊂*#,!gS)FE∧T'h⊂#⊗(⊗*εB∧ijaλ#,(⊗∀≠X∃XCE∧e)∀j⊂('T%_FEβE)")∪dY≥∧Tbj-⊂∀⊗εE$T(⊂,⊗-fV"!V&⊗⊗⊗+⊗$Wg⊗⊗-LX__↔~X_↔_X_↔~X↔⊗X↔⊗~K_nFEαa`dgλ#⊗⊃,βE∧fgU"dP)'εE*⊃i&dgβE JUMPE R,RDROM7
ADDI TT,(R)
CAIG R,(D)
JRST RDROM3
REPEAT 2, SUBI TT,(D)¬
RDROM3: MOVEI D,(R)
JRST RDROM1
RDROM7: POP FXP,C
POPJ P,
] ;EN@ OF IFN USELESS
RDAEND: LSHC B,6
DPB B,[360600,,C]
SETZM B
LSHC B,-6
DPB B,C
SKIPGE LPNF
POPJ FXP,
PUSHJ P,PNCONS ;DESTROYS TT
POP P,B
EXCH A,B
PUSHJ P,.NCONC
POPJ FXP,
IRDA: SETOI LPNF ;INITIALIZE FOR READING PNAME-TYPE ATOM
IRDA⊃8 MOVE C,PNBP
MOVEI D,BYTSGD*LPNBUF
JRST (TT)
RDIN0∀∪A+'⊃∀↓
1 YMβ,k~D~∀∪!U'⊃∀A@Y'β-`j~∀∪A+'⊃∀↓ Y↓)e∪≠β≤4∀∪≠∨Y∩Aα0Q)(R$∩vTT(TTA∂I+≠¬→∀@TTT(T~∀∪A+'⊃∀↓
1 YI'(k~D~∀β∃I'(A%M)0j~(~∀_w$HA$f↓% ≥≠∃$A% M≠
dAI '
DA% '5$~∀4∀vvvlA%%=$A≠'≥&A)~∀
∃∃$dd∪1%$AI %~h$wπ∂≥Q1(A∃%%∨$↓(∞&RBα∩>Q∧r>Bε$J69↓m∩⊗ε⊂hR⊗IMPJ2⊗J∩αJαJi8%n
d
NQ|hRJ∩:l*Ih&d*JIα∀"J5`KZ:V6-∩&
α⎇2⊗J~dz\4*∀"N6∃⊃P&2⊗∃⊃αJ∩∀id%nm*2R&∧b∃αN∧b&∞εt9α6ε≥∩>Mα∀*RVJt*⊃α:|q6:&bαε~R-⊃↓ 9⊂h(4
∀"N6∃ P&B>αα~bAe 4*J%~6⊗IPJ2⊗J∩αJ∩Ji D%NLb2⊗≡aαJ⊗%*J9α4
2V∃∧2J>5¬~B2&;RDQT@
A∀"N⊗6JαJ%9Y∪α¬(J4lK∀
$%4(~"¬∀HH$e
λ∧Q
@!~P)⊃+!→ R@ -∧β→αJ∩4⊃Qα∞αJ$e
λ:E∀e1Q hU8X%%$A_%,LJETL@H∪0(~Sh⊂iλ4P0jHαi⊂(∀'abiTdπRS
λ∧⊂∀'33@4∀r3Hyα"P(UdπTE PROCESS@∨$h~∀`-β0∞a∀qSsd∧∂(∂λ∀(jgU ¬ FOLεR4Ph ∃∀J~D+Pα33j@ ¬I T,0
PUSHJ P →∨Iβλ∩$p∞~>⊂αR"∃¬:"&R*αN&:<b∃ -~Yu$(∩⊂(FA∧h∃i`λJ P,@≥π=_
L4PJ6 =hY∩∧∩J~∃,@u⊃#!∧e))U⊂,!gSαS
λ∧vvVααN⊗6L~0≤@⊂πg @π⊂≡YXT`*λ⊂λ)∪βCE@'M_∞I@!⊃∩E≥ I∀93Q`∀CE_ 6βX%m↓h¬R∧hε5 3Q`⊂T¬ 9
$p→↓βiy↓αtJ11αD*0∀≤T ∀<@StQ(Aα@
R@ '5∩t&¬*N"$
αe∀J9TKQ!∀U,X∧⊃$λ+⊂t @h
8π⊂≡5D∧4⎇YhB∧≥!Q LU*:B¬∀IId-⊂β"B!QTQ∀iY,λ
∧SdπVNI T _b4⊂λ&BαZ4B¬¬J@hPα2Tj∧⊃∩)@!`f&βE QRDSEH∩∩m)⊃&~αN"zYD"∧βQ5HZH⊂
@!!] BE USED
RDSMI1: PUSHJ P →)e∩~*≤ ⊂&∞J∃α¬b*Rb∞αIBZ∀QQ%≤
A∀∧823@⊂⊂T∧%@)a∞@$β
`⊃≠FA)`I∧P⊂%∀)j⊂#⊂d∧SE 8π3 ∧∧TzI∧-∩λyt$⊂3 ⊂∀`df⊂⊂βHARAAP $ααN⊗Q¬~εJ⊗αzUHαB0h→1(⊂%F-".hiαE∧H%))jλ)")fRX@
JRSD↓
β→'∀~∀4SY`≠ZλhU∃$_8∀b∧(~"¬¬)x4-≥9z#@!αA≥MNβ |ANYP@⊃∪9∂p@@t|@@←∧[⊂→>JzQ>!|I0≤@Kqc!πnjb)∃β"W∩h∧ IS A CUPAR SYIBOL QUOTER (ALMOST L@∪↔∀@DDOLR~∧~)%∩Z∀
Ihε≤Z&B¬¬!2mβKPhU(HD∧e↔!∀l@uQ2$
λε⊃" λ
(MαVN∧λeEαJAP@!4⊃4i∧⊃R∀¬JMlα!↔up5λd⊂'jU⊂⊂
TH@'
↓'⊃∂)LA+'⊂A¬ %¬∩∩Z ⊂h &*≥↓αQHzE∀¬H!P@LYzd,Jλ¬⊗∀ ∧VB∪
∪!U'⊃)∧2bAIY4`*MPc!↓4p
aλ!(λ@,R70+⊃
∪!= A
E↓2P4PJ≤→`λ
EλX∞εBα JRSP BIL¬)∀p4(~
U≤DαH∀¬J⊃QsI6 ".hitHλAQ@εE∧Sek"P⊂i_V CE JSP T,.SET 8π⊃β!A∪⊃2X↓)⊃
AI'+→PA∪&A¬→'∞A%_ α∧hP&BVα9α¬αβ⊂#!↓33uHY(⊂#
∀⊂ss* ∀C"A→∀TVDλK⊃Q(~∃0 "TFE∧h∃i`%⊂∀⊗"bfTXBE∧R*fh"H V)"∃!~FEαd))-λ V∀(
FE∧h∃i`%⊂∀⊗'!gS)FE∧Sek"dH!⊗(iT ¬CIAL
α PUSHJ P,XCOLS
MKVEI C,QSP@π∪¬_∩∧∪5∨ ~∃∧⊃2∧∀PJ"JJRα¬1λ¬⊂hP~
U≤DαH∀¬J∃0
(∀'hεE∀ ∧VB∃8 MOVEI C,Q%ISM
∪≠=(
,∀λ"e%*ZD@@ ¬∧d∀)(
A,(P)
λ PESHJ @ 1!+)!I≠ ~∀%∃%'λααB>BP4(Q*$%4&' M≤X¬∪iTλεP⊃λFXP)
λ¬% -λftβ!U'⊂A
a Yλ~(∪!+≤B)αAe"f$∀PJB>A∧2bA∩ h &∞J0∩¬JAC∪β1⊃∪M∀~(R∧≤~8R¬<λYbπb ~2∧≤→ID,"λj$|@(⊃r*I⊂3C!!(∩TJ:λ∀Q
hLb"'∀⊂(∀HX1∪∩*:λ( X6(∀hX(⊂(
q51 u4t⊂(8+C"A_p23D
∃↔I!"B(
9r4∪D¬,*⊃K
λ#"A∀λ∩TJ:λ∀Q
hMβ"A~q5⊗IT(λT⊃,(∀FB∧e))U⊂)"+⊂→FEεB)"+!
≥∧ibU-&P⊗LT#,(
FE∧aPfg⊂*∃⊗⊗Y(FXP)
@OPJ @,
SKIPGE T,@DTSAR(AR2A)
DLLN T0d``@h(%↓∧RJNQ¬α6B)λh(&B-~!α~E↓2⊂4PJBVNDQαA2%J$4λMα>Aα5BA2⊂hP&∞εLqαRQer44(JαN⊗R|i↓5ED2bA∧hP&*J≥!αB≡∧QD4λhQemm¬~B2ε≤J:: X∀≥∀tλ4D
(_5$-$λe,t8¬∩)yβ)P#∪i⊂'(H g"↔)WεEβE!b)∪(Y∧fSi"dP⊂V*)*U$εE∧Sek"fH V* T)"bεB∧e))U⊂# f∀bFEεB!j)&∀]∧ibU-&P*∃,gc#βEe)∀j⊂*"T()$FBεEβ≥R`∀XMPA %TXC@)0@C)1¬'εA%"f
V2αRRf⊂ε∩¬%K_#*λ¬∃_Mh∃
K0Mq$
∃⊗0FXh⊂
*⊗a≠c⊂∃*,aR⊂**,P≠g⊂!S))`∩N TTYB2 TTY@∧fA%"f Nλ∧¬%%_
∧
∃⊗0FHh⊂
*⊗a~#@ TTYBQ∀A))ei~AQ)3∧j↓))3∧β*!αR%J∪,4
E%L&YR¬%K_# $∃∃⊗(εPh∃
K0MRD
∃⊗0F@(P ∀TYB0∩AQ)3∧s∧A))3λs∧A%"f @_@λ
J⊗0@≤R⊂**,Pα8
λ∧⊂∀*:T¬%IA∀`(αkdgH**,P∀)"`∪CAJ, RUBOUT HANDL@$X↓β⊂~⊃¬∩⊗ε∩dJ0∀ εEεBα;;+↓∪⊂~&$Jε "λ¬∃∀⊂r⊂*(0p
"T⊂!*c⊃ ¬RING ROUTINE.
0⊗@Xπ2∧∃Xhd-∃4
Uα∧∀ DM≥D t2∧9λ∃∀8¬⊃**h⊃Sj$∃∃⊗$ 3P∃*E@εE≥Nβ; HAL@ LAβ→_↓β!!∀zBJ&
"∃αJ,∩6FQ¬αJ>∞-~N&:8¬`hSαh
MH i#jSbg*)H i"P⊂P**,H$g *U⊂#$f⊃P i)⊂lP$gλ VεE∞]]P*∩ ¬ FULCTIOL∧A)≡↓↓+
∃$A
∨HA∪≤Aλ@Q
]≤XA#∨IβλR0~∀f@Xπ2∧h@λ
I⊃(⊂iZαg"⊂∪c⊂"g∪`j!d⊃b⊂&"Q*⊂ T"g)P∩dε C.
0⊗@YYαJV∀zVAα,~">εt9α&M¬α⊗J~⎇∩6⊗⊃∧z1αRD)αεN≤z≤L~HT"∧zZE¬-AQ#K[4
E%JD ∀2∧→k∩bα λ∀M∃∀λU∀
9→d:¬*X$m
D ∃~∧Iyd*∧iz"∧⊂∧ih∪ hiWβE_ 6βYα:=¬∩V
>-!α"ε≤Z& 4t ∃~∧Iyd*∧α1H
I⊃0 "H$iP'∪β ECHLεA
∪1
P_Q!PC[50λ
I⊃0 bH i"P⊂βH∂6αλ∃$L)HR¬<α5∩∧
⊂∧"P∩h∧S DEFINITIONS8∧⊂∀$ZEDmH⊂∂'WM↓⊃".s(Zα P!∩hεE∩U,!`∀L==0∀d@`∩∩∩m∞ <h¬∀IYα⊂!$U∧@
%TXASC==:17\∩∩αw¬'π&Jαε <HQPP@ U∃_U1NA→Ttλ
E∀pλ"PβBIND
∩@@A-
⊃∨
∪1&~∀$`AαYY∪⊂~~Lb∀4λL~ε&9∧ 2RJ-" (αB(
TVHλ∃α+∩j⊗dBE∧T*id FXP,(A)¬
@πβ∪
↓
%→z$,AQ J¬8ZEDj¬λeEαα#"A→Tpλ
E⊃u∀HJ⊂B"'cbb R@β Qβ¬→
mβ$eαα↓Q9@∀πR¬-8Xe,@∀β"A_p23DλK∀!*(α`b&∩dεE ;AR2Ah\`%βiyαVα8T5,J↓P@!(⊂
&∪β ARIαP⊃Iβ↓AA@KZεIJλ∧β"sαλ∂'d∀Q0(I⊂∧g"CE MOT¬⊗%¬"Q2J(5"k!Q LDJ+"∧~β⊂∃
Jp4@∀⊂i→ @)
∪'-∪!
A~∀%¬"2=α
⊃J¬1 ↓AAAα↓P@!33uHY(⊂
* εT.CL¬&∩∩m∂(A¬''>≤Jε@$X@λ @h¬TPUT TTY
∪'-∪!
AY↓))Mβ$QααH%m↓E""*λ∧r(yβ⊂!$U⊂*"f∪)P ∀YM0A$B&MαM→α>hT∧4LHU⊂hPα(∀
Zp∩H
¬∃∃⊗()!DDNβHβ3
A∂PAπ+∀~0≥∩λ∧∪j95∩3i@⊂ N↓λ⊂∀!~¬-≤∧λeEαβ⊃β!↓4⊃4i∧⊃P(⊗XT#⊗(⊂ ;PARENS COULT
MH∂-$A)(Y_X
6>$(4(→Yu (αP ∩1↓))'¬$QαR$s∂(αα& 5λZB∧4→HR∧lxHR∧∀~J0hPα4∃*9λ⊃V
¬∀C"A~∃0r∧λT⊂λ⊗⊗!RP⊃ ;P@+M⊂@J@λ∧αDtz@∧L@H⊂ j∀$g#@ YET)
λ∧∪'Q0 α `H$%@8 λ q⊃∀d ⊂4u∧ qH⊂iλ4P0jH4Tc!↓2⊂TK)P!#∀)"(∧B]kbP∃βANDL¬≡Aπ1 ~⊗α)d-≥4λe∀|T∧D$5R0hQ NtjH5⊃( @c⊂ ∀HE WORLD:
8ε∪∧A!β&A→%' A∨_A¬+
→%λ↓∞"ε∃→↓"→`λ
(5Q4J8(∪tHHαi∀FBα; C HAS TTY OUTPU@(αα~&2*αεJJ
H4)@1_∃∪∀∀ ∧
~λ(T%H_$dλβ"Na⊃-@≤H≤X∞ USEFEL C@AR SEEN
0⊗∩$h\`@t|A%¬ →&t)α&:α:D,D t2¬(X∀ HαNb!⊗λπ∪@ => (STATUS TTYREAD) = T
8ε∪-∪9
∪→
↓⊃β&AQ)2A∪9!+(A→∪⊂∩∃∧
JJεHh)l&5BAh&≥"J&:8αRεJlJ0∀
Iz"∧≤λ~"αBT∧ _H∪SjD⊂3@⊂∀h)$g⊃T@
; MODE BITS FOR IN@UT FILE
α; PAREL¬)⊃M∪&Aπ=+≥(~(r∩β'¬-βλA
+%'∨HA!∂'%)∪∨≤4⊂v∩∪=%∪∂∪9β_A↓¬%β≥&↓β⊂≡Vu 4*R%J↓E@!~¬-≤ $¬αeJK∀∧≤↓⊃∪L<Z@λλ∀⊂r⊂*(0q⊃*!"B3)zQ(⊃¬H∃∃∀h~J⊂4F(*".hx5λ∀HX1∃⊂()⊃(∀k→U⊂6↓Q@∧fgUα@
A∧αa5E"5BA$∧KZ≡⊗Q∧j>∩∃∧∩&@%1Q$L4d
4LEK0hPα0p)_(⊂
*⊂j,!U&⊃Q&CE CAIN TT,%@)a∞@$E0λMQ B(∧ TTu∧
∃⊗0F_ εE.BDXEND AFN SAIL
∪π¬∪
A%!2z4hP%α
∃~QαR%J↓\4U"Rf )`⊂MIId*∧~ H∃Lεεα.hi⊂ ∀ERMINAT@&AIβ →%→∀4PIα*J≥!αRRL⊃d4!~Ddtd
"d∀*GDdsβB"'iadhλ$c⊂&∩dεE MMDE
BRST TTY@∧d4PJ6 =hY∩¬%EF#β_⊃↔5¬≤XXD`5αi`⊂AAE¬
TL@≥≤ααεIJλaIAAαεβK8∧ri~λ∩1D ⊂0ri→β#P H)j)$Sα@∞~∀$A∃'↓$Y))e!' HI`≤,J8R¬¬X∧r∧λp⊂4D pπ"'H!*c#⊃i
SA%∪≠=(
,∀
E"eiQP@*p)α)Yβk"dH**⊗∩U,!`∀L+"M
JRST TTYB9 ;ALL DOL¬∀∀Ph*RRL⊃P≠Pβ"R(iH⊂ `Rd∧ →64⊂∪πβ%
A)(αa⊗Bb≥"1-
Xh %α≤
& 2λ¬∃¬D5⊗⊂jIλhZa↔q∪uhZH⊂p*8(∩c!↓(λ∩J*uλ∃
K0Mq!QL¬Dj∪''⊂)!!*≡⊃*←εE↔D@]bSα@λA∨_A∪
≤↓'β∪_4⊂∩Aπ¬∪
A%!2z,HI`≤4z ∧
¬i1B¬<T
D-∃λ)⊂hPα(λ *Tu⊂∃*,aQ∧D]P⊂g"⊂*∩ ¬N REP 3!∀A)↓
↓↓+
∃$∩∃)Q3∧o
h∪'π∪A≤Aβ$β 24PIα*J≥!αRRL⊃D4*%"f ↑8π M¬X9∧R¬¬I∃$-*
$Hh!→%∃≥D
E%L&y`hPβ"U
K0MqG∧@
IFL∧A'β%_Y6~(∪πβ∪∀A)(X∃)1π 0VE_~(∩Aπβ%_ αR a⊗@%λ:DbZ-A∪@9α#kbT⊂!`iQP
JRSPλA Q3∧o
4⊂v∪)1_
9α⊂¬D4∃GHe+pβ"W!⊃,¬bg⊃⊂ ∂F IFN SAIL
CAIE TT1=_∩∩m%!+≤Aα
Bαλd`:H⊂∂&⊂+bP⊂d∧EAR T@E SCREEL,
JRST TTY@2∩∩lA)↓8A%%JB¬ααI∧*∧*Xd4-!Q%%%_"tCP~94M∧dλ∃∪
H1P@JAS@ES
∩AQ→≥≤A⊂Xd`@@∩U'∀A'3≥Qβ0∩wM→β'⊂4⊂∩@A)%'(AQ)3∧h4⊂∪∃'@A$Y)Q3!'⊂4⊂∪!M⊃∀A1))3¬
⊂⊂∀!~DdzλJBc#∧εββ⊃↔5≤d~9∧L4_XB∧≤λ~ hUJK∀β≠!~Ddzλ~#∀
FFβββ∧∧α!↔u0 bQ*f⊂#∀'a⊂)QbgεE∃*,a P]e)T⊂)⊗*∃,h!dβE JRST TTYB1
TTYB4: TLNE D,1000 .SEE SYNTAX ;RUBOUT
↓ TLNE D,40 .SEE SYNTAX ;FOT SECON@λAπ!≠∪π
4∀∩@A)%'(AQ)3∧j4⊂∪∃+5!≤A∧αbRRf⊃"∧4(LBJJI¬!2
~¬∩∩@4PJ*V6∧)αQ2%"f FPH%nJ-"VJ9¬"5α∞b2εI∧20≥∩λYt0H!~4\MλT∧
∪∃H0HKαssj
h(∩)@)` DE READ ALREADY!
λ @!U'⊃∧A@Y∪)I!%∩∩lA/
A5+'(AM∪⊂⊗BeIαR⊗α*¬∀HQ!∀U∃8@λ
J⊗0D!⊃,¬P∀∩c⊂ ⊂OSSABLE) AND TRY IT AGAIN
λ
¬)Q3∧iεh∪!+≤B)αAe∩V F≤@$%nα*T∩∧zZB∧≤λ~ hP~94M∧D
E"bλ⊃⊂HK8∧ri~λ∩1Dλr⊂4D
p4h
9⊂4r _R11↓Q@∧P%∀)j⊂*∃,a~#CE PUSHB P,RUB1@π⊂∩∩m%+∧A=+(Aπ1β'AQ≠⊂≤4PJ*JN ∧¬%%_"⊂hPβ"U
K0M⊃g↓4rr* λ
⊃K
λ""'iadhλ*g&"TiP$gλ)j)$SαC
JRST TTYB4J~∀%)→
↓)(Xb@```@h %αU∩N@"λJEL∪IQP@LYzd*∧EH¬%%8~"D
&(∩HKαqq*D⊂r⊂*(0p
"T⊂)`→NTAP⊂~(∪)2t)α↓FBβββ↓∃e≤,T
5L@U⊂6↓↔qt⊃)D∀⊂4HYβ
S@∨&ZdQ
a R4PJR2~*α⊃1Eβ↓A@%u~⊗∃αα;∀e$≠↓∪@8pε'iQP( i⊃dε~∀$Aβ∨&ZdQ
a R4PJ*JN ∧¬%%_ !Q@εE*∃,a~%∞α TLNE TT0d``@β↓@$%]∩V
,!α>V ∧∧(0r`⊂∪βP(A=A'%∩& 4qQ J¬8ZDl@(
⊃K
λ∧FEαe))jλ**,aFAεE∃*,a4M:∪⊃I%5~AQ(XA
a R$KZJV
∀*⊃α>-!α
ε≤Yα&:αIr∧
λ∧u
)3Qc!↓2TTjD∃∃⊗(ε εEεB**,a
]j&∪α@
AβHeαXd@```@I`≤<tλ$≤αh⊂*)u3Q∧ 1H∀HX1∪∩)HαBE∧H%))jλ**,a`BE∧Tedh#QP)⊗∀⊃,(∀DB]iedT⊂ c⊂∩dε @'Q%∪≥∞4⊂λ%αU∩N@"λJEL∪Y↓P@L8→∀*¬%E¬%"⊃Q J∧αTTjD∃∃⊗(→`FEαh O TT$1⊂000 $∩w6
∩-αε~αN@%)→d:∧Yh@hPα4q*IpεP∀⊃,(∀FB∧e))U⊂**,P→`FEβE**,P~d∃∧U"P⊃⊗_X_∧W ∪EE S@39)β KZ~>J≤)α4XX@hPα(∃ ISH⊃¬Fα+J81(∀k→β* lα]ibaSdεD CHO@∪π∀~∀%αα*JN ∧¬%%_
)1 B2J:λ∀@⊗∃*,h)R∧@
JRST TTYB9A
~∃Q)3∧k,p∪)→9_AλXD```@β%*N,)αNfu"ε`%]~Bε∞(h %αU∩NAα%"f XhRRRf⊃*5hεU~AαQe"Rfε$h4(→*%≥αλJEL∪8⊃PP@ U∃_MH
∧U&''⊃⊗→____∧W∀bbP)Ve* lα]idg⊃d"P!R i⊂'P%"ajβE JRST TTYB6C
↓TLLεAβ$IαP⊃Qβ↓AA@HI`≥4q1JYλ⊂
$∩dεG SEEN
JRST TTYB5M~∀4⊃))3λiεt∪Q→≥≤A⊂Xh`@@~∀%∧RJNQ¬"Rf 4P$%@9iu"∧∀ T≥)t∧9⊂4C!↓2⊂ )⊗α R,VTSC@'H∩∩`-αA!
≥X↓0∩α9H5∩J¬λe@|∧ .@
?β
(¬∧hπQ ,∧@F↑λRR4Ph ⊂LYze~∧eE¬∩Hβ"B)Yβk ∪ T, ⊃$~∀&≤
6 2λ¬∃¬E∃
#!∧P%)∀h∧ .,h∩(LB2J@$
"d@εE∧R*f`⊂N R,.4j~(LRJNQ¬"Rf 4P$%@9iu"∧∀
5%∀→hrlDα2q$ 00tI@P!d T∧¬α
IOVSS T
H∨-∀A∧XQPR~(M"2=α
⊃J¬1!↓AAAα↓⊂K]X∧q(j3λ⊃J)pH∀hX3C"A~⊂ε'P∃*⊂2⊂000 $∩w'%∩& 4tλ$,<α3C!∧fgk⊃d¬ F,(@
"α¬⊂hPα2TJ:λ⊂
*⊗a→FEβE**,P≠%≥∧U& ∞ND,40000 .SEE @'e≥)β0$w⊂≡B,qαBε∀*0⊂@ ¬∧P∩))j TTYB⊗Q
∀∪¬_∞M↓i⊃"5α⊂
!Q@∧e)∀h⊂"*⊗a→FEβE**,P≠(]∧U'⊃⊗_X__∧W)QbP ∪YLTAX 9C@→∨M
A!βI∀4PIα*J≥!αRRL⊃`4λLRNAα ¬E%%_~Dhh!~4m≤HTαk∩λk¬αHβ"B$ TTu∧
∃⊗0F1"U∃_L∧]∧R)h⊂)**,h∀dεE∧U'⊂i→ @,100 00 ∀∩↓∃%'(ααRRf⊃λ$%@9ydeJλiu∀≤UXd,,DλTd∀h∃
K4pp)Aα@
TTYB0∪αβP&*Vmα∃α
e"Rf L⊂4(~
U≤DαH∀¬J∃⊗0J(c"B)Yβk"dH**⊗ U↔&''αDY`∃PDATE LINENUH
Aβ9λAπ⊃¬%!>_h &"e∩b5α ¬D¬%J8∃∩D5⊃∪@4⊂πc⊂⊂iigaR`j"bλ'j`∀PUPλA
%→α4PJ6.Z,IαRQd
Q:∞E_4(→
%∃TTλBd¬JJ4
∩λ5⊂hUJK∀βL'!∀l]hY∩∧
Eλ"Hh!~¬-≤ $¬αdj(U (4Tq!Q@∧fgUαAI B,(A)
MOVEI C,(A)
TTYB→D:↓JUMPE C,TTYB9J¬
HLRZ A( ⊃ε$~∀&lzR*λ¬∃¬E⊂*#!↓5∪⊗HT∃∃⊗X@
JSP T,FHCMH
&~(∪⊃%→4AαXQR~∧∪!%%$AXQεR4⊂∪∃%M(A))esλ~(~∃))es∀t%!∨!∩↓
1 XT~∀&lzP∀∀λ∩bD%⊃P@L**5"¬Yh$L@Qβ"AQU∃⊗(π∞B5 IQ(⊃¬FMm`→YDW)QbP ∪YLTAX 9S@↔∪@A∪A9≠ ⊃α<zJRαJα≤D~!P@J *%≥αλJEL∪1Q LU*:B¬%K_#≤λβ"@↓Gu∃⊗(
Ph∃
K0T@_H**,h∀d⊂ ∀TYPS!↓))3βQ~A))e↓πAQ)3¬→PA))3 _hA%"f
1
αRRf∀aH$λhP4*R%JαJ
β!∀E∃)z2∧
&⊂λD@ ;GEPλAπU%'∨$↓!∨'∪Q∪⊂≡d ∀b∧AQ%%%_*#Pα33jHαP ∀T,TTSAR(AR⊃)
α PUSHJ P,AFORCE
IFN ITS\DH`Y6~(∪' hAλH∩$∩v}A]⊃β(AQ_
α∩{x4(~ u∧Rλ¬@hUβ""'bg"∪c⊂$c∪⊂$j)W →_εB$c'∩h)`≤D20,[
MOVEI DT,F.MODA~∀%≠↔-
↓Y↓)Q'β$Q¬$bR~(∪≠∨-∃∩A)(αb→:∞D
8$%\→α"ε~α6@-J
U"∧i→D*∧iz"∧9 tL@Qc"A~∃0r $⊃S∀¬JPpλ'TFE∧j∪'"P#!!*∞⊃a←εEαP
OVE D,R 3MAYBE NEED EAH@≡A¬%⊗¬∧~VJN⎇⊂4(ε∧zB)αα¬@hUQ⊃∪@83Q @c⊂$c∪⊂$j)W ∧20
λ
¬)Q3!'⊂h~∃∪
8@`I64⊂∪β≥⊃∩A)(0K ∩b≥"1-⊗%BεNKY⎇α~|b⊃α∞D
Jε∞$*Iα∩⎇:0∩¬Itβ*∧)~E_h!~E∃Td
E"bXK∧
⊃β"A∀⊂TTjD∃∃⊗*
l#"A_p21$
∃&VβFE∧H*)-⊂∃*∩_J∧¬∃)Q3!&BβP4*@Q⊃∪@83Q⊂∪βF IFL∧@`~(∪∃' ↓(Y
⊃
≠⊂~LHI`≥¬X∧r∧λp∧ iλ$g⊂*∃⊂#g FRONT
∪!U'⊃)¬↓2∞yj0HKαh∪hd⊂ε$iU⊂ ∂F BUFFER@λA
⊃β%&4⊂λ&6⎇2⊗%α⊂a"¬$hP&*J≥!↓"IHh ⊂@ ¬εE∃*,`j∪] JUMPGE AR2A0Q(B∩$p∞∩⊗≤J∩*λ¬rλZα λER WE MAY HAT@
∀%≠⊂≡Z*αI1∃α⊂
λk∀
"!↔h⊂
"T&dg U ¬D A T@∨ ↓→⊗Z,aαεR|i0 (αB4i94⊃`⊂Y∀#,∀∀@ ; AND↓∪A≤yα∞t
D`4∃∃⊗(≤P g⊃⊂'jjβE TLNE R,BBT≤LN0≤∩$p∞@<T ∧
Q(
IIu
H
Hαi&dSαATED IF 44⊂λ%↓∧RJNQαBQ$⊃↔2∧tt
U≤,h¬3∧λp∧ i∀P)bbSα YET
∪)1_
9α
⊃J¬1 ↓AAAα↓∪@4λ∧ ∪TAP +~αRRf∀*ε⊃∀πR∧t→AP@J *%≥α¬
BHHα.h @h"g∀ i"g∀P i"H$ g#RdεG
JRST TTYB9 ↓;TTY IL¬!+λαα&MαLqα2→hR∧lxHPhPβ"C!
∃⊗0H→∞B4
Zp∩H
¬ ⊃⊃*@$abDB]cga⊂&"P H!`λARACTER
IFN ITS,Y
AL@@∩AQ(XK%B≥⊃
`∩U, iaB]c'f⊃⊂!d T a`∀ER TO 4εA¬∪Q&~∀∪Q%5≤AQ(XK%B≥⊃β"A∀∀∪t $∀β!↓0p2(T∃∃⊗Xπ7
TRZ TT,140
MH∂-$Aλ@1E"Q$⊃↔4
¬HYU¬"λIr∧4JZ4B∧→jD-∃*Z¬"∧9λ∃∃_Q!∃∀⎇D
E"bβ,#!↓01⊃ ∀∃∃⊗⊃!↔!*Q∧D]i⊃`f&,H)`λOUL@ BE MORE C@→Y$
∀%⊃%%4↓β$bYY∪⊂~~Lb∀4!→∧e∃αH∀EH∃∃∀h~J⊂4F∃ εE∧Te`h#QP**εBα HRRZ @$αbαRR≤
I"ε⊂ε∩HhαB2JY4∪@⊂∀⊗**,PαC@⊂~(∪∪∨-∃∩A)(αa""α#"KQ ∧]bSα@λA∨_A∪
≤αα&@%1Q M∧z "¬αββ"AQ@εE*∃,a&*∞α SKIPN AR1( ε~(∩A!∨A∀A X4⊂λ&6⎇2⊗%αλ¬BD∩⊃⊃∪@:α,h"H'j`∀↓β⊃1∧∩V~~-∩⊗⊃α≤BεJLhP&BVα9∧R¬¬Ie∀5Q4J8".` @dεTO THE E@π⊃=∧zV@%λ¬5∧λR3⊃!Q@∧fgUα@∩AλXQαR4⊂λ&N\JB:¬P
¬λβ(λ@ $∩∩`.L1α↑∃∧*0∃$X∧Q(D∃r5 ∧⊂∧ g⊃dg#FBα JRSPλA%"f
1λH%mααλ∃∀h5B¬¬)→e"¬IλThhαB4
Zp∧⊂#⊗(⊂-PQ~@λ¬⊂hUJK∀∧cG!∀l@uQ2$
∃λE↓α@
PUS@J P,TYOFIL
SGSLE ⊃
a R4PIα*J≥!αRRL∩1P4PJN@,$λeEαJ&sα[⊃Q LLzhTJ¬J@εFβ"B*
4r∩D
∃⊗)xR3β!
∃⊗0IF,B2JY4⊃(λ¬∃∃⊗()B"'bad'H f&⊂⊂βHARS T@≡A∃∞"t
E%HQ!∀De+$∧
@λ⊂B!Q@∧d)∀-⊂ ∀T,(C)
λ PUSHJ @,TYOFIL
α HRRR B,(B)
JRST TTYBL1
TTYBL2: PUSHJ P$NREP
∃~∀4(Lj>@4Y∀∧αbλ⊃⊂HK8∧Q*:∪tQ$λP0rjX4Q∀d ∩4u∧ qH⊂iλ4Tc!!33uHT⊂k⊂*& ".j(4q∪j((⊂h¬ TQ5HZTq(λ→⊂πa!⊃i"b∧CEh'T%⊂ ⊗βEαEεBβ≥i*a∪jj⊂)∃a_adλ)*a_Pβ1 BUB1C &4∀∩∧~)%+¬∨U(tβ≠=(
ε%∧!2FJ,∩>FPHI`≤@∀q0J$
⊂α 2)
CAMGE T11εZ@⊂h %αU∩NAα<rε">≤(4(→*Tm∧T
Be<h→D`:q#"A_p31$
⊗⊂eVA"B$
p¬dh⊂P iλK+∩b,SFE∧Pλ(#h⊂∀⊗ i_CE POP P,A
∪∃M AYQ3∨β%≤~∀β≠=(
ε%∧ 1"R H4(ε¬*N" ¬↓2R≡4b>,4PJBVNDQαA2∃* F
α⊃PPJ *%≥"
Ydd]J*T(h!~4-%$λ∩`h!~Ttd8 u∧PQ!PE∃X&∀9∞B2 JTH⊂%E⊂J"!↔q⊃3λZ⊃(⊂iλ4H⊃J)s(⊂JXQQ4HXλ∪∩*:β"B)
TVHλ%
⊂J!Q@2U)Z⊃(⊂eHt∪t !".u λ5 td 5λ∩(d∪ShλXp∪hλi3⊃#!!4∃4i∧∀⊂!Q@∧d)∀-⊂ V
TDDNcbj⊂d i Ph"i∩dε A
MOVEI AR1( ⊃ε$~∀β!U'⊃∧A@Y%+∧E
D∀PIα*J≥!αB>∧
(4*L20∩∧~J5dβ&¬@M¬X∧r $∀∀J:⊂u4A⊃,s5*:λ∀Q*K4⊃(
Y⊃s⊃$
u∀R)HβP$gλ(" aQFA∧h∃i`%⊂∀⊗**,P&*εE∩c'⊂$U)n"20, PUSH@∀A@Yπ≥↓0~∀&U∩NAα∧zBε(hP4(Q'3@7h⊂ 'Uh NEL¬β 8O ⊃α\J204PIαBz "¬αββ"A→αgk"RP*⊗_CE CAIH
A∧Y0~@q⊃∪@8p∧ i∀P# ∩OM 40 TO "β9P∩∧~(R∧|βQ#!∧P%)∀h∧ @%U F
α1⊂KZλ∧∪j95∩3i@⊂+db⊃T∧ @'<A¬βπ,A+ A¬_
"λZ$
≤QQ L≤→→b∧
Ki⊂HKαp
PαS ARE VARIABLE - MUSPλA∀*RfB(h ⊂J *%≥λ⊂λ'T%_FEαa`dgλ V/%αDXLIL¬∃α4*⊗⊃αM→α$βusJ@`i" MH∂)∪=_ ↓QQ J∧αTTjD⊂sT
Q .hλZP4q$λT∧P&SβRING UP
CAIN A,↑H 0↔¬¬β↔'∧
∞∃αM→αεJ
~⊗⊃α∃H4(∀ %∃≥Dλ4`*⊃B"'P
OVIH
∞A→_∞J↑
∩⊂$!_4LTλ∩etQ⊃∪@8StHλi⊗⊂"∪dε'TKNOW LANGTH GF PRE@-%≠ ⊗M∧b& 4QQ J∧8→∀`$⊂+↔Kq .qI@i⊂ ≡←, EAY OR MAY NOT @AVE BEEL∧A ∨U¬→λ4⊂∩@A)%'(AA≠!∀b4⊂∪πβ%
AαXLf∩∩w¬→)6|"∃α~4∧Ex≠∃~β∀
tL$QQ J¬IId*∧eHd*∂∀p'a .sjI⊃4@⊂⊂dπF@)I_∞ %4 td(⊂dQ ¬ IF IN SAIL MODE
JRSPλA∃*∪4∧c!∧fgk⊃dP ∀0d∩αw=)⊃∃:&N∃∧~0≤@U∀SiD⊂r⊂**h⊂4HT∃∃sd
p∧b"CE)*aaYP~ MH∂-$A)(Y_X
∞λ→`hPα4∃*9⊂¬⊂#∪(⊂RCPOS
P@→≥∀A→24∩Q`$X7`hPα(∪)Zβ"P")
MH∂-$A$XQPR~(L~ε&2*αQ1λ@
!Q@∧P(∃i`λJ P,CNPU
α CAIE R,2~∀$A∃%'PAπ
∧∩0$!→%∃≥Dλ4`*⊂PS↓QTεDDNβEND↓_∞→αL20∩∧~J5dLβ!↓Gi0Q(_⊂ε$g⊃P∩`∩DLN5 %R@@→≤β1↓εJ$b0∃Rλ~%M∀λλ@ L¬!β%Q A βI3 ∩A∧
JfRM↓αεJLJ0∪
λ~%LLd∧C!↓α@
8εvvAIβ →%→∃ααH∀\-4
5$hH∃∀αλi∀d*xYt2∧α3T
Zλ⊂4Hz313JJh⊂3HD∀Q0(Jc"Ng]P'g⊃P INE F@%=~AαA→∪⊂∩∃p∧α∧MD ∀`*Srq*4∀⊂ "Kia`g∪$g#@ FOR TTY'S.
0⊗@Xπ2¬$λT¬∀
8YE"∧~4¬∀
JZ$d1λ⊂*4⊂3@⊂⊂h ∂MI@εA'Ljα>1bα⊗b∞e*∩&:8∧¬$DQQ#@7nh⊂h~TR0(x(⊂ "U*i' Tπ⊃&≤AαR⊗α)TLT~HU~¬IλR∧dα3Q%@⊂⊂&$S ¬ FEEDS
8εvvA¬%αA∪≥≥∨%⊂@Q
''βI2A
∨HA'+π
''∪Y
A%¬ →β≥∀O&B\4∀∩∧KIβ →%→∃hhP&*Nαα⊃2εt~ε2AQ%≤4∀Q∩αα∧
∩-∀X_DdLhQP@*qP!↓∀λλλ~qkTHI ↔%E∀)4HX1∪∩)@ ¬¬
MH∂-$AαY"∃%ββ 1∪⊂~∀hP&"JeR5α¬d∩~BJ%$%NαλU∀l~@¬%%∀
¬∀+0ph→@εE∧SdπVEI T _KI →9(h ⊂MλZ4DRλk¬αdβ2sJ&Pb.jλ4U⊂∪βF MAKH
β~4⊂∪∃%M(A!≥≥_
-DHI`≤≥(X∃$(∪Si@⊗dg*⊃i'"bλ)lfa∪βHλ~∀4⊂ -(ID`&,B4
Zp∧⊂#⊗(⊂D
λ % 1_ YHMαVN $¬αdλ¬⊗)→α`gεBαIFN↓'β∪_104λL
0∀⊂∧P*∃⊗∩`∀X@π ∩E0 *K⊂4pa↔qSsλD⊂r⊂*(0p
"T⊂"'kSα TO 4εA¬∪Q&~∀∪Q%5≤AQ(XK%B≥⊃β"A∀⊂¬))U⊂∩`∩DLNP∀~(∪πβ∪∀A)(XDh
@8Q!∩¬%+$¬%"β ~∧¬∀KI →:SP4*@Q⊃∪@83Q⊂∩c'⊂)PdfεEαa`dgλ**⊗/∩∧@]dQdεORE L@∪≥∀A~⊗,"L4!∀∧U∃8¬⊂ i"&'
αλ
(Mα0≥αλk¬αdAQ L≤→→b¬%EKdhHα.pj$∃⊃4IY3P5λZc"B$
⊂πh%λ(⊂
H∨-∃∩AαX!)(@$hP&*J≥!αBz #λhαC"AQ@εEεBα PGTLπ A∀"I2nDJJNVαHR¬∀X_D-∩D T\βP3%D⊃0
!KαX
4SY`≤αλYd"∧βqH
(α`b"T⊂→→[βE
λ∧vw↓β%%βd@pj∩%β%%βdA!βπ-β∂
~(p
mmα↓↓))RQ)αX_4dM8∧λ¬%JJJE$⊂4TH≠(⊂λ PβKAGE ***************************
8εvv@@TTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTT~(p
mmα↓↓))αB¬%α≤zBfJL:"Q↓α∪∪ 7(∪0*:p0r
Zq0
*∀P NSTITUTE @∨↓)⊗∞Dr6 $x{∩αR!Q#@7nhλ∧¬JJJE%H⊂
$∩iP$iH P ∩EAD%ONLY FILA! (AH@_A]%∪)LA%≤*JZ⊗ I↓))RQ))(hQ`≠[4∧ααR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR%%"RR!Q hPβ"C!↓4⊃pIZα⊂ i⊂F@
S@+ ))λ∪¬%%β2↓!βπ↔¬∂
∀4⊃∪
≤ααN~¬`JFN~λh"&~p∧∧T|*→∀`5α∧he∪βB∩∩m)⊃π∀Aβ≥ I∪&AU'λA=_
2dhP$&F4J2∧⊃↔2∧∃α(⊂**P61 →4h⊃JYPp
$SβH
∃¬%3) Dp∪β&9%↓(W¬&P~~β¬J4Q0(J⊂0SλQ,¬`∩EADTABLA~∀%β&M∨ αWβ&9'0@.
→2<8¬Bex(∃∃∀≠⊃∪@9βa i∀ h
L¬!β%Q p∃@UaT
∃~JβλKαhh @c⊂ ⊂E@π ⊗2L
Iαε∃∩εeααK∃∧4c"HK α0*5β",,,QDUPLAP⊂∩$∩w +A→β hR∩a∀JiD4
≥A⊂&ε~rεaEJ∀@s0λ&⊃l∧DDNβC@∨≠A→ hR≥BQ∃Sλh(H" L~5d$∩EJ∀$⎇X)D(Hα".hIu0SλQ ¬"! DVP⊃
λ∧∪β&9'0GβLY≡∞αa2RJ-" $%]→6⊗B¬∩⊗NNLz0 (!_∃~@QP,,QFIXLUM ;FIXLUM
AS.FL,$QFLO@≥4∩∩αw→→∨:,h4(_~2`*v @$f∧DB]c ∪TLπ%
[Q3!
~)→β%3Q p∃@U`(~V5∀ε⊃ ¬ i⊗h,h≡O`i,j∀_VW&⊗α ⊃βLX
J∩ ¬∩`Jh8T*∧_I∀m_↔8d`:H∩QHiith @dε @)!
A¬∪Q&~∀~(p
mm¬"ε
2*α6→α-BRJ¬∧J0∃≥J*T
⊂∧gg∀P#'iλ i) VP λEAD@$\4⊂vvv↓⊂~R∀J⊗Mα
∩∃αj-∩0~∧α1H Ih∩3J:∀U0jI3s@ Hαbb"Q↔
;8εvA9)%∪LAβ%
↓→⊗≡
"&@4Tλdm∩λ→b∧LIHT<Dλ∃∃∀≠∀¬%MλU`hSαjnd¬⊃SuλT∃∩⊂*D∃∩⊃$ t⊂shH(λ∀
Zrλλ ~h∀∪j95∩5HUJ#"AQP4V)→L.B&↓"".j(01∃λ_S⊃#!!,α"!↔qpP**P6#!*⊂S⊂i h⊂4K→3L+ J⊂4U
↓ Q⊗∧A4∃4i∧∀⊂hJ4∪!⊃,q∃* ⊃6β!(⊗ "%V#"Pk∧α4∃*9λ∀λaf`&DD]aSd¬PLEX
∃π`J∩Zb4∃ ∧H%!+'⊂↓ Yπ _b$KZ∩>V∀b∀4*$⊃∀%5λh(%@HH%nMl*bBJ-~N&>ph(&B-~!αAd~~&aλH%n~MB:V4hP&BV≤AαA2≤22>ε#λ$%N4b> 5YQPPK↓⊃⊂K\h∧u ZQ+5~⊃#"JHS⊂r 4⊂4V)→β_V&⊂i,j(βE
;8εv@y¬ ↓%M&A∂↓'#¬'
%∪!λαα& 58J%,≥I→t`$∃⊂0IH,π⊗⊗∂&jf*∩h"$bT≥αE≥N]P"$⊃P
@+1)∪!→%$A∪LA+'⊂A)∞A¬ ∃+πPA
∨$↓)⊃
A9+∪¬HA∨A]≠% &4∀vvv↓≠ππ+A∪λA 2Aβ
⊂A→∃≠≥(8~∀4T
Jf&q⊃`&∩Lj~R baD$¬]∩⊗ε∩$
2∀hP&∩&m~R 1cλ$%N|∩εJJ
H4*R∀bε"-∧
Jf&q⊃2:B
∩R@4T"a⊂&$J6jR⊂a1P$KZ∩VBd*`4
%A∀%@hR≥BA_DLLJH"bc!⊃∪@8pπfh∪"hεE⊂βX% 0
DB⊂∪ ∪≠⊃)∧XXH∩∩`.$zV
2(h"$$Q∪@ ¬∧b∩d¬S@)λXXb∩$p∞M⊗-BBJ⊗α:4L\βC"A_⊂31JHK!⊃,¬c$V'*fFB∧b$fQ*!⊗⊗D@ ;FLOFEM
∪ %≠')∧αa1D⊃↔4e≥Iz$*@5⊗4λQ"U⊂IHp∩`⊂⊂i( IN2,LARYPP
;DIMSP ∧A⊃∪⊂⊗~αH"∧⊂∧fb∃!⊂"$Sm*!εBαλ
)YY`~¬H_$d4h∪hd⊂∧g)U)*aj∩dπ@≥ε↓
∨$A
β⊂∩I→d:∧~*$
Jλ∧u()a`∩IPT
;8εvAπ¬→π+→¬)∪∨≤ααJ>VαI∀`(αiW DIM@'Q α~4∧4⎇$
2l-α⊂∀HZtr3i@∧¬∀vβY`~∧~*$
M5D∧@Qλ⊃ →αc ∀B @
∨$αα~V2bjP≤@tQ⊂⊂i) lTTε¬
λ¬∩→Z5$∪αB2J:λ⊂
*_b$fTDY`∀A@LE OF <Ny ∪≠~:L4λLRNAααJBc∀I→U_h!→%≥αλ¬∃¬Fq∩3*1 B2J:λ⊂
*~"$fTFA∧e∀h⊂ ∀T,5DIMS
∀~) ∪≠
Q h→*5α¬J@ε_⊂∧fcα]j a∪ ¬ OF 8 9βhDL@1ItaQ@∧e)T⊂**,2@ β≠_~∀&U~AαR ¬C≤$→X`hPα2Tj∧∃∃⊗
∧@∪≠_~∀&U~AαR ¬C,$α31AQ@εE$Q'⊂"!⊃& c@+@π1
→¬∞P∩lhR∩&6%"∪Pα2Tj∧∃∃⊗b MD
∪∃M A)(αaJαεl 4(→*5α¬J@ε8∩31↓Q@∧e)T⊂**,4@ &l 4(→*5α¬J@εX⊂∧fbβE(
8π≥λαα0≤2 _d`$⊃⊂QIH1jpkλS⊂1aQ@εE$Q'⊂",⊃& c@,Xε~¬ %≠5)∧βP&*NααRQF_DL@4¬εEαe)`⊂∃*⊂2DIIP∀~(∪∃'ααRQF8DL@4¬εEαe)`⊂ TT _i⊃∪⊂⊗@!Q LU8∧¬%"β
1 →αh
] ∩w∃_
" xb∧Li`λλK⊃S⊂(q @↓Gu∃⊃λX1λ∃
H⊃1⊂dλ4TP+∀ )0**P6(λ~TV,∧λ4TV&λH⊂4J+,⊂hλ~TV,λd⊂4TK⊗⊃h⊂**T∧X@ ARRY1A
∀~)' ⊗
%"0&ε∃∩εeαr⊃↓(~%∀
α(⊃JYPp
$SβH
&~(~∃))⊃βλ{ !+%!≤Q)(R4⊃)) ∃ ε{%"∩,_@
gJ∃∀oλe_∞,,> ∀~)β%%βdpλ&*≥↓αRQd2P≤@P0ra⊃,¬c)Ua)εEαc Y→M~[∪F(`i)⊂l@
JSP TT,@↔→%' ∩∩m→∪↔
Uβ%%¬2P⊃α∃*Qα~M∩NAααJthh!~5,∀∀
Bc⊂α".dλ4Qtd Su⊂⊃hεALUAP λ4⊂∪∃%M(Aβ%I2`~∀4⊂@∃⊗
∩JεePh &*≥↓αRQdb↑ 4_90HKαs∀jXTH
ε$ H
e⊃ B3λ⊗Li~M≠V⊗(IR`i)⊂lBE T)( 0: MOVEI TT0Q @$hP&ε∩$IαRQbBQ$∧KZRQα∧z& 5J4¬$zλ(Td⎇tλ∃∀≥4 tb¬λI@hPα2∀J+H⊂+ε%∃∃α!QP4TK⊗⊂NB)YuP dH#⊗⊗f⊂i,j(αDYad⊃a` OUT ARRAY TYPE
ARRY0C:∪⊃I%4A∧1β%3)@bQR4∀∪πβ%_A∧X!αR~∀,ARRYQ2(F) ;ARRAY @)<Aπ∨!dA¬%∨4A∪A9∪⊂~∀%∃+≠↓∀AαYβI%2c4⊂∪⊃¬I0 αε⊂ε$
@⊂4TK~,J⊃E⊃,¬`i∀ h TLεAπ∨A2A
∀z5α_d¬ HαB0h→3H⊂%J∀U5 ↓α@
JRSD↓β%%2E∩(Lj0≥Q2(λT∧ ⊃ααH$%NαI∧M∀Dλ∃∀h⊂Q*J⊃0@⊂⊂α@
Aβ8Aβ%%¬2Aβ)M⊂∩_hP& ,zhTJ∧EE¬"Hβ"B*
4r∩D
λε i⊃cb`∀ ; @)<Aπ∂!dA≥8∧∧`9β"P#∀'bFEαdgk"RP*⊗∀⊃∀@
HL@→4↓)(@2
∩JfEλ¬∧2Hα.tjZ∀∪∩(Xλ⊂4J(4∧P!⊃h∧TER BE
P ≥∀A)(Y¬'β$Q∧R∩%Zα0≤2λ9u∃∀X:B¬%~λPhPα(∩J*uλ⊂**T,1↓Q@∧fgUαAI A,(C)
λ %@/QαAβ%I3"`Q_R∩%\J→α~⎇!1α∩⎇~⊗eαdzN⊗dhP&*J≥!αεJ∃IF∧Q c\~*%M∧λ∃∃∃~⊂$λ4TV*⊗H⊂4J+4,hλ~TV4&D⊂4TK~-(⊂**T,1∧λ4TV&_H⊂4J+,H⊂**T,P$λ4TV&(@εEεBαARRYQ0: SIXBIT X@≥∨PA%β⊃)β¬→∀@Z@U¬%%β2¬8∩(M~&b
M!α`$βSu∧ pP4J(4∧P⊗H∃ i)⊂lPnεBαλ
*
∩JfE P&εMu∩∩QEJe∀01∃λ_S⊃"'i"`⊃UIRED↓
&Qbb0∀zλ~$:∧HXd
JAP@!04kI@a V⊗∃αOBARRAP∩~(~∃β%I3"dt%(
J⊗"Rε
d)12n¬∩∩R
eh4(~idLBβ∃I@a i)⊂l@
λ¬β%%e"ft∩@XXdU1%π(∩$∩w6
Aα&:$*a-Ebb2ε:="!αxd∧$
H⊃P@!3pU
94¬∃@1+20 ,,OBTSIZ+ "αYIA@KZ~>x[∩αjλyE_h!Q$
∃+~∪#Pα+ _K⊗→DDB]i`∀AL¬∩ε∀!α<4λ∀`8RS@⊂∀'` NTER0∀~(∩P∃@Ix%%≤α6Jf↔Kl@⊗→D]@ -<@→9∂ ∩↓∧J0∩¬xJ3rbGJ$,@λ⊂λ'TP ∂F DATAx~∀4T
JJ@~⊂
'∧i"*⊃$hλ ;FIXUP @%=+ ∩→hR∧St@⊂⊂c*"iλ!&*εBα OBAFIP⊂~(~∃β%I2cλt%'↔&∧ αεI∀ 2∧Q(∃∃∃α,1G∧P$)∀-⊂ i V∀ T→ TDNβAR2A HAS SAR OF ARRAY @)<Aπ>¬Iα5)yPhPα33j@'$P T_V→(T)∩∩mβ$bA!β&A≥U≠¬⊂∧∧`8H⊃∩)X3Pr)@dεS
PU@' A~@λ∧ →β$$a∩h∧ ;HAH A∧A→>≤Z$4!→¬∃∃αH∀EH4TV*⊗h∧#∀B]i⊂$⊂iP&"Sα@∂)⊂αα0≤2λ~%∀
α(⊃λ~α FEαd RZ @λ@2
∩JfE~B→$¬\!α"ε~↓E.H~$<-8¬⊂∪ ¬GAL INDEXλ
(MαVN∧λeEαβ⊃β!∧e))U⊂ i)⊗Y#εEβE i)⊗Y_
CAH_APY1εZβ⊂$%@8∧Q(zαf iλ i) VF@
JRS@(ααεJJKα≤4!~¬-≤αλ⊃K
λε$g∩$a$jα]`λALF A LLππ.Hh ⊂LYzd,Jλ∧@⊗D@ ;R ACCUMQLATES @'%0
* xb∧∧~H⊂hPα2∀J(αdP"→∀ ∀$∩∩`-hπB4⊂πc⊂⊃$fbg∀dgg)O∧¬α MLπ ~:JαεIEc⊃"Q⊃⊃∪@84L ⊂⊃bj)P∪αUMBER @∨↓ ∪≠9'∪∨≥L~∃β%I2eαt%!∨ A@Yα4T
JJ@⊗(#@!2Tt∧
λε#,∪αV1
P 2tqαRQbiD4!∀∧U,X∧⊃d
∃⊂**T∧Y!CE WTA [ILL@∂β0A∩→XT`*p∧ggλ⊗P∃ T) lPWF@
JRST ARRP∩eλ~∀_wβ%I2eεA¬%% &)αεJ∃IJ2λ~%∃K)↓P@!α@
ARRY2C: PU@' A~@λ∧
Jβ"B)→αjf$H)⊗∀*∃∀@ ;PRODUAPλA∨_Aβ→_↓ ∪≠9'∪∨≥L~∀&z*1α ¬D
∃+⊗$λhαB3)Zβ"dP⊃⊗⊂λB$∩∩`.α λ λ4h∀i≠Q(∪hd⊃⊂5λ∃α⊂ i P$ TP ∞IL, ∀∪M)4A¬$eαX$∩vAλαα"εMβ ."ε∀:⊗NQ∧b⊗≡εbα& 4H[hPα2∀J+H⊂ ⊗XT ∀BDX@!%∞-ααZα∧
*(∃J∧βP3(Q ¬ i∀,`b]αe*fh⊃P V T)( 2F 0↔β1(∞ε@~4∧@⊂ε'kH'$fεBα MOVEI @)PXQαR$∩w∂PA!>LrR-$
D`4⊂4TH≠)th @ fbP⊂i#FEαd∧SH↓)(@1m~⊗≡IxpHKαs0)8(⊂λ'RdεTER T@≡AM(A)β →∀Q!∀l@uQ(
Jλε)j
**∀DB]cbjλ* a&⊃P"g*∀,@
TL@≥
↓)(@2≤
rNdHI`≤@p¬P$Q⊂)`iλ'i⊂)Vd¬BOL
∩A)%'(A¬%% %∀0$%@8¬r)@⊂ F IPλA∪L~∀%-:R¬αt
N⊗HHI`≤,J8R¬=)hrm⊗4⊃%X4Q`⊂⊃i)'iβE HRRZM A,-1(P) ∩wI!2~∃αJ-"VJ:,!αεJ8h ⊂L**5"∧~*%LQ⊃∪@83Q⊂∃)( AGAIN↓(∞&R@∧∧
∧βs ⊂∃ ¬S@(4⊃β%%de→HM~⊗@$βs ⊂∩dεHIBIPλ∩∩m_∞@$α⊃4D ⊂3⊃D qH∪ @a`I
λ∧∪⊃¬1~Aβ$β 2R≡%~B$KZNεZ*α0∃,X(U∩∧βqHλI313J93sTaQ@∧fgUα@∩APXQβ$β $$↔:B∧8:TmH~D-~λ∧r+ ¬ OF HEADER~∀%≠⊂≡Z,iα↓IIDMβ⊃⊃∪@:p5Q$ε*s⊂*(βb`∪T LEGAL @∪≥⊃0~∀%≠⊂≡Zα9∩∧λε iKαSX
P ≥8A@2
∩f@%∧∧ ∀⊃∀@]iKbhλ@ Lπ$A
U→→/∨IλAβ%Iβ2`<hP&ε>T αQH~%∃K)↓⊂K\hYDe<z(B∧tXXE~∧Xε∃
((⊂gT ∧ IN HEADER~∀%β ∩↓$Xb∩$p∞M⊗-BAαB~.MααJt`4⊃3U
)10 P∀ ¬R WLπ%λ~(∪⊂∩N@∧¬∩bT⊃PD
*+∪∀C!→¬∃∃αH∃
E⊂4V)→β→∀#
DXAC@π⊂≡Vu!α~>⊂α2⊗:=""Mα|1α⊗:%∩&⊗LhP&&6,b%αIbBRQ∧hP&&>4r5αId∩BBh∧B!↔i(∞)Rm"P'Q⊂ i)⊂lP" U P$gλ+`∂RDS>
ADDI T,2 8π ∩↑zαV∩M∧J0∩∧λX∀$
$λd`:H∩Tj∧⊂3Q∧
p4C!∧d!&∪P*⊗!∀( ∞@$$∩w'βY
A'∪i
A>2α",_HU⊂H!_∀$∧α(∀EF*⊂
∧BDXONE WORD FOR CC ALπ¬∃≤ααB>→jD-⊂Q!∀E∃)Pλ
%∃∪u
:⊂b"'i`k"H*#j S⊂)dm⊃P ∂F ARRAY IN WLπ% &4⊂∪≠∨Y⊂∃α
⊃J¬1E↓$$↔84d|((U∩β)hB∧
(p¬ 95∩⊂∀`i⊂'Q⊂ i)⊂lP ∀O CGPY
∪!U'⊂A
a Y∩$p∞Nε4)αεJ∀
eαRMα∀4!Q#@8P3∪
4∃∩∀I@h¬GH
λ;ARRY3A ARRP∩l↓β%%2Y"Aβ%I2`~∧hP4)@8h∀de4 ∀`!α@
S@↔∪A_ α¬biE"AHH%nε∃∩εeα|1α:&bα≡&Z-→α¬α≤
H$(LRJNQ∧
JJ@⊗8⊂HK8It`$βj⊂"∪P)`i⊃bj⊂#∪βR NIL ∀∪A+'↓∀↓ Y'βI∂(~(∪∃+≠A_AαY¬%%"l$∩wβ→Iβ 2↓⊃β&A∧A'β$4⊃β%%dgα`(LRNAα ¬E≤9ye_h!→TmQ2(λ¬λ⊂ ∀CE MOT¬⊗%∧→2Fε∃∩εdQ!∃≤\~λR∧
EP%
λ∧FEαh*`∪HJ P,PUPP@%= ∩αw¬→⊃αα
U%¬)zα∧MD
T`)⊃0tdλ5∪s$ 4h∪I→β"B)*30∪Dλ+⊂4J+-C"A→3uQ)T⊂K&∃∀
"!↔uq(
@`g" TO @%∃)+%≤ααR"∃¬~εI1∧r6@" i∀bλQ!∀l@uQ2$λ+
⊂E⊃ ¬ i∀,[∃∧SdπVEM A,ADDSAR ;ADDR@'&↓≠A$B∃αN
⊂4(→Yu (2(⊂EH1⊃0(A ¬∧fShεEM@∧Yβ'¬$QαR$∩w)⊃%&A'βe&A)⊃∀A∨2 ∧∧
∃(≠∩b∧_d∧uα+λ ~h⊃⊃(_β"B)YuQ(λ%⊃ps)9β"B*
4r∩D
∪1)Z,#"A→U34λT⊂+⊂**V-T!Q@33j@ dP! "b)PiαE∧R)&&@ @,(A)
ARRY2Q: HRRZ TT,TOTSPC
λ MOVEI DT,CAMNT α MOREI AR2AGC@≠↔0∩w%+9→∪≥∞↓
ε∞]*AαB|J2R⊗⊂∧∧4⎇$λt@2sβ!↓33uHY(⊂kε↓".uλ→3λ∪hd⊃p3)9α⊂#'T⊂+dg∪αING↓ ⊗ε ∧∧)⊃praQ@∧fgUα@∩A_XZb∩$p∞N&T)α>→¬~6 %8¬⊂⊃ ¬AD↓
2x92∧tz@¬≤LJ$¬$D→`λ
(451*:⊃1β!∧iedT P"ε⊂αPSH ;RUNL¬∪≥∞αα2>∞
"& <βH∪hd⊂S∪heP!"Qdg'$Sα@∂&~)β%%2Yαt&lzP∀(⊂4F(+⊂4F⊃ B2
*T¬⊂!∀ i2A)¬
JUMPE B,ARRY7 8πβ→_↓ ∨
↓+∪)⊂↓∂π↔0~∀&E∩Jiα
⊃E!λ!⊂hPα2∪
+H⊂+¬λ4L"!Q@∧fgU P ∀T,(A)
SUB D,TT
∪⊃1%4Aα0Q∧R~(∪⊃→%hAαYβMβ$Qα$∩∩gβ1∪%h(&*,jB9αλbεJJK2∧4(L~ε6≡*αRQ∩0h(&∞j≡∃α%!2∞εlrP4!→%∃≥Dλ∃∃∃⊗h⊂hPα33j@ P#⊗∃*εE∧Sek"P⊂T∧AR∩A
MOP
AHYλ~∀%∃%'(↓β%%2Yα~∧_wβ%I2nAβI%2oα↓β%%2]∧Aβ%I2hAβI%2jA¬%%2k⊂Aβ%%dkAβI%2k∞↓β%%2`~∀~∃¬%%2nh∪∃+≠A≤AεY¬%%2o∧∩w
∨U≥λA ∃βλA¬1≠πεA ∪∞A9∨+∂⊂4∀∪⊃%I4A)(1)∨)'Aε∩g1'
A≠U'(A∂Iβ∧A≥∃*A¬→=β⊗A∨_A%βU∪'∪)∀A'∪5∀~∀∪!U'⊃∀A@Yβ∂)M!ε~∀%∃+≠!∀AαYβI%2p~(∪'+∧↓)(Y)=)'!ε4∀∪⊃%I1~A PY∪≥'@~∀&E∩Jiα%!2R>%~B%]:&2D T\Tλ∀r∧YjE∃HQ!∀U≥∧
Bd4≠α∀λK9yb∧<9Y4bpQ!∃¬-9 "¬αIh4l@Tb#!!33uHT⊂K⊂(H∀p4AQ@4∃*9⊂H∀¬K⊂ssJ1"B3)zQ2(λ%
⊂"!Q@33jH2(⊂%Hps2iA B4
Zr∩H
¬SPiHl#"A→3uQ$
∃∩)Jtβ"A→Ttλ
E⊃R6ε_!"B)Yβk"fH V+!∀"g"⊂βE JRST ARRY5
ARRY7A: HRRZ AR1,(A) ;C P@∨∪9)&A)<Aππ≠-_A)β%_A/∪Q⊂A ¬λA¬→,A)=∧∩∃αVα8T @ ¬∧iUa⊂#⊗⊃`fg*α]c⊂$⊂b⊂!dV ¬ OF USEABLE DEAD BP,CONS
α MMP
AλYβ Mβ$4PJBVNDQαAKλ4`9β)FEαd)&&H i→ K∀ i1)
∀@A1π%αJ<4PJ"JJh∧∧
@λ∧!TB]h ∩OT@π$*⊃1αU*N@"λ¬∪dλQ(∀h_Q#"D∧λ∪Sj
Sc"H~TV-π∧d!)⊗αM @$αb& 58∧α'i⊂''Uβ @⊃∨1 &A¬∃∂∪≥≥%_
: xb∧∀Ix4Z∧iz"∧tX¬`⊂⊂i) lCE i)⊗X¬0∀∪A_∞Aα5BA2_HI`≤LhHUB∧α3U @P i,U(_FEαd))-λ)⊗$g∀h∧D]T⊂ λELPS @USH OUT ARRAY HEADE@$4⊂λ&∞J≡∃α2b0∃∧~*EH↔9T\T
Uα∧→x$Trλ∧∪i→β*"iλ εOR↓∂ε~∀%'↔&∧ α
H~%∃M⊗@
λe εE∧SdπV@&↓
$*
∧`*@εE∧Pb"$P⊂β(λdQHR∩%\
22zpλλitH∀i≠Q(∪hd⊂∧"`Q ¬R, EP ε\4⊂λ&BαZ4B¬%H0hPα4ri~⊃q(λ~T∧dgT#∀DNβHβ↔∀A∩zX$eJλ:U∀(⊂4J(4∧P*⊗h"P"V$i`∀S
∩@9(
ε2,(4(~94M∧T
E"d~+∀L@L*⊃E⊃,¬ggT)PP"∪β WE L¬⊗⊗ ∧∧-EJ(∩∧Lh:E∃,8¬∩)@e_∂
P@+M⊂A$YQ(∩∩we&@1¬αVN↓∧JQα>-!α~&∃~P$!→∧e∃$
Bd
+→∀`&J⊃J!↔pP4hT⊂1⊃
(4th xH⊃⊂()⊃(∪hd∀p
a∀ai$h∃⊂#*g⊂h ggλ!`f&∀FE∧d∪))⊂"*'j)T!DD]S*fa"T⊂ ∂F DIMENSIONS
∪β⊃ ∩Aλαa5E" H4(~
U≤B
!BE"α""'h*`∪H OUD↓∃' AQ_
α∞⎇∩J,8¬⊂∀& abCE PUSH B1β '¬$∩∩wA+'A=+ Aβ⊃ %≥→α>→¬~εHQ(∃∃∃⊗XC@M zα∧∃α⊂
A .t
Zp∧⊂'Uh⊂ i∀ h DIIENSIK@≥ε0A∪≤A=%↓∧4⊂∪!M⊂A$YP~∀β'=∃≥α bεJJK*⊂$!~4-¬)Pβ
E%⊃⊂K](Z$`4⊃R4J:λ⊃sj(λ∪qDλ⊂5⊂!Q@∧fgUαS@∩A∧XbQ∧$∩∩`.l
.∃ααZα∧∀JD¬∧|→jD-⊂Q!∀E∃)∀∧
C%
"Hh!→Tm4dλ2d∃
e⊂h!_∀$$α(⊂eE∀J"!↔ph∩λ~h∪∩)Y5λ⊃I@i⊂!&∃∧@
PLπ A 1β$b∩$p∞∩=¬:∃α↑rQαRzαε = ∀∧TzI∧-∩λ~%∀
↔qP@L*YU∧
λ~#
@⊂4TK⊗1B.iIh i'P∪h¬T ARRAY
HRL A,TTSAR(AR1) ;YES - REARRANGE BLT POANTER¬
SH∂¬ααα¬"ε∃∩e@,qQ$
∃+⊗T3P~IE@$⊂k&⊃ ∧]c∪βR ONE)WORD ARRAY, DMHO(↓ ≡A¬1(B4PJ≤_T∧5α∩P⊃!αR4T
JJE,9`⊂L)JB∧
Eλ2HhαB3)Zβ"P T→ V Q ∧SAR ;P@+PAπ∂%Iπ(AM)+
↓∪⊂~RzαNεI∧JRN⊗d04(→Yu (αP ∀T,IN@'@~∀&"∩%ααJBc⊂β"B) ⊂ε⊂*∃⊗ i,U(_T#
F@
MMP
~ααRQH~4
∩λ~#∀
⊃Q LHI∩¬∩F⊃P@!2⊂ )∪P)⊗*∃)`i(AR2A$~∀&DbJiα ¬E$⎇J:∧1"B1
λH⊃⊗⊗βP )'⊃∪⊂∃1e"RNε⊂¬∧
∪(⊂
+Q ¬∧aPdcbP⊃⊗# ⊂ARTP
PU@'!∀A Y↓β%%3DjQR$p∞B⊗≥*2&ε⊂∧∧
∃(≠∃~∧βQ1(D⊃R6 →β#P*T∧¬∀∪5≠ ~∃∧⊃2ε∩%~εH⊃↔5∀5∃4I@⊂)`iλ$g⊂!βE POP P,A ∩wI ∩Vα)b∧
(pλε∀⊂∧g A
∀∪U_
2∞α u∧Pβ"C! i),N≥ SU@∧A YHh
A4∧#!∧d&)⊗α TT1)∨)'A4λLj0≥SR(
Jλε_@(TT ∩~(∪⊃%→$A)(X4bQ)(αH4(__D"∧hε∀¬J∃β"A→∀TVD
∃∃ @h∧S@!~∀&U~AαQd2b∞yj0hPα4∃*9⊂¬⊂('!gg∀FA∧fShεEI @∧Y"J∃β%%βd~∀&¬*N"$
αdt9ye_hαB5)@aeRF@
FAC @79_
α∞⎇∩∃↓T¬$
∃(≠∩
hβ"@↓Gp4Q(x5λ⊂*(αcj2 AREGT0 AREGT1
λ∧⊂∀*≥*∃%IA∀
∀XxU"¬)zU$LhQP@!α@
AREGE@(βP&BVα9α¬αβ⊂"'cb`∀↓β⊂→α
∩Jε@∀
4
∩¬λ∀`(α⊂$g∀di`∀↓_∞ 2 yd*
⊃Q L@3uQ)∀∃∃⊗
TFEαd∧SH↓)(H[M∂2|84(→Yu (αP ∀T,ST(TT)~∀%)→
↓)(I'∧~∀&U∩N@"λ~$,=F↓∪@8(⊂ `T⊂$j)Qd∧F IS ACCEPTABLA~∃¬%⊗≡!⊃`⊂M
Z4DRλ¬D
∀xZ@K]9t∧M~λ⊂¬≥LX)tb¬y~DB∧→`λλ~TP6$
∀StλZU⊗#!↓2U3*λ(⊂#λ~Q1uε⊃ P4HXu∞A→3uQ$
∃⊂*84J⊂%⊃,¬`@ KILLED ARRAY IS AS BAD AS NO ARRAY
λ CAIE TT1β β⊂~∀&U∩NAα∧zAF(KZN@,88U≥~∀
$-∃0 'λ* "P∀`i⊂$Sα A
AREGT1:↓POP P,A 3FAIHU@%∀BAπ∀
Aα>- 4(ε="¬αntzQαεp∧∧
∃(≠∩
hβ"B)*Tu⊂⊂i"cbU∧@
;MKFLAR MKFXAR MKDTAR MKLSARMKAR⊃ SACONS ADIIS0 ADIMS ADIMS1
SUBTTL MKDTAR/MKLSAR ROUTINE, ANDARRAYDIMS FUNCTIKF
MKFLAR: SKIPA T,[QFLONUM]
MKFXAR8 MOVEI T1#
∪19+~~∀%∃%'(↓≠↔β$D~∀
∃5↔ )βHpλ&R%R¬αQe %n6Z∃αVαα¬α∩
"¬αε∃∩εeαβ9dz∧x4¬¬∀zHT:∩3sDλStHλY∃∀w!QS2s
84NB)YuQ2$
∃∀JZ⊂α.iX2q(
Zλ⊂( I4uλ~TP6$qph
Su⊃(~∩3sKQ"B3
9λ∃∃¬F".qI→Q∀h J30Q*$∪qHλH5⊂(
YtQ∀dλ⊃0r*(1λ∩)D∃∃β!)2p4F↔@∧h*Td⊂(⊗⊗βPX1J] 3AAKNDAIJS NAIE FOR ARRAY
PUCH P,A 9A0≠≥%_@z|↓∂≥'e~AαA9β≠
~(∪!+π A Y($wαjX4bX@1r↓uyαU*NQα∀*RVJrαR"∃¬~εH4PJBVNBα~bAe"P%nd*εZ⊗~α≡⊗:≥J66⊗ α0∀XT∧|2λ~%∀
∀ ∀r∧⊃Q LlzhTJ∧∃E∧5E¬⊃PPM
Z4B¬¬H⊂K\HX∃4
4λ∀$%(Z5~∧xd¬≤
$ ∀b∧!Q LlzhTJ¬EFhPα4ri~∪H⊂%E,J∀¬⊃"B4
Zr∩H
¬⊃q3J;3#"A→∀TVIT⊂+&%∀
#!!33uIi(∃⊗FE∧e∀)j⊂∩I`i) VFEεEβE⊂⊂⊂∀h"ah∀'P$g∃- lεB)`agS)]∧iRdh'⊃# DDNβSAR AH∂≥π∃$~∧∪A+'↓∀↓ Yβ∂~∀&lzR*λ⊃D∧∀h⊃PRα∧∧≥∀⊂ 'CE EX@π⊂Aα1
α~(@@A≥=!%≡~(∪⊃%→$A(HPαBRQ%Hh(&"db5αQe"RNε⊂B¬$4PJ*JN ↓"Q$hP4(Q(∀$LZ6βPLYzd,Jλ∃BD~⊃Q M=H⊂¬L∀_@λλ~Qh$λ4TP+_∩34d≠!"P(I34nA→3uQ)∀⊂k
λ∃!"B*
4r∩D
∀p*(q5α!↔tp
a∀⊂_P⊗H i#P∪jij⊂⊂ P i∀ lFEαe*fh⊃P V Q$fiXβE LOAKTOPOPJ
HRRZ T,ASAR(A 3OKAY FOR ARRAY @)<A¬
A⊃βλ~(∪πβ∪8A(Iβ⊃βλ∩$p
↓TλtM∀T u-" i∀`hαB( *Tu⊂⊃ f)bCEfgUαAI C,(A)
λ MOVE T,ASAR(C)
α JFFO T,.+1
λ HBRX∧AY¬%3)3@Q)(R$sA⊃¬&A'Lj
>1∧20≥∩λ~%∀
∀
EM∧QQ LdH λλE⊗q∃
8⊂3 ⊗**)`T∀!TnCE MOT¬≥∩A⊂XQλR$∩wλA!β&@Zp@
αxd∧$LX7`hPα33j@'$P)_@
T@ZA↓ 2λhRε∩→Z3Pα33j@ ¬I B,(A) ;CONS U@ ↓→∪'λαα6→α$J6⊗:≤J0≤@Tc"A→3uQ)∀∃∃⊗
)∀FEαdgk"H**⊗ ∃*)`i
!P
JS@ T,F@1
_∞ 51Q M¬X∧r $∀⊂i@dεS
CAME R,D
λ SOJA R,ADIM@&D~∀&lzP∀2(⊂EE⊃J"!↔pssJ4∃⊗4λT⊂πg FRONT OF LIST
JRST XCONS
;BLTARRAY BLTAR1 BLTX@∪(αα∀eH→E@$⊂S∃λ→α)FEβE
SUBTTL BLTARRAY FUNCTIH∂9∧
0∀λ⊃TI_3Q∀aQ@εE!∪* i)⊂lX
EXC@⊂A∧Y∧%\:JV6∀b∃¬α≤
22⊗ ∧∧+(⊃R)I⊂4TH≠ εE∧T*id P,B
PU@'!∀A
E↓2Nε3*5L4PJBVNDQαAH~$,<X¬β!∧fgk⊃dP iT∧ ⊃ααH4(→
%∃Rλ⊂¬VJ⊂λ∀CE!&*⊂i_]∧T*id%λ(⊂AREGE@(4⊂λ&6⎇2⊗%α
⊃J¬1D $4!→T`:β"P* i`i
i_@)
∪≠=(
*λ¬∃¬H4p4Eλ4LP%⊃ ¬$c∪α @∃∨ #∪≡Yl~∀&$b0∀(⊂
,AS ≥∃=λ4!∀∧U∃8¬⊂⊂αLTALS
∀∪Q→≥
AQ(Yβ&9∃∨∧~(∩A*∃~Qα
e"ε %!Q%hHα.q)@ ∧ OF IFN↓∃∨¬#%_4λM"2:∃¬!2εMt2& Q!∩∧U*:B∧∀JI∪λhαB5 IQ(∃
E⊂4kHi3β"A∀⊂TTjD⊂S∃ @X@
LOCKI
∪!U'⊃)¬↓1:J, L4λLRJNQ∧∩2RεeP%nε∃∩εeααK∃∧4h⊃ @dε'T↓≠β)π @ZA→='
A→='
∃ →)1∪Ppλ&BαZ4DRλk¬αe*:C,@,c"A~αg&'PβK@∩~(∪∃%'PA!>∧
( (αC"H&* f⊗α:∪+9→∨π↔$~∀&lzP∀2(⊂%E⊂4@→⊂T@
Tπ ∩¬¬Z∀D
D
∀xZB∧
*(∃J¬K~∧*αβ(⊂IJ⊂4TH≠(7#!∧fgk⊃dP i V∀ JF@
JRST BLTARD~∀4T∩2Rεe→`⊂MYiD`8p¬dFBα MOVEI A0Qβ$bαH4(~zD
¬8(∀"¬9zU∀≤Tλ∃∃∀≠∀¬%MλTαj∧)JD
∃(≠∩
hβ"B)Yβk"dH i_@,(A)
JRST BLTAR1~∀DX ↔βLX
5α
p*5β#&∨α]`iiUd¬E WIHA∪_A¬∨) A≥+≠∃%∪ε~(∩A!∨A∀A X4⊂]%∧gεt∪¬_∞M↓E↓$4!→TmQ2(λ∃λ∧ iT@
JSP T,ARYSIZ∩∩m%β)+I_
Mαα9∃D(∩3D
pπi"∀P N↓)(~∀%≠⊂≡Z*αI2R h ⊂LYzd,Jλ⊂¬λ4LP%⊃ ¬∧e∀h⊂",ARQSIX∧⊂∀λLBJJJ~↓"A⊃Q L≤→Xr¬%EJ HKαs3jHαP'*Sa"`∩↓≠A<zJαM∧"&∞R
"⊗⊂4PIα*J≥!↓:J, N⊂$KYα
@∀
DD(⊂ fPf""iλ'c⊂*∩ ¬ ARRAYS
λ MOVE TT1$∩∀∪!%%∨&Q @$HI`≥∀YXTl∀X∧@⊂∃βHEDHER ARRAP∩A≥!&A ∪∂∂HA∨$AM≠β→→∃$~∧]Iαgλh∪β λααRQ2%"NεID
IJ¬Hh(&"∃∩`∩¬%JE%≤~
λ~LP"!Q@∧d)∪⊂)⊗*∃)`i∧⊂i_TFB∧a&*λ)⊗⊗@1(TT) ;TRAL¬'
HA)↓
↓ β)α4⊂λ&N\JB<T¬¬αHα".i_H⊃∩(IIu⊂∀idj!R⊂ i)⊂lP ∪IX@&AQ⊃⊗9∧"0~∧9λT9c"B$ TTu∧¬TQ0&8#"B*I⊃Q(
E⊂4kJ;α".i_H⊂k([∀λ⊂**P6#!!(⊂
)∪'⊂#⊗D@]`S ∧ AN ODD L¬+≠¬∃$A∂↓⊂~R∀J⊗L4PI↓αN\JB∧∀PI↓↓αDb2jMαiE"R"H$%nl
.∃α≥*J∃αd
NQαD
2~↑⎇∩⊃α&~αjεJxh):J, N∃hM"J:9∧!2εMu∩∩Q.
→:>
λh*
:∀*¬IhJαB>BRαA1:∀*¬H4PJRJ:rα⊃2ε~rJ∩PHIn6V≥!αB⊗∀26J5∧ αNB,~&ε1∧2&bVαα~>HhP%α*∃~Qα>∀
~aDHIeαJ,
∩Rε∀b⊗Mαr⊃α>∀
JJεM_4(εU∩NQα∀"R~&@h(4(hQmmlLRNAα"bεJf≤Jh$)[Yeαε≤~⊗BR~α¬αN
⊃α&9∧ mαJ-"VJ:~αR"∃¬αJ>∩,~Qα>2αR"∃∧"&6⊗u~&>~_h)mmZα&)α2aαε:"αR"∃¬~&j∃∧z→αRD)α∩ε$ α&9¬:>J∩~α&)α%!84)[YeαN
2⊗Mα"αε:⊃¬⊃8$(hRεJf≤Jih&Db1αQd
NεID $$%]∩⊗RV∀qαε∩%∩⊗NM∧J9α&pαJ!α|1αP4PJR2:*αQ2ε~rJ∩Q\
M:>∀λ4(¬∧RJNQ∧
JfNS($%nα:∧,≤_→B∧D→hDdLht∧4⎇$
$,JH∀∀dZ4∧tD t∀
*(∃Hh!→D$∩
JBe]JJ4$LUEE%%8~"D
≠QPPLYzdu~
J@hP→Yu4*λeD¬%J8∃∩D∃⊃PT
+~5S≠!_∀|TT
E"d~+∃≥SA⊃∪L|dλUDMED∧2∧λ~2¬¬)xE,≥D t2∧→IB∧$→XTu≤→ye_h!→∀m,Dλbd¬JJ4
∩λ∃⊂hP→*%≥"λ~%M≥&1PPh(~%M≥&G M$IhR¬"H~2u≥↓Q J∧**5"∧~+∃≥SqQ$
∃~;#3P→Yu4
λJBd0⊃↔4u,XZ$L~λ~%∀
∀¬R¬≤≠(U~∧X≠∩∧∀Tε∩bβ%Dβ h)_dr∧H(ddu85D4H_reXQ!∃$dhT¬"d~5d$∩8~2t≥↓Q J∧J9α¬%EF⊂hUQ⊃∪\,hD∧|2 _dr∧H(ddu85D4H_phTK∧@M$IhR¬"H~2t%↓Q$%BA∀∧e≤∧
E"c⊃Q LU*:BαEE⊃PPh(~%M≥&W LlzhTJ∧eIE∀≥A⊃∪L
::Tl*λ∀¬∀,_JD∀HQPPMIId*¬EH∃~u(J@hP∀ %∃≥Dλ∃∃M;&`hP→Yu4,∀λbd|*J4MR6∃3∪β↓↔4L2 iu"bλ→b∧|(~%∀
⊃Q$
∃~;#;P→Yu4∀
E"c∃λbHH↔8∀ddzt∧4⎇$
2l-
$-≥9→tr∧~*$
M1Q Le9∧¬%"ER⊂HK4 ∧
4→hr¬%yt∧,@⊃31)j∀kuizQβ"A→TTu∧¬∃
#! ↓GspP(i6λ∪h(1V∧$ pP1Kεh∀Q
HR6λ
(∃⊃Vε!"C"IxP1R+πB2U)Z⊃(⊂*&+⊂t z∩B"'_R6λ
Zλ∪pH~TP6$λ1U⊃*$⊂(⊂IJ⊂4TH≠+λ⊃*HkC"IxP1Vε↔B33jh(∃β
J∀p4Eλ4LP%⊃,h⊂K∀⊂st→3Qhλ→∪λ∃ λ(⊂U(9q5∀aQ@2∀II(∃βεFLLε↓".u*84H∩)j⊃4TJZ∃∀h
9∪u3λD⊂Q(
9∃5 xQC"A→3uQ)∀⊃∪h*∀r6AQSpP(knB)→⊃⊂Hλ∃∃β"A~q5⊗DλKβ"A~∃0r $∀H~∀⊃3HA".u*8(
P*
⊃3Q∧
∪h⊂iz⊗(∪ ~u∀c!!1∀⊂Dλ+∃β!!4srHt⊃∪h(1VaQB4∪j H∀↓QA"THJ⊃R6π!4rr*λ(∀C
Ss∩*1.qR+∧∃4λλ∀∀Q0(J⊂0SλT⊂1UλZH⊂(λ)∃⊂4J(6+λλZα!WεB)"*#⊗→≥∧d∀)-⊂)∀)∀DNP!,P⊃*h&$P`j$g⊃P f&λ()'f∩iP"g∃)$biCEe*Sh"P)!h'h∩∧]P#∪i⊂&`Pi'P!R i⊂#∃g!b$Se)FEαd&)-λ"⊗∀)
FE∧d∀)-⊂*∃⊗∀"∀CEd&∀-⊂*ε
**∀FB∧a`dQP*⊗∀⊂i_TFB∧e))U⊂)"*⊃,→εEαd))-λ!⊗∀*∃∀FE∧Sgk"dH V∀ T→ TFB∧h*iR%⊂(⊗⊂eg!FB∧d&)⊗⊂!⊗∀⊃∀BE∧T*id%λ(⊗,!Se)FEαfgk"H!⊗()∪d$iFB∧h*iR%⊂(⊗⊂eg!FB∧fgk⊃fP V∀)'f$TFE∧e∀)j⊂)⊃*#,→βEβ≥a&*∪XP!&∃'YP!∪*'ZεBεEεE∞c$f&λ'jj(∃j⊂#$S"P$gλ i→ H#)'fH i) VP$g⊂⊂i_WεBεE!&∃'X]∧U&'"P∃⊗ iW⊃$f∃`TW)"*
`iW'P U`iK#ah∧Nc$f"TV⊂)"Pb* a∪"iV⊂∪a i)⊂liV⊂∀Vbl(∀P! bβE∧P%∀)j⊂!∪* f)CE∧bl⊂d⊂ iV i→⊂FE∧h∃id%⊂∀⊗,'c∪'eDDNf`ebH)ja"H* i#Qj⊂ i∀ lP$TP!$g⊂i,P'Uj(*jβE$c'λ$j)V⊗FE∧h∃id%⊂∀⊗$c'T!bDDNc'i!QP'jjλ!ji)⊃g*⊂!∃c#"i⊂$c⊂⊂g,FEαfgk"RP V∀⊂i→ TCE∧e)T⊂*⊗ T,idmαD]cbU⊂'*fP"i⊂'Q⊂" j⊂P+gi⊃)P$gλ**εEαfgk"H"⊗**αD]fgU"P$g∃'P"εB∧d))⊗⊂*⊗*∃)`i∀⊂i→ TCE∧d)∪$P*⊗
~~~_∧D]iQj⊂*hλ!,j"H('dg∃"i⊂∀⊂,j"P∂P→[↔λ!$j)JFE∧fSk"P*∃⊗**)Pi∀ iTFE∧Pb"&P⊃⊗#↔#∀'iT*∃∀FE∧K!`f&λ)dgjαD]j)⊂g)c"T⊂" j⊂P*'P⊃$f"FB∧P↔&∪ibP_M__εEαe)h⊂⊃⊗#'i⊂b[∧DNh¬PDATE FILE OBJECT TARIABLES
] ;END OF IFN ITS
IFN D20,[
PUSHJ P,IFORCE ;FORCE OUT CURRENT BUFFER, IF ANY
MOVEI A,(AR2A)
JSP T,ARYSIZ ;GET NUMBER OF DATA WORDS IN TT
HRRZ 2,TTSAR(AR2A)
HRLI 2,440000 ;SET UP BYTE POINTER (BYTE = 36. BITS)
MOVN 3,TT ;NEGATIVE OF NUMBER OF BYTES
MOVE D,TT
MOVE TT,TTSAR(AR1)
HRRZ 1,F.JFN(TT) ;GET JFN FOR FILE
ADD@~A⊂Y]
A∨&Q)PR~∀∪M∨+(∩$∩w)%¬≥'
HA β)∧A)≡A→∪→
~(∪')i∧@dXL∩∩w
1+'⊂A
%+λA→%∨~A¬εO&~(∪∃' ↓(Y
∨Iπ
l∩$w#! ¬)
A
%→
A∨ ∃π(↓)β%∪¬¬→&4∃:α∩m⊂~⊃∧z→α&4qα⊃Ih*&~rα⊃EAeX4(&lzR⊗%∧ 1"ε∪∩¬$4PJ*NA¬!2εJM~&h⊃↔4<-D e,l(Z"∧|dλD
$∀
t⎇∀J4∧LRλJ@hP→Yu4
AE%%8~"D
&(∩Hh!→T⎇4Tλbe%J8∃∩D~&∩Hh!→T⎇4Tλ"d2h9∧rλe⊂K\xZB∧≤λ→dt,D e,l(Z"∧4z$∧J|tλdLDQQ Le9∧∧∩c&qPPMIIr∧∩E u-"ε¬BHH↔84|u:J%,≥Dλ∀r∧zZB∧Lj:E∃,:I∀|pQ!∀l⎇hT∧
dh%dD,EλbHK8xU"∧_HE∀-:4∧|2λ*T44Z$∧D,_HU∩∧)It≤XQ($e$v7 LlzhR∧"F∃∧
H⊃↔4<-Dλ%M$T
∧|LjHU∩∧→jD`4⊂U1Hh4C"A_1⊃∩$λ"!↔p1⊃
(4th xH⊃R**uλ⊃J(1(∃iZQλ∩)d⊂U1Hh4C"A→∀S∩$λ
∃¬⊃".p(H∀Q4j4∪qH h6∃λλH5⊂(
ytQλ
Ih∃∀H→TqQ*!"B4i94∪H
%J⊂%⊃".qhZλ⊂sjYUλ∪hd⊃TQ(T⊂U1Hh4H∃izQ∀h →H⊂C!!(∩TJ:λ⊂S
Imα"'9st∀eD∪SsHT (⊃it⊃u5
5λ∃ 4h⊂JXQQ4AQ@0p)→⊃(∀EE∃∃α!⊃.r1D
Q0u∧ qH⊃λ~⊂(⊃I~α)P$S⊂!*c⊃"i⊗εB∧P&gU dP)∀**∀BD]P*∀ g)c⊃i⊂''H&gi"H*$ gλ'"abTi`i,CEijP⊂**⊗∀ TDB]i`∃BTRACT FREE WORDS IN BUFFER FROM COUNT OF REMAINING DATA
↓MOVNS R
ADDM R2(A) ;ADJUST BUFFER FREE COUNT FOR WORDS TRANSFERRED
MOVNS R
ADDB R,1(A) ;ADJUST BYTE POINTER, GET FINAL ADDRESS
BLT D,(R)
JUMPL TT,BLTXIT 9DIDN'T COMPLETELY FILD THIS LAST BUFFER, SO EXIT
BLTO4: XCT B ;OUTPUT THIS BUFFER
CAIA
HALT 9? THE GUTPUT LMST SOIEHOU
MOVE D,FB.BFL(F)
ADDM D,F.FPOS(F) 9UPDATE FILEPOS
↓JUMPG TT,BLTM3 ;GO ARMUND AGAIN IF MORE DATA LEFT
] ;END OF IFN D10
JRST BLTXIT
;BLTI1 BLTI4 BLTI3 BLTI5 BLTI4∧A¬→Q∩p~∀4∀~∀w→∪→_A¬%%β2↓∪∀AβHeαA
I∨~A
%→
A∪8Aβ$b8~∀~∃ →)∩bh∪)→≥∀A)(Y¬&]
∪0Wβ&]I (WβL]∨¬α-β&]∂
∩w
%→&X↓%β Qβ¬→LXA∨¬¬%%β3LXA&[∃1!&A βλ~∀$A∃%'PA¬→)¬→4~∀%!+'⊃(A Y1%
→∨⊗$∩w≠β-
A'+I
A'∨U%π
A%&Aβ≤↓∪≥!+PA¬∪≥¬%2A
%→
~∃%
≤A∪Q&Wλd@Y6~∀%≠∨-$AαXQ¬$eαR4∀∪∃'@A(Yβ MOVE F,TTSAR(AR1)
SKIPN R,FB.CNT(F) ;GET NUMBER OF DATA WORDS IJ INPUT BUFFER
JRST BLTI4 ;FONE, GO DO DIRECT INPUT
CAILE R,(TT) ↓;TRANSFER NO MORE WORDS THAN
MOVEI R,(TT)↓ ; THE TARGET ARRAY GILL HOLD
SUBI TT,(R) ;ADJUST COUNT FOR NUMBER OF WORDS TRALSFERRAD
MOVN D,R
ADDM D,FB.CNT(B) ;ADJUST BYTE COUNT IN FILE OBJEAP
IBP FB.BP(F) ;@YTE POINTER DO PGINT TO FIRST BYTE WE WANT
MOVE D →
λ]¬ Q_R~∧∪!%→∩A⊂XQλR$∩wβ ⊃%β'&↓∨A
%%'(A]≠%λA=A∪≥A+(A ¬)α~∀%⊃%%∩↓λXQ(αH4(ε"∩%α ¬BE∩⊃⊃∪M
λH∃$*λ∧∪i→β*"iλ$g"'H* i#Qh∧ ARRAY
SUBI R,1 ;FOR CORRECT UPDATIL¬εXAHA∪&@DA)∨≡↓↓∪∞~(∪β 4A$Y
λY¬ Q_R∩αwU!↓β)∀A
∪→∀A¬3)∀A!∂∪9)β$~(∪¬→(↓λXZbαBQ$∧KZRJεu~~εI∧"εB∧hP&*Vmα2¬ααJBd∀JK∧Mα.q+ 5λ∩(d∃q(λyuλ⊃)Iu1r∧λ⊂5⊂!Q@∧fgUα@
Aλ1
∧]¬YαQR4⊂∪β ⊃~AλY_Y~B⎇→"→$hP&N⊗%R5α~∩r
Z
D1$4()E$KG!PDLi`∧M∀k⊗aQ@∧fgU ¬ B1)(~∀%≠↔-
↓λY)($∩w∂PAπ∨+9(A∂↓↓3)L~∀&lzP∀(⊂
*#αE∧R)&$P∃⊗~~~
__∧DNd¬AKE BYTE PGINTER (BYTE = 3&. BITS)
.CALL SIOT ;ANPUT MORA DATA
.LOSE 1400
∀∪M+∧A∧1λ∩∧∪¬ 5¬⊃2→:5α>M"%!$%N-α∩εR*αR"∃∧2& $T
∧⎇≤~I∀lpQ!∀U,ZλR∧"H)E%D~A⊂K\*YUα∧_d¬<*λyu"∧→IB¬$λT∧$
H⊃PUh⊃↔4,@Qλ∪hd⊂1SD 5∀c! 1S@λFL⊗aQ@∧d)∀-⊂_@,F.JFN(F) 8π∂λαα*
9∧20≥∩λi∀d(β"B)YuQ2$εK
∃¬⊃ ¬∧d∀&$P→~~~400 ;MAKE @¬3)
↓!∨&u"⊗I↓D∩f@$TπRβ≠e`λλ$j)TCE MOT¬≤@F1)(~∀%'∪≤∩$∩w&uαV@" Yu∀(⊃⊂*H εE∧Pb"⊂*∃⊗→DDNβH
∨(↓β ∩∧BB4PJε∩∩h∧¬%"β⊃KHj⊂πiT⊃∀@]jT ∧ATE T@⊃
↓
∪→
↓!∨'∪Q∪⊂≡aQ LLzhR∧λε→FBα SETX¬∧@@⊂¬C_Hα.qIJ4r⊂∩*g%@ FROM↓βεO&4⊂λ&*,jB*λ@λ&*,$U∧@]e∃d¬P IF WE GKT ALL @)!
A βQα~*hH%n⊗t!α>→∧J~9α ε#@ ¬.DB]bg"λ'c⊂$Q'⊂$j∀Ub→0
IFN @λb`12~∧∪5_∞@4Y∀∧
@λ∧ i TFEαe)`⊂∃⊗ i,Tdh
8π∂ ∧∧`*30Q*$⊂πc⊂⊃ j @ Tπ⊂≡J%→α&9¬"P (αB3)@hεE T,TTSAR(ARIαR4PJ6 =hT∧2eJJ4
∩λ~#
Hβ"B)Yβk"P⊂α,F.CHAN(F) 0↔∂∃(Aπ⊃¬_
:⊗bα0∃,X(U∩∧iz"∧∀→HPhPα3∀i∧⊂KF@F@
TLO B0Q∪≤@@XR$KZ≤|βP j∀*a`∀↓β⊂→↓∧J0∩α →e≥∀U0jI3sC!∧fgk⊃P V#⊂α.HED(@R∩m∂(A¬ ∩J-~Mαxd∧*1QQ*$⊂∧"`Q ¬R BLOCK
묬→)$ft&≤Z&Bd
"c∩λ⊂
!⊃,¬ad⊃a` NUH¬HA∨A]_∞J∩~α& 2λ¬∩ ~h⊂U(hβ"`∩
λ∧∩A∃I' ⊃α∀bR%THI`≤@SsQ$¬(⊃sd
Q01∧
pπfbH&gi"CE CAIH
AHXQ)(αH$%@8It`$βj⊂*∀ g ∪FER MOR@
A<zJ%1Q J∧β3uHY(⊂ ,(TT) ; @)!β⊂→ααI∧*¬H~$<-Dλ∃∃∀≠∀∧`(αbb)CE SU@¬∩A%!1"IHH%nε$RVNQ∧~0≥3P
LπA<zJ%4 d,,HX@hPα33j@'⊂",Rλ
(L
∩$TλBc∩λ⊂
!⊃,¬`b∩*i`∀↓∞ =YjB∧Ldλ%,4hZ"∧DX_D-⊂β"B)Yβk"P⊃⊗_T JD@ ;GEPλA¬e)∃αα tL@U⊃4D
⊂πP$SαPU@(αα∃,hhU⊂@"B2
)⊂∧P"_T")
∪⊃I%∩Aλαa"Q⊃⊃∪@8StS$λS∃⊂∀'` NTER~∀%β ∩↓(X@"α
!⊃,¬`∃PDATE PO@∪≥Q$A∪9)≡A$
J<X¬⊂⊂i) lCE ADDM @$αaE"¬HH%nVαλD
⊃(∩)@(*`∀↓
V~4*Iα
M"∃αB|J0∃$X∧C!∧a&*λ ∧ _Zβ "Q∧HI`≥∀P3J8Q0@⊂⊃ j @ TO @)¬%≡⊗ ∧∧
∃(≠⊂hPα2U)Z⊂ε"P∃*⊂BLTXAT 8π!∪PA∪A]
A∂∨PAβ≥∨U∂⊂A ¬)α4T∩2R⊗W MD8¬⊂⊂α ∩∩m∂(A5_∞J∃∧"ε@$⊃Q J∧**5"∧)JDK@∧D]R*f`⊂∩c⊂ gλ ¬RROR @∨π
+%%⊂~∀&lzP∀(⊃⊗⊃!↔!#∪∀#∀FBα ADDM D,F,¬~B⎇→"2⊃↔5-∧H~D*∧i→D*¬ z4M⊂∧ggβE JRSP BLTI3
BLTI0`(Lj6@4TλBd⊂α".hdπF@'Q%+πλαα¬αR-~Qα~⎇⊃α,h@λ @c⊂#$S @
XOR D,[<STAP@≡@@Y∪≡]∃_∞→Y≠b& 2∧∧πk!"B+λuλ⊃↓Q@∧P$⊂d∧T ;@→∨M
A)∨Qβ⊃2Jα&→αtzQα⊗t!α>→∧2& $QQ%hH↔8T`(α⊂'cλ$c'⊃_XεEαd))-λ!PFI,@∨!)(B∩m∂(A∃≠A
U→π)∪=_ α~⎇⊃α~&d(4(~Ydd|99⊂hPα2U)Z⊃(⊂eHS∃∩'↓ ¬∧fSi"dP⊂V⊂ iTBE∧R!`f&⊃⊂_V∀⊂TDD]P`f&⊂∃ibi⊃dπF FUNC@)%_∞ 0Q!PT∀JI∪CP→Yu (2(⊂%E⊂4DH∃!"B*
4r∩D
∪PiYβ)FEαfgk"RP!⊗∀⊂i_TFB∧h*iR%⊂ ⊗⊗!cg)CE MOT¬β∩AλY#
∪1→β%%¬2~∀∪A+'⊃∀↓ Y1π=→&~∀%∪⊂≡D4,@qH$λR3∪λ~TP6$≠".q)Jq(⊃i~Q(∩)Uαf'iT`cbP⊃i)'iβE
;.@%∃β%%βd@]%∧i∧@]IαiαX
J⊗ !↓:J, U↓:α(T∩¬j$,h∀α`*Q0%d¬TQ0&X(THX,HJ(03∪j8(⊃q*Jtλ⊃hZ∀t∧λ1u∀jλh⊃q*Jtλ ¬JQ0,$¬TQ0&_!"C!*u0U
Iα*THX4TP+∀⊃U3H:∩3sAQA"KJ(04TH≠.B"'~∩∩4dλsq⊃$λsu3λD∀u⊂)hλ∪5(9λ∩3*
SuQ)X3Uβ!!2Tt∧
∃∪
yP0raQ@3⊂&⊗Lm
&fk∀%jQ04J(6#"A_3rQ$
THX,""'9sQ(λ~QkλλH3⊃5λT∃∩⊃$λ4TP+⊃"B3)zQ2(λE
∀
!QB01λI(⊃¬
#"A→∀S∩$λ
∃¬⊃"B2
*VH⊂%E⊃
#!!4u0I∀∃!QB4∃*9λ⊃V
¬∃β"EjQ0-λ'B4∃*9∩H∀¬H4Q1hZβ"B)YuQ(
E⊂4p*%⊂*"!↔qq5∧
p4C!!5∪∪Id∃⊂*5QR3H4kRIxB.q yIuλλ→∪∪ud SpH zH⊃R)H(⊂4J(6#"A∀∩TTjDTQ(⊗⊂#"A≠⊂uλ¬jQ0-H⊃".r*:u1(
z⊂(⊃**StC!!2TTjDTQ(⊗⊂C"EjQ0-λ↔B3∪h9r#"A~∃4r∧
⊂#!!2∪∀K$∃⊂*84J⊂%⊃"B2
*VH⊂%F*⊃
!QKTQ(⊗∞B3)zTr(λe3⊂*+5∀β!%TQ0&WB2∀J+H⊂Kλ~V5∀ε∃⊃J#!!0p2)d⊂K
λ∃#"B$ TTu∧¬TQ0&q"B0)xRSHλeTQ(⊗#"KJ(0-NA~3S∪h9r#"A~∪tλλk∀∃↓QKTQ(⊗P.B*z⊂(⊗h(1λ⊂**P6(
K4⊃(¬T
TQ(~TP6$≠#"B)YuQ3$λ+*λE#"B*
4rλλk∀∃↓QB3∪h9r#"A→TTu∧¬TQ0&A"C"EjQ0-g!2∪∀K$∃∃λ~V5∀ε∃⊃J#!!6∪tI∀∃∃¬
#"A_3Q⊂iY(∃∃¬H4o⊃h:∂C"A→U34 d∃∃¬jQ0-AQKTQ(⊗p.B*
4rλ
¬⊂kTHX,C"A~∃4r∧
∀Mf↓".jH~TP6$
r3∪∧λtQ0*H(⊂(λjQ4r∧
p4C!!4∃4i∧∀%λ
#"A_3pRId⊃EV#"B*YS∪pi9#"B)YuQ(
E
⊃V
¬#"B)*Tuλ∧T04TH≠#"KJ(0,NA→∪pri⊃"B2
*VH⊂*&+
∀¬⊃".p*&(∩⊂*4∃∩⊃$ s⊃λλ~TP6$
p4C!!33uHY(⊂4F(+
⊂%⊃".p*&P(∩λ~h∃∩λT∪Q5dλ4TP+∀∀p4AQB4∃*9∩H∀¬ETQ0&1".piz⊗(∪iHλ⊂4J(6(⊃λ~⊂(∩)j∪h∪HZh⊂4J(6#"A∀∩TTjDTQ(→∪tq!QB33jh2(⊂EH1⊃0(A".sIzh∩3JH4K0iIpPQ*$∃∩⊃$
∃sh
84Tc!!16⊂i∧⊂K⊂*84J⊂*&P*#!!33uHY(⊂Kλ~p4Jλ~L*"'~u∪tHT∪Q5dλssUλYU∀h xH⊂4h~C"B*I∪Q(λ%⊂4oλk
qSπa"B(λ_⊃∩(λ%#"A→3uQ)T⊂4L%F*⊂J!⊃.r3J:⊂3∪∧λstTHXuλ∀h~H∩3Dλ4TP+⊃"B3)zQ(⊂EJ∃∀p*%⊂4LH∃#"B) ∪∪td
∃∀p*%⊂4LH∃#"B)YuQ3$λK∃∃
84J⊂*&*".j:∪tQ$ Q5hλ9sU⊃)j∀h∪hd∃∃∀h~C"B)YuQ2$λ+
⊂*&*#"A→3uQ$λK⊃piYsβ"A~∃4r $∀∪(Y4,#!!2U3*λ(⊂+¬jQ03 zq#"A→3uQ)∀⊂K⊃λX∀p4AQB2∀II(⊂K¬λ*#"A→3uQ$λK⊃piYsβ"A→3uQ)∀⊂+
λ~LP*!QB4∃*9∩H∀¬I134&⊃"B2JY4⊃(λ∃TQ(→∪tq!QB2∀II(⊂4F∃
⊂*!QB53IIprr!QB4∪j∧⊃V∀¬Jβ"B)
S∩(
E,"
E#"B(_⊃λ∀¬Jβ"B)*Tuλ
t⊂2AQC"KJ(03∪j8.B4jXH∀
&l
l!QB53IIprr!QB4∪j∧⊃V∀¬Jβ"B*
4r∩DλV∀ I4u⊗↓QB4∃*9∩H∀¬IPssJ1"B3)zQ2(λ%∀+THX4TP+⊃"B4
Zr∩H
¬⊗⊂sijc"B(h0h⊗e*Q04J(6(∪ zuλ7!QC"QhZ∀t∞A→Ttλ
J∪∃ih0rc!!3⊂,&%∀1hZ∀tβ!!4∪t∧
⊂#!!33uHY(⊃λx5∀tε⊃"B2
)λ⊃
j∃4Q!QB03i((∃λx5∀tε↓"B2
)∩(⊃¬E⊂*#!!4∪t∧
⊂#!(q5∀jε∞B2J:λ∃λk∪UL!↔tQ5
ZSThλ*⊃3Q¬XT∪tHt∩1H
:⊂0q$ 4h⊂*h23⊂()⊃#"A~∪⊂q$λ,!QB(∃ KH⊃¬V#"B)Ipru z∪t∩AQB4∃*9λ∀λA"P1jJt⊂nA→3uQ)T∃∃λx33U↓QB01λD∃∃λ
PT∪j(b".i→Tu4HT∃∩⊂*D⊂T⊃)h0T zQh∂D¬∃∃
!QB4u($∃∃λ
PT⊃)hβ"B)*34⊃hT∃∃λz∀t⊂f⊃.s5*:λ∀Q)Ipp5λUλ∪tDλq5λ YtQ(λ9tQ+AQB33jh(⊂+
HT⊃3HA".p)JQ01∀∪rc!!33uHT∃∃¬λ*#"A~∪t∩D
β"AQQq5
:.B)*34⊃$
∃⊃H→∀q#!!4u0D
∃⊂
hT∪tHq"B2J*uλ⊃I≠#"AQKTQ(⊗.B3)zQ(⊂%E∀
"!↔tQ3)zQ4hλ~TP6$λV(∀
Z∃∩3Ht⊂1⊃
(4th xC"B*
4r∩D
∀p*(q5α!↔h⊃4J)tH∀Iz5∩3HT∩3H
84KλλZ⊂kC!!2U3*λ(⊂+
t2AQB33jh(∃λ~p4Jλ∃"".hx5λ∀h~C"B*I∪Q(
E⊂4kI)pW⊂*5QR3↓↔s14jD∪Su∧λQ(⊃I→⊃(∪j$∩SpDλ4TP+⊃"B( *Tuλ¬jQ0,(⊃"B3)zQ2(λ%⊂1⊃(_β"H∧∧⊗⊂u
Sc"A→3uQ)T⊂K⊂*84J⊂%⊃"B3)zQ(⊂EKu∃⊃λX1↔#!!33uJ9(∃
J∀o⊂igC"B*H∪Q(
E;AYNV1 AYNV5 AYNV4 AYNV3 AYNV2 AYNV0 AYNVER AYNVE1 2DIMS 2DIMS1 2DIMF 2DIMF1 "DIMD 2DIMD1 2DIMZ 2DIMZ1
SUBTTL MULTI-DIMENSIONAL ARRAY ACCESS ROUTINES
;;; THESE ARE LIKE THE FXNV ROUTINAS; THEY TAKE A FIXNUM
;;; FROM AN ARGUMENT AC, CHECK ITS TYPE, AND PUT ITS VALUE
;;; IN R. THIS VALUE @∪&↓β⊃π-λA)<A≥'U%
A∪PA∪&A]∪!"LqαR"(h)mmZα:εb"α∩&6,rN&>rαRε2,)9↓α%!α&M¬~R⊗B∧*⊃αεdz::
I∧*¬hX5$⎇!Q#[[4 t2∧I→T,U9→tu~ →b¬$λT∧
∃(≠∩∧DX_D-∩d∧∧
Ljf∩∧HI∃$Lyh∀de⊃Q#[[4
¬-%4
DD
λ_D%∀Z:2∧|d
DD
λ8∃∩∧→d∧dM8~"ph!Q"αα
8eE¬)qPT
→jcP→
%∃R
%BE%E⊃PPLYzd,j
%DdM8~ hP_→tT
JBd
→jch!Q$
LjfSPM99∃∧
λ∃D
∪(⊃PT
→jc#P∀ T⎇4Y∀∧
bλ~#
HQ!∀U∃:D∧
LjfhPQ(∃Luf7 M≤9~∧
∧∃H0hT≠→e3∪!∀∧l⎇hY∩∧
Eλ"HK9HT5" λ∀d2 xb∧∩ X∃J∧(T∧t|e[$-∀qQ$
LjfβPLYzd,J
%BD
⊃Q Le9∧¬∩bZ8T<dxqPPLYzd*¬%J5"E%⊃PPMIIdr¬%He@h!∀∧U∃:D∧
LjhU⊂H↔9D⎇≤T ∀2∧izB∧
λi∃DuYQPPM99∃∧b
%BD
⊃⊃∪\mZ:B∧tzD∧∀* hT<
I~d*`Q!∩∧≤→YB¬∩E
E"H⊃↔2∧hD∧m-:D∧∀*λ(Td⎇t d-EDλDLlYj4L|aQ Jαλ8∀LλQ!∩ααλ→tT
JBbEE⊃⊂K](ZE-∀d
Dz∧8→Dd-%D∧∃,Z ∀t:
tLuHZ"∧Ld
E h!~4\Mλ∀∧"e;:4MD)~B¬d~*$
J
:T∃≤:)∃¬"λ[∧≤,XJ2∧∀zYd%~≠KUhh(≠∀u4Z' J∧Yzd,JλEE]≤≠λ$M"Id|rXi∃DuYT∧
∃(≠∩¬≥X*4≥∀~
B
eQQ M¬Z9α¬αHAPPLYzd,J
%BE%E⊃PT
→jd+!→∧e∃$λBbk∃
"HH↔:t*∧ZZ5"∧(_4Z¬Z∧¬$DT
∧|LjHU∩¬It¬$DT %≥α
JB`h!_4LTλBbD*:α¬%EE⊂KZ
y∧L≤∧ ∃~¬yλU∀*
I∧*∧~8∃∩¬ y∀u%1Q J¬9y$
¬%H∃LuhV⊂hP→
%∃RλEBE∩⊃Q M≥X$¬%"H~4
∩λE⊂HK:8∃4*
JB∧
4λ∀r∧_*4|eZHR∧|hj4-"λj$|j
I∧*∧~8∃⊂h!_UD≤∧λBbE¬⊃⊂KZ¬
4Lt8T∧%-)→d:¬IλR∧-*)u∩¬IλR∧
*(∃J∧X≠∩∧lzhRHh!≠∧≥"λ≠∀u58kHK:;∀t≤
)ttM(T¬<MI∧¬$DT ∀u$Z*%-¬D D|≤9zU"∧XX4Di~4hh!~∧⎇α
¬D h!_∀$"
JBd
8~"D"⊃⊃∪]∀Z:D⎇∀T
DD*
JB¬∧y→e$-$
U≤Lht¬$DQQ LU*:B∧
→jcH↔4αE∧z:4L∀K∀∧t-u∀∧
≤~%B∧hD¬%∃∀λ∀<→aPPh%j4,*ε_DLm1⊃⊂K]IλRβ
XI∀l,j9∀|t→D∧≤8Z5~¬)zU$LhZ2∧
(T∧Lr Iu:∧9z$(h!Q#∀$→Z3PL*:α¬"H≠∀u3⊃Q LmYD¬∩b
JBHh!→%≥α
ED
Ljf hS(I∀m≠↔!∀$I∀¬∩bλe⊂hP→*%≥"λ~%L<ZAPPh&(DLlg!∀U≥∧
Bd
→jcλh!→U,b
%BE%E⊃PPL*:α¬"H≠∀u3!Q#∀$→XcP__D$J
%BD2⊃Q LU*:B∧k_t- Q!PTLid∧$∀iH∀:\;λdduK0hS(I∀l#!→%≥α
ED
Ljf⊂hP→ZTb¬%E¬%"⊃Q LU:∧¬"d≠→e3⊂Q&$$LXF∪@L_HDJ¬%E∧2HQ!∀U∃:D∧%_xU h+Q⊂K\YhB∧|d ∀4rλH$4d_u4≥DiH∀8h!Q$L4dλED4H_reXQ&$$L[' LU:∧¬"d≠→e3λQ!∀m,D
"bEJE⊂hP→*5α¬EH∃Luf!PS∀I→US!_∀$$∀
"bDe⊃PPL**5"∧≠+∀<-AQ%hH↔8Ttα xb∧Lid∧%DiH∀8h c[8I∀l2ε8DLM4ε4$L[∧β$$→Xbβ$I→U~βXI∀l2∧XDLm1Q hS572¬$λZ$*∧~(R∧4zZ"¬≤Zλ∃∀
HTβ$→P$λ3Qε(∩3#$
Su5 →β"`∪ FOR SPAED.
0⊗VlA
∨$↓)⊃
A=)⊃%LXA/⊃%∞!α
∩∃αHZ5~∧9yTl\βKλ
X(⊂λ)⊃c"a TO @'¬)∀Q'3@7h⊂tλ_q+@⊂λ+bP"S!`∂DE T@⊃
↓β%%βdA)3!∀A∪≤AQ⊃∃αd*~QαD
22 xb∧∪αC"G]]DXαiP
EXPRE@'M∪↔8hQ`≠[1⊗⊂L4≠ e,jDλdd|βQ3!QL¬P≠≠ 2↓DOUBLE, C@∨≠A→ hQemlK_&∩V∧b⊗`4SY`≠Zλ D,
8→e$e∃D∧L2λ¬∩ ~h∪U)XQ0@⊂∩iP'ελ g⊂ T) lP⊃d∧EMEL¬(A∪LA∨AM∪5
~(rvv@I=≤A⊃¬→
/∨I &@1∧∩VQα<)α∩≥∧r>Aα-~∃αRDJMα~~Q84Ph*&~rα∩b~d
≥0$K~∩&6SP&R2| α 1⊂h*&~rα∩
~d
≥.∞D22ε≥`IN∩&l!h%α$b6¬α∩aH4)≤"&6→PH$$%ααR2≥∧⊃1D4S~∩&6≠P&*NααQ2εLrQDQ!∀m,D
"bEJA⊂hPα2Tj∧∃⊂+→ULC!!01⊃ ∀⊃K
%!"B)→αjf⊂⊃⊗∀"*
FA∧e∀h⊂"ε⊂lg#→CE→b$Sl≥∧d∪)(
T,B~∀%)→4AλXZb~(∪∃%'P@\VbαBQ$Q!⊂HL**5"β(I∀m≠⊃↔5~lXε∀
(αiadSβH
∀$∩∪∃%M(@e %≠b∩m
∪ "u*5!α4b0≤@U3#! 1S@⊂⊃!#& QUa`_FLAG, JRSDe↓β≠⊂b∩`.$zV
2*aα∞≡mα2ε@↓Q"`(αf)bBW+ f∃bBE$Q'⊂",⊃& cFαDe))U⊂→"$Sm_D]Q*h&"Vε@
.ELSE .VALUE
¬
λIFN DXFLAG( 4DIMZ: TLOA B,2
λIFNDBFLAG+CXFLAG, 4D@∪≠⊂t∩A$b6¬α⊂aH4)$"&&→PH$$¬ααR2≥∧⊃1D4S"∩&6≠P&*NααQ2εLrYDQ!∀m,D
"bEJA⊂hPα2Tj∧∃⊂+→ULC!!01⊃ ∀⊃K
%!"B)→αjf⊂⊃⊗∀**
FA∧e∀h⊂*⊗⊂lg+→CE ADDI F,(R)
IMUL F,(TT)¬
JSP T,AYNV4
α JRST 3DIMH
IFN DXFLAG, 5DIIP∀t%)→∨ααα 1HhR&~9∧"
~29.∞b4bε≥0K*∩&6#P%αRdz¬α c⊂4)V$J6→hHH$%↓¬"2=α⊂aD4),"&6MPJ*NA¬!2εFu1D4(LjV1α⊂a"RQHh(&*≥↓αQ∩
J:YHhP&ε∩$Iα→1E⊃$4(LJ6V1∧11"R H4(→*5α¬EH∃Lud1PPL_HDJ∧eE¬∩HQ!∀L@53λλe
∃∃¬⊃ B2J:λ∃λ≠3UM↓Q@01λI(⊃K¬
J#"A→353∧λK
∃
E#"B)*tλ∃¬H63UFQ"B2J*uλhI36β!$λλ∪Iz∀Sc! ↓GqR3 H4TP+∀⊃R3 H,λ⊃I→α ADA
∪→1αhA
%→→αj↓
∪→→∧dA
∪1→αfA→∪⊂∩H@$λR3∪λFh⊃R)I⊃
Hλi3∪⊗F∀⊃R3 KLh⊃I→α Z6 OPNCLR FILLA6 FILLA9 FILLA0 FIH 2λεr∧4→IE-Pβ"C!
u0U
Iα1R)I⊂4TH≠(⊂3HD⊂ε$iU i) VFAεE⊃$f& T) l]αD@]iUa)⊂→βE SKMP (AλY→&~(∩A¬%M(A¬→Qβ%%βd~∀&lzP∀2(⊂eE⊂J#! εILLA0: PUS@⊂A@Yα4PJBVNDQαAH~$,<X¬α!↔qq5∧
p4@⊂∪βF ARRAP∩~(∪⊃2eQα↓H~4
∩λ⊂
!Q@∧j&∪α@
AλαbεMi)t%p4kHi3
p*5β)"*
`iW'PαA~∀$A∃%'PA¬∪→1+4$KZ≤dzB∧∀→IB∧Tx λ @i⊂#$S ¬ OR READTABLE OR O@¬β%%¬2~(LRNAα ¬D
∃~9∃@! .qhZα⊂ ∪IX@
A∨_Aβ%%¬2A&p∧∧0HαB4hZ⊗H∃
Eα".jJλ⊂dS&⊂!"H*ibbλ!'i IH
π∀*6⊗:$
1α→hD-@Q!∃$dβS@⊂⊃⊗ iW∀lεE∧H%))jλ!$f&⊂Y
FIH 2λε∪@!2U3*λαP!V⊃$f& M∧@]c∩d∧@_A1_∞ =∧λd`:H⊂ VQl(⊂ T) liCE HLRZ B0Qε@$hP&"Jdiα 2¬"RNε⊂¬∧
Hβ"B)
TVHλT∧ ⊃ε$~∀&≤z**λeE∧⎇λ→ hPα2U)Z⊃(⊂eHR3∪λ⊗α@
HLRZ @∧X@"~H4(→
%∀jλ λ
∃∀p*%⊂*#!∧d ∩RX∧AεX!
$Q!∃≤\αQ(λe∀∪tλ→@εE∧Pdπ@∃αααRQHi∀dd⊗⊃P@!α@
FILLA4~ HRLM B,@TTSAR!αR4PJN <αQ(λe∀∪tλ→@εE#∩d∧@→αβ)`⊂Lλ∧TIT⊂K⊂
J∀p4Eλ*#"A~pπe"H ε,POPAJ
ADDI @Xb4⊂λ&J⎇!α2EP!⊃,¬`∩OT, NOT @→' p
αN,)α
⊗dzP_h!→T`:β"dP⊃⊗_DDNβH+→Q∪!2L*Iα~⎇⊃αε2,j⊗ 5D
4MTQQ LU*:B∧∀→IDc"C! εILLA20∀∪Q→≥≤A⊂Yβ&]→0Wβ&9
_~∃%
≤A
→β∞αZ≥DiH∀:@α2TJ:α⊂#$S&"_FBα.ELSE .VAH +
4⊂λ&6⎇2⊗%α⊂¬BD
⊃⊃∪@8R3∪∧ ⊂πghλ εOR↓
+→→]_∞J⊃∧
JJεM_4*~Lb2¬Mβ!∀U,X∧⊃$λhε#$S& [εBα HLRX∧AαX!
$Q!∀E∃+$∧5α⊂λC)
∪≠=(
,∀
"bEJ@
!Q@∧j&∪αN D1β&y
`|⊂∀λLRNAαα@λi⊃QL+↓α@
JSP @(αb~bh¬L!Q@∧bl⊂βH @)PY$4PJ6 =hYR¬∩H
E%≤~
λ¬ εE∧Te`
E F,POPAJ~∀%β⊂≡(⊂λ
J ⊃R)I⊂,c!↓αA$c∪α DBFLAG+CXFLAG,[
FIH 2 ε∪@!5∪∪I@⊂"⊗ TTεDB-β&@:≥@4*∩@∧@J∧**5"∧i→DeS⊃Q$%BQ∀α`*P3∃(Q ¬∧fShεE F,D
FIH 2 ε3@!2U3*λαP!V⊃$f&"
α ;FIH 1∧b0≤@tλ⊃I@i⊂"'Ua&"P⊂dεD CFILLD6: ADDI DT,1¬
MKVEM D$@TTSAR(B)~∀%≠↔-$Aλ@1⊂h(&N|R¬αR b~&2d d4*hH%n⊗t!α>→∧J~9α$∩~2ε8Zεb~d
≤4(hR&~9∧"b~292l4T2&"K&∪@MIIdr∧EH∃~TK↓PPJ¬jdeXQPPM
Z4B∧i
αe%AQ M¬X9α∧5λ¬D0h(i∀de&7 LUYZ∧*∧5HdL@⊂ε-≠αD]c$S&⊂&'Sh⊂#'T⊂"*h∪"h⊂ T) liCE HLRZ A,(C)
HRRZ C,(C)
JSP T,DXNF1
∪≠=)αA(1)(~∀%≠↔-
↓)(HZβ "
BαH4*.λJ6>Z,iαI2¬"RNε∩B $Q)4λL_HDJ¬JACλh)8⊂LlzhTj∧eH¬%%8~"D∩⊃Q$\λα01λI(⊃∃¬F εE%Ref∧b∪ek"fH)⊗ *∃)`i∧⊂∀@
KIKL AD@@∩AQ(Xd~(∪≠∨-∃~A(Y↓))'βHQ∧R~(∪β $A)(XD~∀&lzP∀3(⊃¬H∃∃∀h~J⊂B!Q@∧`b⊃$P"*_@
MH∂-4A)(X4bQ
⊃@R~∧∪M≠'
@!
1 R4∀∩A∃I' A
%→→4f4⊂∪!∨A∩A
⊃@Xd
∀%∃%'(↓!∨!β(~∀4T2& $β⊗MG↓ ¬%`Bfgk"SP)⊗ ∃*)`i
!∀FE∩`@ ADDI @)PXb4TZ∧&6⎇2⊗%α2bαRR≤
I" Hh ∀\⊃_∀$$α(∃
E#"I92sα(I3uQ)T∀K⊂
J∀p4EλJ#"I92sα(_⊃∩(
JC!↓33uHY(⊂
,@TTSAR(B)
λ∧∪β ⊃∩A)(αaD4!→TmQ3 ⊂⊃⊗ ∀TSAR(B)
∀∪M+¬∩AQ(Xf~(∪∪∨-∃∩AλXP~∀&U∩N@"λi∀dd↔↓P@+α@ ;EH
λA=A&4qααb4bε≤4Ph ∀⎇ h4e∪αB3)Zβ"dP⊃⊗"'g⊂ εA 8π ⊗N,!α
@∀∧D`:⊃3@⊂∃'P!f⊃`i⊂ T) lFB∧ibj⊗αB @)PY$$KZNεI∧z→α~Lb∃αε∃∩εeαM→α&9∧λ4(→Yu (2(⊂EE⊂*#!↓4⊂
iR⊂(⊗ CE#$f∪ [⊂~ MH∂-$A⊃F⊃P@(R3∪λ↔,¬∧fSβP
~ααI2ααJE≤
%λ"HhαQR)I⊂.εA~pπe"H!⊗('T eεEαj O F,400000 8πβ-∨%λA"db`∃~λ(Td⎇qQ LLzhTJ∧∃E∧αHβ"QI→α A\pλ&2|~.$∧HI`≤Ld DM≥D
%,U4 u-"βλ⊃
Z⊃∩0h~⊃(∩)j∪c"A_1⊃⊂∃*⊗**∀`i∀ JD@ ; REMAIL¬∪≥∞↓⊂∩⊗l*2RM¬:&@$αλ⊂$λS∃β!↓235)I(⊃K¬λα⊂ 8πβππ=+⊂~Q∧20≥∩λ∧r+λαP'cλ"f"fQdεTS
λ ADDI F,(TT!
ADDI B,-DQ@$hP&"JdIαRQbBRQ⊃Q LHI∩¬%EE∧"Hβ"B(&*⊂*∃⊗⊂#∀CEieRh F 0↔
=$Aβ≤αα6∩⊃∧b⊗ 4zIα¬~β16
∧⊂4TH≠+λ⊗HZSh∀I∧⊂πcεBα HLLZS (F)↓;↓→β'λααP≤@tQ⊂∀eP#aH+`∂N≥(A6
∩-α~@λ
:∃0 $SβP'→d~∀&∧zAαAdλ4(~Ydd] z∧P@"C"Hi3∪∃+≥∧h'T⊂(⊗ CE WTA [CAL ∂(A→∪⊂∩D
DDM4 t)Q0u∧
p∧j$λ& ijλ⊗P#$S& i)⊂lPnFB∧e))U⊂#$f∪ XεEβ≥b$iU i) VP ISTA3 LISTAZ LISTA3 LISPA1LISDA2 DISTA5 LISTAXA→∪')_∞ αdJN~&bα2&N$!UαI~5$βd DM≥K&R∧d~:ES2 ID$
D ∀d$~@∧ddJ:Dα∧β⊃⊂(x3H∪λJ∀S∀d ⊃⊃⊃
Jλ∪⊃λλβbg L@F@!⊃&~∀~)→∪'$
JJεKP4(→*5α¬J@ JqP0i1"B(∧∧⊂ε @12,,QLISTARRAQ
HRLZI D,350∞nnβ8$%@9→dM∧α03∧
q0
*∩dεG FMR COUH
(~(∪β∨∃∀A(I→%' ∩¬_h ⊂M zα¬αH!⊂HKαpsjYUλ∩)@$j$`S$i"bλ* ∂ 2L@λAβI∞A&2αBJ⊗α8Te Q!∀U≥∧
Bd5α∪UF!"S∩*:⊂,nA~∪tλ
¬⊂#"II4q⊂+πB4∃*9⊂¬⊂( i"cQhεE∧Sek"P∃⊗⊂ DBDXGET SAR BITS
∪)1_
*λ@λ~iRSh∧D]aPdε'T@¬∃αTz∩∧~*$
Hβ"B$ TTu∧ ⊂4rI@a
TLFE T,AS.FIL 8π⊂≡I∧2& $Tλ∃∃∀≠⊃P@J *%≥α I∃≤4→AP@L*:α¬"β⊂4K~r6B!↔qq5∧
p6Q$ qH⊂**P6#!↓2U3* λ⊃⊗∪$i`∀A4ε∩%]~⊗@"λ9u,UD
D`4∀r6HT⊂∧c⊂'"⊂ T π NEGATIVE
∀∪
β⊂⊗≡*α⊃2_HIf =$ ∀2β)hB∧
(pλλ$ccbT⊂*$ S⊂)dm⊃F@
MH∂-
↓Yλ~)→∪'$ P≠Pα33j@ ¬I C,(A)
λ SETX¬∧Aααb⊂@ ¬∧j∪''⊂* iW)V∧¬∀∩↓∃%'λαα2&NαH∪(hαB3)Zβ"dP∃*⊂-DQ→$hP& %9λ2¬%EESλHα.qI_u0 "H'j`∀↓∪A∨⊃λA∂$↓ ~⊗ph &*,jB<TλBdd~:D⊂⊃↔2∧uYX$-∩ xb∧MHYU~¬It∧dM8APDd~:D!→¬∃∃αH⊂EH∃∃∀h~J⊂j!↔tk1+
λ⊂4J(4∧P&∩ij$g⊃P OOPλ
(MαVNαRαA2b≤z2L4Tb&NRλε#@!2∪∀K⊂!⊗ ∃*)`i
!PFEαh*`∪HJ P,X@π⊂≡~α1P@M9y$<*λ¬∃¬I⊂4uλ⊗ εE∧T'h%⊂∀⊗εEεB&$ij⊂XX
TLNN T,AS.FX+AS.FL
IFN DBFLAG-∞b~d
≥ " *%≥λ∪∩*:α"~FB↔"f)QDW ⊗ALUE
S@↔∪AαAλYP∩∩`.5*22↑⎇∩⊃αε∃∩εeαdJN@$α3Qd ⊂πghβE&$iU [⊂~ MOVEI B,(A)~∀%≠⊂≡Z,IαRQbiE"→Hh ⊂LYzd*¬J@λ
∃∀p*%⊂j#!∧j&'∪α D,AS<FHx∩∩`.≤z0∃~λ¬4∧λS∪sJYαP'iλ!$l'∃d¬0≡~(∩A*≥↓αQHiD9βc _ ;FLOL¬+~A
≠⊂~M¬:&@$αλ∀i94λ∀HZα*`∩N
∩@↓∃' APY¬ "≤z0∃_⊃↔44Mα∪U)T⊂ssJ1"B4
Zp∧%⊂∀⊗!gg∀FA∧iSβJG F,LASTA2~∀%!∨!∀↓ X~∀4⊃→∪')_∞ @!~u$
λεrI@a⊂ i∀ h ILLEGAL % LISTARRAP∩Ct~∀&U∩NAαdJN@$≠!PDd~8dL@∞B5jH(⊂
c∩d∧E ARRAY IH 2,:ε!↓h∧∧dM8¬⊂**P6(+Q ¬∧e∀)j⊂&∩ij mβE
IFN DBFLAG-∞b~d
≥"lhR2&NαHC+P~ID`)H⊃⊗⊂iS"!
`iW!Vε@
DX$ JRSPλA→%' ∩i(h ∀⊗ "$¬UP3
X εE∧Tedh H)⊗*εB&$ij⊃≠_
MH∂-$A∧XQ∧R∩%\"6@,)HR`8pπfh∪ hλ ARRAY LISDIL¬≥αdz0≥Q)4λLλ∧TI@dP ∀T,-1(F)
∃↔∧∪%∨(↓)(Xb$∩w'≥∃β↔2X↓⊃+⊂↑4⊂
.∧Lj6@4TλBd¬JJ4
∩λ5⊂hT8⊃∃≥0R(
J #!%`DfSβP
AQ(Y↓%"NεID→$4)9∀\@→Yu (αdP*∃⊗⊂
!!R4TZ&.⊂LbN!ααJBcλβ"Ri→pε∧b∪dπVE TT →↓Q)'β$αB~Hβ"Qλ⊂∧ CX$ TLNL∧A$Y¬&P~∩⊂h"$$@λλl∩∧P∩)h⊂*!l!gSαX ;AH∂∧b⊗aα≤z0∃~λ¬r*Iλ⊂ri~λ⊂ "U*i'εB ∧B$ BSP T → π⊂≡~α1PD⊂I")*tλ∃¬Hv⊂si@)FE∧T*id%λ(∩!gSαS
SKBG↓Y ∪M)j~(∪!∨!(A @0hRt$%\*0∀α xb∧Lid∧$∀iH∀:\;λddqQ hT_ib∧%λiD:K1PTd~:EC+!~Ddtd
Bd
5hE@hαB(¬jP3∃(Q"B4
Zpλ⊃K
⊃C!↓4rr*λ(⊃∃¬HA"S ~u⊗MG!(∪3j@ dP!∀ TFB∧f)dλ**⊗→βE%`DSek"P∀⊗ "*∀`i∀!JFA%`B`b"$H**⊗_CE%`DSek"P⊃⊗ "*∀`i∀!JFA%`B`b"$H**⊗→βE%`DSek"P⊃⊗ "*∀`i∀!JFA%`Bija$H**⊗_CE%`DSek"P∃*⊗ *∃)`i∧⊂TBE%Reb∧b∪ek"P∀⊗ "*∀`i∀!JFA%dRf∧`b⊃$P"*→
KIKD DMKVE TT$@TTSARλC)¬
JSP T,DXCONS
PUSHJ P,COLS
SKSE TT,(FXP!
BRST LISTZ6
POPI FP⊃ 0b~∀∪A∨!∧A@X~∃:$∩w≥⊂A∨A%
≤A a
→β∞4∀∩∧∪A∂)∨ ↓β%αYmβ%%βdA')+→
:
∀lsA9λA∨↓β%%βd@pj~(~∀vWA
β'1∨α@DT`∩∪
¬'→∨β⊂@~∀vlr@@@(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(T~∀vlr@@@(T@Qε$Aπ∨!e%∪∂⊃P@bbndA≠β'Mβπ⊃-~⊗BR~α& 58I∃%-HT∧l2λHT9∪Ss Xv(
E!"NngP⊂⊂∃
∃∃∃∃λ*$$iH$iP H)"`bgc&,H#$f"HP⊂ f∪⊂+i$U iP)⊃ibi+⊃b⊂P∃
∃∃∃∃
εE≥]NP⊂⊂∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
εEεEαh#a'U⊂#)fβEαE)Ua**&αd di⊗P)"f∪a`j$S#P&'Pb"i⊂
! if∪`b∀FB∧E≥]Nβ BUFFER PARAMETERS
LLDAT=5:750 ;LENGTH OF LOADER#S ATOMTABLE ARRAY
ILDAT=5:1000 9AMOUNT TO INCREH≥PAβ)∨5)β¬→∀Aβ%%¬2~∃→1 ')∧tzth`@∩∩w≤Jj* xb∧dJ
U"≥4
5Ll)yB¬$_)D*∧~*$
J¬ ∀`$K5hD⊃3U
)10 TCEαE≥N]P("∪⊂'c#∀bj)FB&" cQg_
=~0 ;SAR FOR ATOMTABLE
αLDPRLS==:-1 ;P@+I
Aπ→=↓¬%%→≥αdJNP4Tb∩$JJβkk%PA⊃,q⊃
D⊃S⊂(q"S⊃λ(q3O'WK(b!↔tp4DλStH ∃pπP!∃c#"iβE&"'∀ )V@=8∧h∩∩m→+≠¬∃$A∂↓%β∂!⊃_A'→=)&A ¬↔
A@A¬2A→β' ∨¬λA)5!∨%βI∪&~(~∀f@[Yα
ε≤b>ε⊃¬*N⊗M∧
9αε∃∩εeα|1αεR|jMαRzαεZ>L!α∞>u~Rε:$beα∞∀*εRεt84)MYYαR"*αNε6*αεRyZ2∧⎇hZ"∧h@∧`:β"a; IN PARTICUHAR, T@IS SAVES @≠,~ (αNfgP*$fQP N↓∪⊂~R-∩0∩∧iz"∧
IyTL~λ∧v)XSs∀eD∃∩∩*4∃⊂0IHαP$iH!i"`U ¬D
8εvvA%_
∞J,j⊗ 5H→DeJλJU∀Lhp¬$DT D`81λ⊃J)s(⊃λ~α P$Sα THE @
β'0A¬∪→∀X ↓ααI∧(hαN`≥Nβ ARRAY HAS @∨≥∀A∨:*jV =(@λλYβ*),H!'i EACH↓β ∩yPDλ3U∀K∀λ∩*4⊃StD R3∞aQL¬P≠lA)↓
↓_∞@$α⊃4J4⊂ε`lH!"P$Sα ANY ORDER. @)!
A
∨I≠β(A=Aβ
⊂Aβ)=≠ ∩ε∀b∀4'0∞gP"g*∀,P$iH iP#∪d∧@→∨]&t@~(p
mlK!0∪JT@F⊃21H @'c⊗m⊃i'V⊂∃$"P*∩ ¬ LEFT HAL@A∨_A)"*α⊗ 5J+⊂hSαh
@; ( (8rP∃Mpε∩J∧9ye$→j2¬$α⊃(λ_⊃∀Q*:h∪qD
⊂∧"P∃αALUE
0⊗@YX$&∞,b1αxd¬$DTλ∃$|β(
;30SiJh∪sIK*+@⊂∃$ S Tπ⊂≡J]_4)@4εfa⊃0Q0h~4q(λ→⊂ε⊂+⊂d∧UE @π→→LAβ%
↓β¬∨-∀Aβ I'&@\h
@:βC"G]]DDSαOTE THAT↓_∞@$α⊃4D ⊃1U∧ ⊂3⊃DλR5∀dλ⊃0 aT$a"bλ$"`∩E
0⊗@Xπ0HLλ~d*∧β10)@$g#@ Lπ⊂~2Jα&→α∀JRM↓α@G∃αZ↔1 ARE X¬⊗Jzp4)@4ε`≥BYP∞ (%)⊃&~α∀MD ∃~¬JZ$`(αb⊂'Sα @∪↓)⊃
A¬)∨5∧JMαBα)u$0p
"Q∧¬∀vβY`_Hα1TI@d¬ @)!
A∂βI
ε≡*α≤@pε&"PβP >⊂∧∧(αa`jTbP$jλ$iP(∪βINDEDλ
)Xπ3@1 ∧a,H)`∂ME L@∪'PA')%U∞@%X∧Q$
p∧$aR⊂ S PROTE@π ∩⊗ ¬b¬$α∩4aQL¬P≠l∩∪∪&↓αA"~-αNzαR"ε ∧¬-≤YHU≥~λYe%∀_Z2¬<βs@∪U⊂!"P∪`b"FBα;; 6$∪∪≤AQ⊃∃α<→αBJ⎇"⊗∞RLz0∩∧~*$
J¬
4,*λx5¬∀u∃`hSαh
@; 3 ≤@~iM 3!→∀`(α CAT@&AQ⊃∃ααK∃∧(∪qDλ5∪s'⊂_⊂≡O⊂)`→M@¬∨1`h ∪[4εb!⊗(λ∞@> @
∪19+⊂∃1β⊃↓`+βH⊃IIpπ ∃M, 3 => BIGL¬+~\4⊂ mmβ1∪~@L"5 4h⊂I~α⊂$iH**`∩NED ON IF TH@
AβQ_∞ * ~2∧;
;8εvA
=%≠β(↓≠A
¬'⊂⊃α4J2⊗MPh)mmXh!mmXαR"∃α∩2⊗]⊂α~εNdzε⊃α≤~",XTαD
4 t2β∃v3
@mlj$
4q4dλ(∪Q*@P#'i∪`j⊂#∪βR~∀lp
mαM"Mα~Lb⊗Mdλ∩∧P4s∧λR3⊃$λpπg)Rij)P∪c⊂ ∀WLεA",
∩-$
t`:Q∀k∧λSs∪ @hπED↓
dQ'3@7h⊂ ⊂∀bi$bTP ∂F FASL @L@∨π-&vA$B∃αR<yα"⊗"⊗Iααyu∀∀h⊂*(αP!'U$⊂ ∪IXBIT
0⊗@Xπ2¬$α⊃(λi4Tu∧λQ23HtλJQH~pε∃@" (FOR H@∪'Q_∞J&≤
1αJ,
N <h∧k∧∧JQP*9λ¬⊂$TFE≥MNβ ALSLεAβπ
!)⊂RAβ≥⊂A)"*αN⊗∞|r⊃αRD)α∞yjD,@U∀h XH∪∪h`j$gSα @→ →_
5I∧J0⊂@ ¬≥MNβ THE LASP W@⊃∪
⊂Aβ'M⊂⊗
d*⊃αRD)α
&d)↓"¬¬2⊗JNLz1αhYT∧4H∩)@⊂)dl⊂αIT). ∀vlp
α⊗~!α~
~1α
dz≤Zλ9t`*p∧ij∀P ∂F A WORD @∨↓_
&:*α~>Vα ($j⊂)⊃d∧@∨π¬)∪∨≤4⊂ mmX∧∧+5⊃4eD⊃Ss Iuq1∧λT∧P'∩dεE PIECES OF FAS@_A⊃β!α\α↓αRλT∧dhzDB∧βqHλX0rβ!πnj`λH5⊂ ⊂∩h∧EM↓∪&A ∃!β≥ ∃_
Qα|qαRλT¬∀,Ix4
$α3sD
⊗4⊃'P*$*TP# iS!&'aRiFE≥Nβ; ARE @∨↓(
εJLJ2: HTdu∩↔λ⊂*$"H& ijλ!&'aRP
AY HAVE @
<*IαRD
0∩∧βR3HQ ¬≥@;8εA βQαA&$*6Md∧¬$DT
$,@⊂πa`U$gg TYPES AND↓)⊃
A→_∞J6
"Mαxd¬$DQQ#@7nh⊂*:pπadPh"b DATA↓∪ ∩⊗m→αεJ*αεMα4z22zz3@$β"Ng]FE≥Nβ; TYP@
@@Jε
N|bVB∀hQ`≠[4 td(⊂0J9βb*j⊃P+gi⊃⊂*'P⊂α@
A→=β λαp4)@4ε`≥CE_ 6βX&Bf∧)↓D~(Td|8~D∀HQPC[50∧l@Q(∃i@i"⊗⊂∃$"P)∩c`λT↓⊃β→↓_∞→ααy∧L≤αλ∩*4∀Q3 @a`j P&"U@ I(
\ααε@" It Q'3@7h⊂
$SbP ∀HE @→∨¬λA>42N⊗Q∧JMαRzα∀(⊂1λHαb⊂*∪β THE RIGHT @⊃β1\@~(p
mlhQ`≠[1~EM∧Tε M≥λX4LAQ#@7nh⊂$
pπi"λ* ∂ BE @→∨¬ ⊗⊃bαP≤Dβtq$
R1r
D⊂∧ f⊃⊂!gg∃ dg)H* λE IH
`A∨A¬_λ (αN`≥Nβ ATOM ⊃⊃=!⊗~αYDeJ xb¬%~λR¬∧βP3(U(⊂
$⊃P b"∀ ¬S@&↓_∞→ααI∧*¬h→E,*λ8Tdb x`hSαh
@; W@⊃∪
⊂A&~αR=αα(U∧d_8R¬$α⊃(
)1r∃∧ ⊂3⊃D qH∃ λαP&'Pb"b Tπ⊂≡J ¬bαDα1H @'FE≥Nβ; @-¬→+
A
⊂∩DλUDM8¬∀eD⊂πg"H$iP*∪β BE @π%βQλ@9Hh ∪[51PC[51∃%MλTβ_M9X∃≤D_)D*∧8→D`HαN`≥Nβ SIMIH β$↓)≡A%JB*∧¬⊂
(W+↔
P"d!Qh*⊂*∩ j⊂*∩ ¬ INSP %+
)∪∨≤αα&Mα|r∃αxaPC[74¬$DT
4-∀_Z2∧|dλ4dβλ∃*Yth∃i 0r X4(⊂HTλTs(~r⊃1∧∧⊃StD
∃0 $Q$a`j∩g`∞
9;; PURPOSES. AT PRESENT THESE UUOS ARE: CALL, BCALL _A9ββ→_0A≥∃π¬→_L@4⊂vvV4⊂vvV%)3!
h∪#+=)βλA¬)∨4hQ`≠[4 td(⊂gT ⊂"'H!"P&∪βADED W@OSE RIGHT HAL@Aπ=≥)β∪9&A)⊃∀A∪≥ ∃0A∂↓β≤4SY`≠Zλ~D`9αP ↔HMSE AD@RESS IS TO BEPLACE T@E RIGHT HALF OF TH@
A<zJ⊂4SY`≠Z It$XAbhαNfg⊃"NngDj,h⊃P~DhUej"bλ&$ijβE→P≠≠ A @'∃%∪~α6→α<zJαM¬∩⊗BJ-~⊗*RLr≥αεp∧¬~LXε∀
(4tr)Yβ⊂ ∀O BE CMH
' I+π)⊂~∀`-β32∧∃∀
DD(∪∪h_⊃4KD
⊂⊃(λitS0*D⊃qH
I⊃4q$
stQ
4⊂4hλ(αij⊃l(& Re"b⊂⊂αY¬
;8εvA !
Aβ→≥∨%∪)!~A+≤*⊃αRzαε.:%∩V∞Q¬""*λ5T-Eλ(U≥≤→ycR¬IλR∧dx_D-⊂Q'3KZλ[∧l→hU~∧)~E~βE`
eV J( xH⊂u(_q4ti~β"f,H)"`bλ+gi"∀V⊂ g⊃⊂"$iT j!d⊃iFE≥Nβ; ON T@EM:
;8εv@@%)⊃
A¬)∨
A]⊃∨'
↓∪⊂~∩-Aα&M∧J9αRD)αJ&<BQααb→α≡2αR"∃¬:6J⊂hQ`≠[1→∃~¬λ¬4iλ1λ∪ij∪h⊂$
u⊂0i5Hβ"G]]P_Bj λE LOADER POPS AS MANI IP ≠LA∨
↓)⊃
AM)βπ⊗↓β&~∀lp
l&≥α⊗∞_i∀,"λ+∩¬$λT∧e,X(U∩∧→`λ
I⊃(∀I_p∃⊂∩ f#⊂∪c⊂"$⊃P+gi⊃∧@
;≠8ε∪β≥⊂A≠β↔∃&AαA1∪'(A=A)⊃∃~PA'<A)⊃βPA)↓
↓→β'(↓∪ ∩⊗jαB>B∧*⊂ ('73@10Q0iyαbaP∃$"P#∩i)j∩h∧EM LπA !
A2M~Qmα$B&MαdJNQαM→αR",p4)@570M¬X9∧," ye$zλI∧*¬8H∀≤Zd↓PS[74β⊂MIλR∧dx_D-∩λ u¬~ yd*∧α5⊃)T⊃qQD
⊂⊃(
:⊂0rdλ3Q
Spq(X∀h⊂*1"NngDc'iλ_V⊂"V!b`*λ*$ jλ* "P∩h∧EMFIRST PGPPED IS USED TG
9;; EL@λA !
A2M~Qαεu~Rεε ∧∧L2 i∀br¬
DDM4λ∀ddzz2∧4z ∧$⎇JHT HαNfgDh dT)P∞)
λ;;;3 THE TOP IP ~↓_∞ 2λ¬∩λT∀p
PeP$iH"k f∃`j"bλ g" SPORED BACK
;;8ε∪∨≤ααR"∃¬"6Aα|1αRα*αNBε≤Y94SY`≠Z∧A∃$DT
$L<
@λ λ3⊃H ZH⊂
$⊃P+gi⊃⊂)`⊂EAIFIES THE LENGTH OF A¬
;8εv∪⊃U→⊗A <A¬
A5β
A 2A)β-∪∃∞AQ⊃β(A5β≥ %∧JR⊗6~α~J>h∧¬$DT
DmQ'3@7b3qD
⊂⊃(
:⊂0rg∀λ⊃∩ ~h∩∃)@%P$iH* "gλ(*`∪HED BACK&
λ;;; 5 UNUSED.
λ;;;4∧∪+≥U'λ\4⊂vvvh&RD)α2⊗5!α"εd1α>→¬""*λ¬sj(λ⊂r Zαf" @@
@Zβ α>IαiI04SY`≠X→→d$L8~DL@Qh∃ λαP ∪EAH∂: ∧∧d
8@λ
Yβi" LπA$B∃α∩
"¬mαL1↓5E`h ∪[51∃$DT
$L<α∃⊂∩ f#⊂∪βF @)!∪&A<zJ↓αr⊃αRD)αε∩%∩⊗NM∧z→↓λ¬rλ~β"Ng]Did∪βQLD↓
*∀
DD(⊂ dSα@∂2*α&@$YPλ @dε @)!
A'$
≤Z¬
tDL9λ ~c"Ng]Dh'T("b Lπ
R↓β%
A5β
AI'!
)∪-12A&u"0~¬IλR∧dXjB∧hAP@'njb*)1r∃∧ ⊂3∃HZh∪qDλ(⊂gT ⊂ ∀O BE LMADED IN@)<A¬∪≥¬%24SY`≠X~
$l=(→R¬≥λ_4+Z _bαk%D¬$DT
2l-α∀∀HZtr3i@⊂ iP∀& abQ⊂ NTLε~∀vlp&RD)α:⊗β
B¬≤β∪u∧ qH∃ λαP j∪βH)β →∃↓E~⊗∃ααK∃∧(λλ@2)(@AQ⊃∃α|r∀4'0∞gDkgi⊃⊂)"fPdg$g⊃P S THE HAS@⊂A-2A∨_A)"*αM ,Xε∀
(αi`∪ILπ⊂→α
_4)@4ε`≥Ba`∂MPUP λαα∃Jλ∧v λ4r≥H* λIS IS USED BY THE L@∨β⊃$A$yαNε4(4)@4ε`≥Bca`⊂RLεA'∨5
A/∨I⊗P→hQ`≠[1Q#@7nb5~⊃(
A_pε'a⊂d∧S@34~∀`-β0∞d pπ"P∃βH∂%λβYαRλT¬∀Ly
B∧D→Hb∧M4λ∀`$⊂∧g"⊃l⊂$g∃'P ∀HE TABL@
A→M3⊂⊗M∧J0⊂@ ¬≥@;8εA2M~A9ααI∧*∧α3Q _p5⊃(D∃P3
X(∩4d
Q0
)∩bk"b⊂ ∞EGAP λαα&→α∀JQ↓Qpπ∩∧|aQ#@7nh∃ λαP" U P ↔OR@λA∪L@bXA¬→⊃α"∩,D
D`4∃∩⊃$
R1r
D⊂∧ f⊃⊂ ∂F THE LAST
8εvvA]_∞J⊃∧b0≤HXB∧Lh¬∪dλR3P*+(⊂λ)∪ci fH)h aQTε THIS ALLGWS LAP AH∂
4⊂ mmXαR=α∀*~-$
D`4∀q3λXu⊃1∧ ⊂πa`U$gg)H$g""T' f⊂∃'P&$Th⊂#dU$#jjβE_ 6lAπ%"& 4t
5LL)yE~∧h∧SiT⊃⊃∃¬@⊂εE≥Nβ;
;8εv∪)e!∃↓αq∀<-HHE%≥→QP@'nn`⊂∩c⊂ ∀HE FIRSPλA<zJ↓αM→↓5EbαR"⊗p∧¬$DT D`81λ∪hhβ)bjλ$c⊂ Q ∧ED↓∪⊂~Rxh ∪[70¬$DT D,5D ∧Dd t2¬IλR¬<z(B∧lz:B¬∀X8Te$K∀∧d|_HT"∧→jD`4⊂R3H~T#"G]]P(∀'ci SP)`⊂ACE (THIS IS @⊃∨\A→
PA⊃β→_A%→=∞εRLz0∩∧~1P@'nn`⊂⊂aagfT& id⊃b⊂ .A∨)⊃∃%/∪'∀XA)⊃∀A¬∪%M(A/∨IλAπ∨9)β∪≥LA∪≤A ∪ ∩LhQ`≠[4ε∩`&+)βFT⊂(∀k→αa'fλ$g⊂)Tjgm"H!cb"Kα THE L@∨β⊃$A∂∃)&A !
A-β1+
A∨_~∀`-β32¬$ ~2¬≥→X$l@λ⊃TIyαP""∃⊂ F POS@'%↓→
X↓→⊗≡
"⊗MαM!α&→∧∩&@"∧@G∀⊂4hε∃αεE≥Nβ; @)!⊂→α"∩MααI∧*¬(Z5,ED
D`4∃∩⊃$λR13λD⊃qH
I⊃(∪λ~uλ∃i@i"⊂&∪βADED AS
8εvvAM!⊗∞L2&⊗⊃∧∩eα
M"M↓QpεbkαβI`≥λ∧A≥MNβ 3 = ENTIRA @/=%~∀lp
l%∩↓uαε~α~&⊗d!α>~eH4)Mβ30K
πPλ
)1r∃∧ ⊂3⊃D qS⊗!QL¬P≠≠ 0 -EH
)∪I
A/∨IλXA¬U(A'/¬ A⊃β1)β&A=A-β1+
A¬∃
∨%
↓β ∪9∞\~∀lrvA)!'
A→∨ ⊗I∧2&⊗2%→α∞>∃∩⊗NB|r⊃αRzα6B∞|"∃1α→1αε$"J⊗N~aαε: α&*∩-@4)M[Yα~&,b∩Mα∀*NB⊗≥"&@4YK∩∧Ldλ∩∧d~∧∧L@Tq∀JXu∩3ieHλ∩(d⊂R5∧ε N⊂∩iP @TεE≥Nβ; DHEJ ANMPHER WORD FOLLMP∂&X↓β⊂≡~$
&:&t9αRα*αRε2,)α>→¬""*λ∧v)XSsβ!πnn`⊂⊂iP'a∃ dg"Q⊂# ∩OM DDT AT ASSEMBL@
A$J6∃9∧J→αRD)αZ⊗α*4L@pπ⊂'∃d¬BER
0⊗@Xπ2∧|d
DD
D DM≥∧¬∧
~λHU$4S2)@ ¬D FROE TH@
A≤*≤@pπ" FILE H@β ∃$A/∨IλR4SY`≠Z ~2¬$α⊃(
831(λ~h⊂
$⊂h∧ OF T@⊃
↓→∪' ↓
,→hr∧dβp1λXλ∩3JIhε⊂*∩ ¬N THIS
8εvvAYβ⊂∩V*α&MααZ4,"λ→d"∧HJB∧M4 d`:α⊂!gSαSULTED AT L@∨β⊂A)&l)`~¬I ∃~∧α4c!πnj`⊂⊃'i⊂)T ¬ED8A∪AQ⊃∃ααhU∃≤α3sD U30HZTh⊂*(αP"$Q εE@%∃_
Q⊃¬"",dλD%" ~0hSαh
@; CGNSUH )⊂X@~∀lp
l4SY`≠X~K∃∧(λ _α`i) VP)"c⊃i"g!QFA≥MNβ @∨≥∀A/∨%⊂A)∞A
A2|
∩ε⊃bαV">≤)αJ&<BQα"b→α∞|rRε&u→αRα*αεByY∀`(α"dεB≥]U@∪c⊂ gλ j'fRaP!lSa'f↔λ$c⊂*∩ ¬ @'e≠¬∨_↓⊃β&A¬_Aβ%Iβ2A¬∩0≥∧X*EJB ~@hSαh
MH$iP#⊃h∧CHED; OTH@%/%'
A∨9
A&~α≥∀X~D,"βH∃ λαP ∩IGHT HAH A=A)⊃∀~∀`-β0∞d
qtQ∧
⊂πP!⊃P OAD@λA%&A%A→βπ⊂A/β) A)"*αε∩∩∀*NMα|1αRλT¬≤,9yd HαNfgP+gi⊃⊂ ∂F THE ARRAY POANTER (I,¬∃9∧z→αRD)αRR≤
I%9αα& 2λ¬∩ ~h⊂`VFA≥MNβ ACCESSES T@≡A¬%%β3LAπβ≤↓
¬α⎇α⊗96≤z∩,E`λ↓QLh
]CE→P≠≠ PYPE 11 UNUSED
0⊗Vl~∀`-YX&Rf∧)↓EHL
R>6$
2∃∧J:4S THE SAGN OF TH@
A¬%∂≥+~8~∀fVl@h∪)!
A
∨1→∨/∪9∞A)/<A/∨%⊃&Aβ%∀AαA =+¬→
5!%π%'∪∨≤↓→+≠¬∃$\~∀lrv@J%)⊃
A→∨⊂∩2⎇:& 4t
E,@h∃sj(∀h⊂*((⊂ λ→q0∪λ[λ∪U)XQ0 .
0⊗@YY↓X&$B∃α~|b2>↑Lr≥α~⎇*Iα↑⎇∩∩Mα
∩∃α¬∧"VBH[α∧uYX$-∩aQ#@7nh
a~3U4hXλπεE∞β;; TH@
AβQ_∞ *λ¬∩
Zh⊂tHX5⊃1∧ 4h⊂*:p∧cg⊃b⊂ @∀& abH$g⊂*∩ ¬ ATLπ⊂⊗R∩2∧Q'3@7h∪0)→U⊂2)Hαb⊂!⊗P*$"H`b⊃i⊂∀ TP g ARRAY) UCIL@∞Aπ=_
N⊗≥*R&Z(h!mmXα2>∞
"&.h72∧∃)yR¬$λ~B¬∧βr3JD⊃s@⊂∪βP@ER DATA ITEMS REFERRING TO
λ;;;THAT↓∪ ∩⊗hα≤dλDj¬9t∧+(⊂
$⊃P NDEX OF T@E AT@∨~αα& 2λ¬∩ ~h⊃⊂()⊃+@↓QL¬P≠≠ SEE AH '≡↓)3!L@jAβ9λ@bl0A/"L~!αεe~5αX→4*∧YjE∀LX∧h →β⊂ ∀HE
;≠8εAβ)=≠!β¬1
P→hQ`≠[1Q#@7nb5~⊃(&113U
+(∩3Hic"Ng]P"+Sβ WORDS ≤AQ⊃∃αd*~QαD
22 xb¬$α⊃(λi4Tu∧
qtQ∧ 4h∃ λαP j∪βH∪≥⊃0~∀lp
mα|1αRλT∧`(31( XH⊂
$⊃P# ∃N@π!&|qα
⊗Lr≥α∩,2& 4X@∞d
⊂∧"P∀$cd*λ$ f#βE_ 6lA)↓βPA∨AQ⊃∃αα:T*H⊂
,T ¬ (TH@
A¬∩0≥∧X∧U∀∃3QλZH⊂d∩a`λ TLεAπ∀*εB∃¬""(β"Ng]P"g∃)( PMIND A.G∞ SUBR OR FSP¬$αI0∩αλ¬∩λT∀R1i
λ∩⊂)Hβ⊂'cλ* λE
λ;;;↓'π∨9λA/∨IλAβ&↓)⊃
A1_∞∞ε$J0≤@H∪qD
⊂⊃(λYβ*),H( ∂INT AS A
α;≠8εA%1_∞∞ε$
2∃¬α6&:$*IiααI∧*∧β∪p(D⊃qQJ85λ∪*Zuλ⊂HT⊂1⊃λXλ⊃∪d 5@⊂∃$"FE∞β;; LEFT HALF OF THE SECOL@λA∂=%Aπ=≥)β∪9&A)⊃∀Aβ%∂LA!%∨A%)20A∪≤~(p
mm∧J:R⊗∀rε "λ~$=~λ
$`:⊃0 *⊗P#'i∪`j⊗⊂⊂iP!h⊃a` FIED IN T@⊃
↓_∞J&<J0∀AQ#K[4 D
αλ9t$(⊂V$
⊂∧"P⊂i#iP⊂βH∂
≥"JV∞α@D↓ ¬≥MNβ
;≠8ε∪)3A
@bh%→∨ε~(p
mm¬""*λ¬sj(α⊂$iH P ∩ELOCATABLE QPβ≥Q∪ ∩e¬~B,9_eLLhpλ
@d"`∩E T@≡~(p
mm∧~6 5I→e,* It$α3Qe@⊂⊂$jλ$iP'∪βPλA∧*J6&%"⊗⊃ααIr∧dβphλ ¬LOW T@⊃
4⊂ mmX∧∧`:R1r)@⊂ ∂F THE ASSEMBLY. IF THE L@∨ε↓∪&A$yα¬αdz≤
I→t`$⊂∧$cR ¬R
8εvvAQ⊃β≤A¬_
eαβ_U"∧β∪p(Hαb⊂$S*#V⊂∃$"g FASLOAD @5∃%∨&A=+ Aβ1_A/∨I &~∀lp
mα∩>@4T
DD
D ∧L<α⊃4jD⊂ε'aPh ON UP TLεA)⊃∀A→>≤
R&>p∧¬≥∧X9∀4LX@D↓ ¬≥MNβ FASLOAD↓↔¬→αRJ~-αxd¬$DT ∧L<λZ5"∧β∪ph~⊂∧ggλ ¬VER L@∨β⊃λA∪9)≡v~(p
mm¬""&M¬2ε %XT¬∧eX4∧`9β"P!⊃a`∂MES THE VALUE @∨↓
Bz(r∧
D
DD(⊃3HD⊂πcεBα;;;↓β''5↓→2X↓%⊗≡
∩∩2⊗α:2∧|d
DD(⊂ j⊂h"P'Q⊂*$"H& ∂CATION↓!∨&u"⊗HQ'3@7h⊂d⊃dε LOAD@∪≥≤A)∀j&*ε$*M)↓¬""&M¬"fB∃∧JMαhZd-∩λ¬4hXλ⊂V$ ⊂4β!πnj`⊂⊂βH∂
0A¬+λαα0≤@S⊗(λ,P&dQ iP↔⊃ if⊂⊂dπDE. λ
∧vβY`_h'33@15⊗4λT-"*
5⊃⊃
Jv3#!πnj`λi4Tu∧
stQ¬D∃∩⊃$
v30IYα⊂$gλ)hjgV ¬ COD@
\@↓∪A¬%(@h\βIuAD
DD εE≥Nβ; CYMBOL IS DEFINED T@≡A⊃ (A∪_A!∂'M∪¬→
↓(∞&R@∧¬$DTλ∀$¬(Z5~∧xd¬$DQQ#@7nh∃iZQλ∪hd⊂R3H~T(∀
)qtP)T∀pλ PbP a∪h¬T TLεA¬
↓→∨β ∃λAβ≥Q_
αε~α&@%1Q#@7nh∃H→α*bWλ⊂ F @¬∪(@PX eUλaαRα*αP∀JXR∧M4λt`8PS⊃(D⊃PSiT∃∩⊃$λSs∪ @hπANG
0⊗@YYα↑≡∀!0∩∧)~Bβ"βJ⊂
'c⊂*∩ ¬ @/=%⊃α≤z2RεLr& 4t
DD(⊂ hUem"TH&b`g∀FA≥@;8εA%1_∞∞ε$)αRλT∧d1P
HALF LπA$B∃αZbV∃α∃IαRλT∧d|_@λ @c# ∪ET, ANDλ
)Xπ3@4⊂R5∧ελπ≠@ LIKEWISE FLπ$A$B∃αJL:"QαD
2 9ααP≤DX¬∩λZH∪tD Su⊂∃$"FE∞β;; SYIBOL AC@)Uβ⊃2Jα≡⊗R~αBVQ∧J0∩∧HJB=~λ∧v)XSsλ
H0S⊃$ 4h⊂$λU3PjI3sC!πnnh XH⊃∩
(1(⊂iyβ"$j∩dπ@≥&hA
∪%M(XA !β(A !%
A%&AαA⊃ (A∂%)⊂Aα↓'3≠¬=_~)YY`~¬H_$d4
4,≤βsQ¬D∃∩⊃$
P3∃(T⊂πc⊂∃$"P&∩ih⊂+⊂i$`a∪ P⊃)Vda'f∀Q_
λ;;;THIRD, BIT 4 ≤l↓≠A$B∃α~M∩NAα¬*Rα∩%~f%ααyu∀αd
DD(⊃R**uβ"G]]P!SdεDITIH∂9∧z→α∞⎇*JN∃∧jVNQ∧∩∃αN
"&N~L*⊃9αL1αNuD¬$DY`¬$DT
5L@0Ss↓QL¬P≠lA∪&AA+ ⊃αLqαRλT¬≥LX)tb¬H_$d(∪sIK(∩1D
v30IYα)P$⊂iP @ L¬∨[9∪⊂⊂4SY`≠Zλh∀e,U`λλj4U∩λZS3tHUα⊂$cλ* λAT VALUE @∪&↓)⊃
A¬)∨5¬~f ,)yE~∧α5∀hYα#⊗εBα;;+THEN↓)⊃
AM3⊂⊗
|aα&M¬αV@" ydeJ _b∧∀~@β"sd ∃~∧βs@⊂
$g"$PβATING A
8εvv@ ∂⊂∩x(∀b∩λ∧v)XSs
%@⊂εE≥Nβ;
;8εv∪)e!∃↓α⊂
A_5P3∧ 53QhX0S⊃!QL¬P≠lAαA≤*J&⊗α4∧`8H⊂gT ∧S SIIILAR TO TH@∨'∀A¬∨$ααRfB*↓U!α∃*Qα↑M"!αiqP@'nj`⊂⊃'`LOTπ∪≥∞αα"εN@∧∧\-α+@⊂⊂dε @&51!∀*NN→yb∧M4λ4`9β)`∀RUCTED AND
λ∧vvVαα⊗@4→JT
⊃1↔λ* λIS IS USED FLπ$A$B∃αNzj≤IHT"α)ZTdq00IH4h@⊂∩dε A
λ∧vvVαα~&2*α0≤2 H∃α∧9xD*@Hλ∩(d∃∩⊃$ ⊃1U∧ ⊂3⊃D qH∃ λαP& Th∧ GOR@ IS -1,
λ;;+THE VAHUE IS @)!%∨/≤ααεNεJqα&→∧JQα&~↓5I1¬""*λ¬P)J1(∩*4⊃3UλZQ1β!'nn` →H⊂
$⊃P j'Sh a&⊃U⊂εE∞]]FE∞β;; TYPE 15 END OF BINARY
0⊗@[Yα>:*αV =(@∧
r∩0i∧⊃14jD⊂Q(∧∃# iS∃Q⊂∀∪i⊂⊃¬⊃ if∃λ∀P$gλ)dl!∩h⊂∞
9;; THIS SHOULD BE TH@
A→¬' A ¬)αA<zJ↓αLqαRα*α~&2*qαε:JαJ⊗2|~εR→y`hSαh
MH!,j"TP EFT OVER AFTER ATYPE 10∞AβI
A&<r6J⊗ q↓αRDJMαNDzV"⊃∧∩∀4 Xπ3@4⊃Ss Iuq1∧λ25∩λZH⊂V$λ3Q⊂∪βF FILA OR A @/=%A
U→_A∨_A5εOLX@~∀_wββ1 α~
~2>ε ∧∧d¬∪λh!Q#@7nh∩)J⊃0SH→λ⊂5*Ipε'`Q⊂)'jU$g"FB∧¬∃∪¬→∧`(LBJJ@$λ∩bD∃⊃⊂K]8¬0J$#"A→3uQ)∀⊂K∀(∀1⊃⊃↓Q@∧h*Td
P,MEBGEF~∀%∃%'(αα2>ε h($!Q$4
9It#!Q LU:∧¬%"Hjtd91PPLh⊗β∪6ABeh~4d|_APPM99∃∧(⊃P*9∀β"A∀∩TTjD⊃⊃⊂)JQ01⊃"B4
Zpλ∀¬HS∀α!↔qStDλ⊃0U(xr3Qd
∃0 (∪ibaFB∧h*iR⊂(⊗#⊗(∧DW∀bbP&⊃ gffCE PUSH P,SP
10 λ∪'∃)∨
A1 ⊗>5$%n4bε≥α4zIα∞∃*~Re∧!EAα%*6Aαlz∩¬αJz5α⊗|04(ε¬*N" ¬↓2~&c2
P4PJ6.Z*αQ2∩4r↑⊂$HI`≤$Xh∃,EDλdLDUYdLT
tm∀D¬Rα∩$!PPLYzd*¬JAD$QSUhA"".hH1P5)Jλ⊃P*91R)H+3P)X(⊃sj(λ ∧! ifλ∧¬
20$ SKIPA -L,∧m-¬L[_Lm∃1(VbαB~bAJ%↓↓α↓n⊗b$*0∃≤α3sD¬SQ∧λR3⊃$ P31%∀⊃P
f∪∨FE∧H!`fgλ*∩⊗fα6VBS-H& -∃1(FbαB~bAJ%↓↓α↓e↓α⎇⊃αεF,
1αRz↓)⎇↓∧J→α⊗M""-$λ4
≤UAPPJ∧ T⎇∀YT¬%"EYBc5h*2lbfhUE"6⊂
λk∀
(∧∧λ∞`∧
∩⊃3D
4q(∧∧QP4iDC"R(iH⊃F¬⊗c"A→3uQ$
∃⊗h~pr2$⊂∞.CE∧ieRh"P⊗S↔≠+)∀UXT#⊗(⊂P∧BP⊂⊂⊂∞hεE@%M∪↔9∧rV&
-⊃α:Vda|4(Jαεε6pαQ1⊗bqZZJ~YE"~E↓%$J↓↓↓↓X∧α∧⎇$λU
03λ
Ih
Od∧⊂1HλY5∩⊃*$⊂p4hUβ"B$∧∪3uHY(⊂
*⊗f↔∃αRS+⊃(BP⊃ $∩@@@p
↓α$B⊗ 2λ¬4hTλλD∧↓ W"!↔q3Q∧ qH∩(iH⊃∧F↓ ¬∧h∃i`%⊂∀⊗"&i⊃cεE∧T*id%λ(∩≠!∃'&fεB∧fgk⊃dP!ε∃)*b$βE JSP T,SPACBIL¬λ~∀$@@@`↓αY2$22ε4HIf -Z:B∧∀→hB∧dHidJλiu∩¬(X5-∃9~d*∧h~4d|_I∀d_Q!∩ααε∧∧∩eiiu∀-AQ Jα∧∧αααλh∃≤e↓Q M¬Z9α¬αK9D%E⊗∃hh!~¬-≤∧
αdλQ!∃¬-9∧¬αe:_dMDh¬3+Q"B3)zSR(
EC"A→TTu∧∧∪t⊃)aαE&"⊗,,X]αfgk"SP V#⊂if(εB∧h*iR⊂(⊗ CE HRRZM A,LDBSAR
MOVE A,LDFLAM
SETZM LDTEIP 8ππ%∨
⊗B
∀4∀w
β1→&A !%∨+∂ ~∀_w ⊃∪'
A1 %)⊃LA→ 1E"`∃αd"bFE⊂α2αb
MαHK¬
d D%E~⊂∞∧ ⊃⊗∀*⊗c"C!πqP3 Jh∩3AQ@εE≥Nβ; COME HERA @)<@E ≡↓∪ ⊃α≤z6∃αlzJ*!Q hTHHDM≤TεB*
4r∩D
λε&"⊃b"*∧B]ibjλ*h⊂"⊃*⊂#&⊂c]⊂⊂⊂≡←⊂∪'P""∃≥PεEαh*adλ(⊗**αDYVXK⊗_⊂≡O⊂""*⊂''P∀lfa'S)]P_K⊗,⊂≡O⊂""*⊂)lfP'f)FB∧DDDNl⊂&`VP!"P⊗⊂'iλ)`i⊃'i⊂)Vda'fλ* a&⊃P i)⊂lBE∧BDD]P
)bbP∪"("j
FE∧iRdh'⊃⊗+(*T"DD]Tbj⊂*T⊂!`f∪⊂("i∩c(P#∪ ci]βE ;400000,,XXX => FO PURIFY @ACKERY
λ @)1_∞¬α2aQAAαεβH↔6#ββ∧∧¬E⊗⊗⊗∧π,π⊂)Ua)j XCTS FOR CAH@→&0~∀$HH%mαα
U"∧8→De~ →b¬≤X∧⊂*(5⊃(
λ1q4aQ@∧DDB]XX___⊂!∩h∧ MEAH
&A→β'2|
⊃α→jD`4⊂∧$iQcP∀"X⊂'g∪,TFEαP⊂$)∀-⊂#⊗∃αPU@%
→∨¬%0∩v`X0y!+∀)α2ε≥!y↓up∧¬≥0Tu∧
∃0 d∩)P g⊃∧¬∀∩$∩∩`-∧RJNR~α~>I∧~ε"J1P@!4⊂
iR⊂(⊗#αDX AL¬2Aπ¬→→&A9≠ A∪5≠ ∪¬)β→2↓'⊂⊗ε≤Bε
2(h &6⎇2∃α¬e2BVJ(H%l&
∩∃α∞|rN⊗⊃∧z0∃$t
DD(⊂λ*T ¬ LIST
PUSHJ P$FIXP ;LAAVES VALUE IN TT IF @∪≥⊃λA→∪1:αYPhPα2U)Z⊃(⊂%I⊃⊗⊗ε εE∧Sek ∪I B,2⊂000 4⊂∪∪∨I~AX! R4TJ~9↓eαε≡→hrke)∧M≤XyT,@U⊗aQ@∧e*Sh#bP∃*⊂LDXQQ7 8π∪AA+%
A%&AαA9∂β)%(
*λi∃DuYP∧λ⊂πP$∩ibc@ HACKERY~∃%
∃αα8∀L@λε-FBα H@%I_∞%αα@¬@ πTSGL∧∩αw→∪⊂~⊃¬:"-IλU∩∧α∩4hXh⊂ d⊂i a&⊃P⊂λFRLπ⊂∀Q!∀<-JH∀$∃α!↔mK@_P
ONIP >⊂∧∧83∪∀e⊃ ¬∧P∩))`∀X -HhP&BIib¬"β
∀i@⊂¬SHR)
∃:$p∞⊗: ∧∧`8H∩1HT∀p2)Aα@
SA$ SKIPL .J@¬⊃%_$∩w&~α"&N,9α∞Vα*$,@U∪⊗$
tR5λU RELEASE TMPC, ;FLUSH TEMP CHANNEL
↓UNLOCKI
↓POP FXP,TT
MOVE F,SVPRLK ;CAN NOW USE SAVED PURE SEGMENTS FROM LAST TIIE
SETZM S@-A%→⊗~(∪≠∨-∃~AYA%'∂→,~∃→ a#"jt%≠∨-π$AXb@```@4∀∪∪∨I~AX! R$KZN⊗Q∧22ε≥¬~εf&t9α↑∃=∩∃αα~.&::αR"∃∧B&N⊗8h(&6⎇26Mα% 4(ε¬*N")¬↓22∩DB",$KZN⊗Q¬*Aαb≥!αBε<*MαVα9∀th∩∩*81hβ!!33uHT⊂+∃EJ∃0 "CEh*Td!⊂(#$l(αDYf"Pk"`∪ T¬β→+∀A∪≤AQ(Aβ≤αα& 4HXT"∧i≠∧u,QQ LUYZ∧*∧∃ID%E ε⊂HKαr1DλR6∪JY+λ∩*D∩4hλ→β⊂"iU$f`j⊃P ∂F PURE FREE STG
CAIG TT,10 ;IF 10 MR LESS _A5+⊃)∪A→2A¬d@b`dβ!0 (!∀∧e≤αλ∃
E,C!!0p2)H(⊂
*_∧D]Pd"aeH#'i⊂∀ `igS a&"S ¬SC
CAILE TT,EEMORY+9%_b[∃_
α"Hh(%↓∧RJNQ∧b∩f⊗∃⊂4(→Yu%≤∀λBblhhbkλQ!∃≥,$
E"eλj5≤M%λBHK8∧u(*∀P0jD⊃TSiT⊃4u →05⊃$
⊂⊃(λ~4TQ)@*εE∧Pea%'λ"⊗↔⊗LD@ ; SIZES OF EXISTINC PURE AREAS
MOVE D$PRSGLK
LDXQQ2: JUMPE D,LDXQQ3 9ALSO ACCOUNT FMR ANY P@+I
A'≥≠≥)L~∀β'U¬∩A PY'∂M∪4α∩lAβ→%∃β 2A%_A)⊃∀A
%∃→∪'(4∀∪→ λAλY7M∂¬3PXY∂πM(QλSt~∀&U∩NQαd"bFE⊂h $
d"bFE≠P&*Vmα2∃ααJBddK¬Cλ↔9%,m∧ ∀2∧zXU≥≥I→T
∧Tλ∀e∀X_EJ¬8~DM≤i_T HαB0(H⊂∧P*∃⊗)bcTdm⊗@1 ;ROUN@ UP TO AN ANTEGRAL
∪β9 ∩A PY'∂5'⊗∩∩lA≥+≠ $A∨_A'∂5≥)&4∀∪≠∨Y
AλY!¬!∂%≤~∀ββ⊃ ∩Aλ1'∂'%4Zb∩$p∞ε2≤yαJ>,r⊃αVαα"&N,9α
B⎇∩≤4(L
:∩¬∧!2N⊗<jN,4PJ6.Z*αI2⊂hP&ε∩ ∧∧"eJAPPM:X$J∧EF⊂hP~IDd(⊃β¬V!"B$ TTu∧λP4s kα".h→βf`⊂LAIN IF FOT ENOUGH MEMH∂%24⊂∪≠∨Y∩Aλ1⊃¬!∨I∞∩αwU!∩ε$)α"&≤*≥α
∧zJ≥α∧
NAαb2>∞
"⊗⊃α≤*≡&⊗u"L4(L
6MαD∩B>J8h(&∞j≥α⊃dBαB⊗t 4(∀ %∃≥D D%E~∩`hP→Yu (3(⊃¬I⊂T⊃)Hα∧D]Rc⊂'"UP λISEG BPORG TOH∞A→¬%∂
X4∃'αJ%⊃%→5$Aλ@1D!$4*≤ ∀&∞⎇∩∃α⊃`h*N¬ J∞ =(V"∧"A⊃∪J∧ZZ5"¬(Z∃,-:D∧l⎇(T∧≤⎇(T∧4⎇$ ∧M≤XqPPJ *%≥"λh∃≤di↓⊂K\9yU∧d→→b∧Ld d⎇αλYd⎇,y∧l,Yz%Hh)HEE
⊗g Le9∧¬∩bZ8T<dxq⊂K]XλD
$T
4,<XYe"¬H_$d-5APPLJ9α¬%EEU≤,yIt8H↔4∧tDλ∀$"λ
U∀*λ8T<LYjE~¬It∧5∀XYDM≥AQ LlzhR∧"K4EDj:
U∩bJ~$tIyUhh!→T⎇4Tλbe¬*8tdXQ)D%E~∪β@!33uHY(⊃β
:
⊂J!QB4q*KS(⊃h~u
∀E⊃"B1
λH⊃K~q1pK~λε⊗#Pij∀)
nBE∧Sek"dH#⊗∀)
FA∧`Q" R,1¬
SOJG↓)(Y→⊃1#"p4∀∪≠∨Y~A1!%'∂1⊗~∀∪)%'(A1 110D~∃*∩$s≥λ↓≠A∪→_@y!¬∂∪≥∞4b|U⊃%'∂≠∃→(~∀4⊃∪
≤↓λb`Tq!β∂∪9∞Zb|104*d"bFE;P4*"~(&6>4jMαR h(&B-~")ααb2∩bD
,$%]~⊗Qα-↓αb∞"α"ε∞ZαBε≡-→α↑&$B>VQ∧B&N⊗8h*t%\*:↓αL29α⊃↓)rB:&*≥i x4(hQn~εdbMαRE∩>F≡@h(1n2%BbaE∧b∩bbCH4(4SZ~ε2e→α&8hP4*2%BbaEPJ6>Z*αRQ2Zj22∩
!-E1c
t%nLr&Qα
">&R∩2∃αzα*9∧J:∩⊗@h(&6⎇2⊗5α%!22∩
>λ∀PJ6>Z,IαRQdb2∩ε H%n∞∀*εR∃∧
R>6$
2∃∧
JJεHh(&6⎇2N%α
aQAAβ↓@4(MαVN"RαA26\bNεHhP&BV≤AαA2λH%nN
2∃αN
⊃α>→∧
R>5m"ε
2*αεJJ
Iα~>∩α≡
α¬∩>R⊗≥"&>8hP&"J∃R5α db∩εN
⊂$%n≤
Z∃α"∩J⊗≥→α>→¬~εH4PJBVNDQαA2d"2JNH%n2|~.%1∧
:⊃α≤*QαVααεJJ
IαB>LrR⊗J_h(&N-"iαR"`$%n,rRJeβ↓α&9∧
R>6$
2∃∧JMα~⎇⊃α:&`h(&N-"j5α∧b∩εB%⊂4(&lzZ⊗%¬"Q22$2⊗JHHIn&:M!αε∩%∩⊗NM∧2>Iα¬∩⊗6ε%*J∃α,z_4(Lj>Z⊗jαRQ2d"⊗>~Ph(&N\JB∃α2b2∩R,j@$%\J→α2%"⊗6A∧JMα:|q6:&baα&Q∧JMαRD)αNε4*⊃α%|yα
V42⊗Iα∧z&*R-⊂4(%∧RJNQ∧b∩bbCH4(εU~AαQdb∩≡R;λ$%n<*Qα~M∩NQα<zJ⊃α|1α~&d(4(&%∩iαR"aD$%\~>6B
"&
&dJReα≥∩>∞,hP&∞εl)αRQeZN&b∀JQαqT2εN1Ubt%NM!α
⊗%"⊗Iα∀)αR"M→αZεe*∃∧4PIα*Nαα⊃22$2⊗JHhR2∩bEAeh&U~AαQdb∩≡R< $%n<*QαZ-∩N&>rα>→αdJNAα4J2∃α<
Mαε≥~⊗6
d*⊃α&ph(&b⎇⊃αRQdb∩~:k⊂4(&lzZ⊗5¬"Q22$1J∩@HIn*>rjj⊗Jzα&~→¬2⊗JNLz:Mα$J~~⊗∀*:P4PJ6>Z*αεIEeYAAA!↓A12d"
fR≥h%n&tJQαJ,b>∞ε$J>)α∃JR⊗M¬α>&:$*H4(M~⊗Rjjα2∩"dz4(LBJJi¬⊃2αZ∃α>J≤hR"M⊃β A⊂&lzZ∃α%!22∩¬∩2M"αH4*"~!↓EA JR2:*αRQ1↓AAAH%nN\JAαVtb⊗NM∧b>ε∩Lr≥α&u"=α"M~⊗≤4TBM⊃↓↓⊂%αE∩Jiα⊂b"
B⎇∩≤4(LBJJ5¬⊃22∩|2NP$KZ&*&$Jε2&T)α2>!α>~5~⊗P4PJ*JN"α2∩ε∃→@$%]⊃α"ε~αε∩∩∀*NMα$yα2>!α:⊗E!α↑>∀!α&:$x4(1n2%B""4 D%Dλ→2∧dK ∧[
HEDD4∧H H⊗∩∩f4⊂ε",∩%ZFEβE)ja∃*&∧i∪h¬TINE TO SET UP PAGES FOR XCT HACK (FON-PAGIN@∞XA→∪1λ↓_
V6∀*Iα≡2αN2>%→$4
L2∃αB:&*≥eX4)@4εna~∃λ∩λ~h∪U)XQ0@⊂∪c⊂+gT )P∀eP!&∪βCCC IF <8) DESIRED.
¬
LDXHHK: HRRMS (P) ;THIS ENTRY USES THE HISEG
LDXHAK: SKIPE LDXSIZ ;MAYBE WE NEED TO SETUP PAGES FOR XCT HACKERY
@OPJ @, ;IF NOT, JUST EPIT
↓JUMPLE TT,LDXERR
CAIG TT10 ;IF !@A∨$A1'&X↓≠+→)%!→2A 2@b`Hh\
∀$A→'⊂↓)(XbH~∀&"∩%ααJBe∧_z4MRT⊃∪@:Su3HD∃0λ
Ih⊂(
@d#f"H'*fa⊃i⊂'cλ( cbTFE∧`S" P*∃⊗( cSiaFEαj NE TT,-1
JRST↓→ 1I$∩∧∪A+'A→1 I)P~∀&lzP∀(⊃β¬λT∧ ∀BDXGET ECTIHβ)∃λA≥,j
εI∧z→α∩Lr.L4PJ6.Z,iα⊃∩d"bN&PH%nN
2∃αε~αN&J*α6→αD~Qαε∀*∧4λLj>@4YP∧"dHK¬≤k⊃⊃∪@83∀sd Q11∧
⊂⊂5∧
P3∃(T⊂εdg∃iP⊂FB∧igiH&",)SXBE∧Sek"P∃*⊗ +⊂(#i#BDYai⊃`j"P∃+cP T `iP∩dε BPS THAT BIG:
α HRRR T,TT 9 THE FIRST FOR THE XCTS TO POIJT TM(
ADD TT,D 8εA)⊃∀A'π=≥⊃α$yαJ⊗α:Dm∀T
DD(⊃R**uλ⊃J)s#"A→∀Sλ
E∃∃β!↓33uHT∀K
¬ εE∧U"P∀⊗_FEαP ∩L T →⊃ !∨%∞4⊂∪≠∨Y∩Aλαb2∩b∀bP$%]~εJ∃∧∩2Qα∧z& 5HZ"∧∀z ¬∀-8Iu∀LhqPPMIIdb¬%F⊂HK8¬4i→Qh∩ ~q1c∧λ⊃s@∪U⊂* eQP)baSdεD ARAA FROM LMSEG
λ ADD TT,D ;AD@ IN FOR SECOND AREA
JSP T,FXCONS ;NES VALUE FMR BPORG
PUSH P,A
TLNN R,1
↓ LSH D,1
MORE TT,D
PUCHJ P,LGPS@C 3NOTεA)%dA)≡A≥(A¬∃# ⊗&∀*⊃α∞⎇∩∀4(LRV6B*αRQ∩4
N":β↓PPLYzd*¬%ES
E¬⊃PPMIIdr¬%F⊂hPα(∩J*uλ∪λK∩∩daQ@33jHαP"⊗
!(λP) 3GO@¬¬→
↓'π∨9λAβ%∃αA∨+PA∨A!∪'∞4∀∪β ⊂AλI⊃ !∨%∞4∀∪)→9≤AλX4b~∧∩↓∃%'(αα2∩bDYH$*d"b"-α↔ M≤XK$j∧HK¬≤M!⊃∪LD~hTr≥D
$,IK∩¬<y`λλ_U⊃4Dλ3∪β!!2TTjD⊃P4iITβ"AQS⊃⊗ lNB)YuQ3$λ ∩⊂J tQc!!4u0I∀⊃!Q@∧a`ScP"ε∩!("g⊃∧D]fPlP'"Qb⊂"'H"h*"S ∧ HISEG
JRST DDXHK3
MOVEM D,H@PEND
SA¬ HRLZI D,(D)~∃MαJβπ=%
Aλ0~∃'α⊂∪π∨%∀dAλX4∀∩A∃I'(A→⊃1⊃⊗@λh*2∩DB-MhMα>AααbR
B⎇∩≤$¬\:&J∃∧∩B>J8∧∧d
t
dEXQPPLYzd*¬EID%D)J@HK8εQ*)h∪u*D⊂Su ∧⊂4Q(~c"B)YuQ(
J ⊂∃H*⊃tQaQ@∧d)∪⊂*⊗*βE∧ibU-&P∀∃∀FE∧Pb"$P∃⊗_FEαa&*⊂∃⊗⊗X@(TT)
TDNN R,1
JRST LDXHK *4⊂∪≠∨Y&A(Y1 1¬→P∩∩g<B⊗)ααZ4Ltt ∧M≤XuB∧tXXB∧dλUE%(⊃PPLYzd*¬JADD∃ z$8Hα.hλ&*⊂*∪P-"i∪β GUT SECON@λAβIα4PJα2Q¬!15EE"Q$Q)D%D 2SPLλ*%@$∃∪λK⊂S∃↓⊃,p bU⊂*h⊂∪","$Q⊂+dj∩⊂*$"H c#⊃i"g!QFA∧d∪))⊂*∃⊗"",⊂αLT 8εA¬Q+≤↓)⊃
A=%∪∂∪9&A>2αεJ⊗λ↓Eαεt 4(~:Tα¬EJE Jh8T*∧β⊃∀
(mC"A→∀TS$
∪⊃λ⊂1B!↔h⊂4HX(λ TO MAKE INSPALLIH
∞A∃→)%∪∃&AβM∪$~(∪!∨!$A
"αaD4λLRJNQ¬"JV∀hRt$¬\*0∀λ∩1HT∀⊂1i→β#FEβ≥`DXHAK LDXFLC LDXIRL LDR@_A1 β¬&↓→∩ε∃→EαHH∀*lλ∪λHR3@⊂∪ ∧BIN1 @→ ∪⊂→I∧b∩RR∀`4(Q*5,∃JIB¬∧_y∀`(βR⊂+⊂i$`a∪ ¬ NUMBE@$αα0≤2λε⊂jD∀⊂1hZhε⊂"⊗dεAMI@πβ→→dAβ→→=∞εR, 4*&4qαBε<J0∀GRBSEG ;GEP ONE SEGMENT OF DYPA @%¬≥↓∂~4∀∩A∃I'(A→⊃1∪%_$∩w%1β'
↓∪⊂~R-∩JVB%→αε: α≡&Z*α:>9m~.&A¬∩⊗@%X∧SAQ@∧jg∪'aedCEh*Td%⊂(#i!(∀cDD]Qbj⊂'S ¬ @URE CEGMENT INTO AC T
POP FXP,AR1
LSH T,SEGLOG ;MAKE PERE SEGMENT IJTO ADDRESS
HRRZM T,LDXPS@(TT) ;REMEMBER PURE SEGMENT ADDRESS
HRLI T,(T) ;BUILD A BLT POINTER TO ZERO PURE @!¶
~∀%⊃%%5$AλY'∃∂'∪44bQ(R$w⊂∩ε≥!α2>~αR=αT*J<4PJN⊗RTi↓"QHH%nj-∩5α~M∩NQαdz4(L
∩∩∀
BcλQ!∀∀eD
BbDE⊃⊂K\→hB∧ID¬$DT
$-≥AQ LE)K$J¬EID%Dxj2E%E⊃∪L∃Y→D"∧)JB¬∧y→e$-$
Dj∧9HT
∩ hU*∧→Z¬-∀T
4,8Q!∀E∃)∀¬"dHK∧l556∩E%E⊃PPM8ZETj HED|j5¬%"⊃Q L∀JD¬"e8Xu≤M%P%
∃
"'_q⊃0*$∃∩⊃$
r∪sλT∀q1iX3Uβ!!33uII(∃β H∩∀rε∃l".ij30Q*$∪qHλYU∀R(Zh∩3D
⊂0SλQ"B2)Z3∩(
E∪⊃⊗∧XU""'9α`ebH$g*'H'"c`U$k"P∀ ¬RCENTAGE
↓PUSH FXP,TT
IDIVI T100.
POP FXP,TT
MOVEM T$LDXLPC ;AND THE COUNT
↓MOV@
A(1→ 1→A_∩∩wI∪≠ $A→=εA∂↓→β'(↓!β∂
↓+'λ4∀∪≠∨Y~A PY→ 11!_∩∩m'β-
↓)⊃β&↓!β∂
↓→∨πβQ∪∨8hP&*Vmα∃αQdb∩b~d_$%nα:Dm∀T ∀b¬ y∀u$Z ∧d|4 ∀2∧it¬¬∀X¬R)ZαiP)Qcbbg∃)FE∧R)&&@ TT$(T) ↓;LINK INTO LIST
AOS (P!
POPJ P _~)→ 1
1αt&lzR,T
E"dHK¬∧uAQ Lz4αEαα#"A~∪t∩D
λεεE∪",$i∪≥∧jg∪'aedCE POP FHP,AR1
λ POPJ P,
λX
αw∃_
" _db¬λ_tL@Qc"AQTq0JJ⊃α3(→3H⊃H~pε'`Q⊂"'gT∧¬∀~(rvvA→%∨~AQ⊃∪&AA≠∪≥(↓_∞)1¬*:R&bα¬α~
"ε!α-∩J>I∧zε∞Vα*2∧⎇$ Dl≤~I∀l@H∪⊃λh3Q ~h∀Q(_p∧"bεA≥]Nβ THESE ACAP≠+1β)∨%LAβ%
↓ ⊗∩L~εR⊗ ∧¬$zλI∧*∧iyDd⎇y→d:¬λ¬4J tq4g! NngD`iλBa,j"H(#dg∃ i⊂#∪i⊂#bU* g#H)jaaQiidk⊃P)"f∪a`j$SβHA%JB-1Q#@7nb4A_3pRI@⊂('dS*"a FOR PUPTING WORDS INTO BIL¬β%2↓!%∨∂Iβ∩A≥αε∞∀hQ`≠[1_`Lx)$`$⊂∧g"⊃l⊂#'T⊂ aaQiidg⊃P+gi⊃)P#)∪d¬ INPUT BUFFER ARRAY
∀~)→↓%0pλ&"∃∩%αR ¬D∧dIxe≥⊃↔5@:Q3∪h`j a∪ P ↔OR@]
L@ABS8∧∪≠∨Y⊂∃ααJBbE%⊃⊂K]8_%≤\JZD*¬yz$%@ εE&⊃ a)XNα AOBJN B1→∩
Lp$%@9*Tmα _b¬∀yyR∧dXjB∧|d
tD
D
t*∧z(∀∧∀XAPTdH_%≠β!Q#αA→TmQ(∃
E⊂ε"(∀&)T(
DXFOR D1@XA-~QαB
~MαHJ¬∀e4 ∀`$∃∃⊂∃'P&"⊃h∧S@ 4⊂λ&B-~")αα¬Dd∧zJ5@ ¬∧h∃i`%⊂∀⊗ DRSPT
L@BIN8∧∪'↔%!∃αLrR
28H%nndzε⊃α∀J0∀
+∀¬,@tQ⊂
'i⊂)Sd¬E OTHEB↓≠'ε%:~(JαBVNDQαAIHE%∃α2"!↔qr5HT⊂(∀ @dπR IL¬)∃∩VBQ∧ α∞λ→d8(∩3D ⊂∧c"CE TLL¬≤AβHbP⊃]8εβββ↓Q J∧αTTjD⊂ε"!∩dε2 8π⊂≡Vα@`8H⊂ "S'a`j∩dπ@≤A 3 ∩⊗α4αj∧β0
iU⊂#bjλ&gi"CE&"!∩dε1: JSP T,LDGTTπλ∩∩m∂(A]_∞J⊃∧2J>T ∀`*∃0
1$f"FBα ILD@∧A(Y¬$b$KZ≡⊗Q∧~0≥∃(Z5∧|βQ∩)@ π @%∃→∨πβQ∪⊂≡dλ%M⊃#"A→Tpλ⊂⊃⊗ &"∃*!&∀∃∀@ ;ZA& ∧¬$3∪∀d
4h∃iλαi"P∃'P#gCE
LDBINHpλ&*≥↓αQIHD=∃qα!↔qq5∧
pπi"λ'c⊂)⊃d∧@∨π¬)∪∨≤αα∃MHZ0hPα33j@ ¬M TT,@→ 3 ∩LhP&Ny(∩∧
&⊂ Hα!$gD@ ;IL¬∪(A 3 ∩∃¬α6&:αHU∩∧→hB∧≤βh⊃hZα⊂" U P ↔OR@
λ¬→ )Q
1hLb∩ε
_H%m↓β↓↓αε∃~0≤@∃0
"CE LDR@_∩$p
↓↓λ∧α¬∀YIt85⊂0IHα@
L@ '∧_$%@4∧β∩αλ∧tλXp∧`fβE LDPRC 8ε@@FA!+∀J~&ε∀b∃α∞b0 (αB3λJ05α!↔hλ
∧∧∀53jHαb⊂ U'`
H #1&∩%X∧αβ*∧
∃,@u⊃1∧ ⊂∧ijβE LDGH ∧∩$p
↓↓αdα∧pε'a⊂d∧S@34A!β)
⊂⊂∀!→D$q0
∧B]P⊂≠H⊂#bjλ ∧DT↓'3≠¬=_A!βQ∞ 4PJ2$~(T0Hα.`⊂X⊂⊂ T) lP∀ ¬FEREH
π
4⊂λ&2$2⊗JHHI`~β⊗⊂λ∧
3Q4hXβ"B)Hα j&BDX 12 ATLπ⊂⊗R∩2*λYe%∃α#"A→α""g∃∧@ ; 13 ENTRY PO@∪≥PA∪≥
<~∀&d"2>HI`~β⊗@λ∧ ⊂πaP∃'P g∪βP ↓HA!2~∀4!→D%¬X¬α!↔hλ ~H⊂( ∃T @ (↓'3≠¬=_∩(Lb∩-h→@HKαh&@⊂⊂"k⊂d*`j⊃P
@+9∂β¬1
~(Lb∩
⊗t $%Mβ P~αλYd"∧xd∧)3P4K⊃ @↓Gq⊃⊃jJtλ∪λHβiP⊂A LDGS0H LDGSP1↓→↓∂'@fA2$:NAU∧b∩=8∧
∧ ⊃⊃tjεA"C!πnn` Ip1⊃*$⊃q5∧
t⊂0hT∀Su*I3Q+D∧∀∃5
4∀ss(T⊃∩4jH3Pq$λQ0
+Qbg⊂!∀'i#@ AJD BPAND.
0⊗VlA$A≠U'(A¬∀A'(ααVAαbJεε%I9↓α4zIα⊃↓1αR ∧∧m
:@λ λ5Q( H∀⊂ &∀WεE≥Nβ; DHE @→→(A⊃β1A∂↓$A∪&↓β ¬
)βλAQ~A%→→βπλααR"∃¬~Bε∞*α6
RJ2,EaPPH)HD=%8∧∞AQR∀i∧ε, α*I⊃Q(
J,εελλ∧B]ad"PβK IF L@∨β⊃∪∃∞A%_
R=∧B&N⊗8h""M ↓EA⊂Jα*JN ∧∧d∧z:β_H↔9∀2¬9uB∧
λ∧⊂)Hα⊂ ∀HAT
MKVE TT$@V@¬!≥⊂∩∩g≤*∃α_d∧,@Su1i∧∀SsiT⊂ε"c∃⊂*'P⊃i a MH∂%
4⊂∪'λA)(Y↓(
B⎇∩≤4(M~V
%¬"Q1Eβ$%nα(∀d∧yYEJ∧9 u≤,d
∃,hI∃%HQ!∀U,Zλt*¬J@ H⊃ttε⊃,¬`→ES ~A≥~A∂%¬∧A∪(4⊂∪'βY
A¬$bAλααIα_hP&&>4*%αR ¬C"Uλ_u≤M!↔4<-D Tuα(⊂IIprtd qH⊂J
c"SλHβiP⊂A8 MOVEI @)PYπβ≠9(∩(MαVNαRαA2≡%~B
DhP&*Vmα1αR b2α≡≠α $!→TmQ(∃
E⊃p3)Jβ"B(`dc@ TT$1⊂0λ
(Jα*JN ∧∧4
9Idλh!→T⎇Q2(
J $ε↓ ¬∧e∀)j⊂&⊃ πS !∧~∀4Tb∩=4∧∩π↓4Tu
(Vλ⊃D
H⊃λ~L#"IH⊃ttε↔@∧fgUαAI TT, R$~∀&"∩%ααJBe∧_z4MPα".jJT∧P*∪β GOBBLE <PAGSIX8
∀%∞ε6d)αRQdαP∀∃λYd K4
tm∀J5B∧∃Z@λ →β⊂ g⊗P!`iQFA∧P∪ek"P∃*⊂@V@¬!≥⊂∩vA≥<A≠∨%∀A)↓β8A¬∪=→⊃α∃α⊗ 4AQ LU:∧¬"di≠βλβ"B)Yβk"fH V+!∀'i#FB∧fgk⊃dP ∀T,(R)
λ SUB TT,@T¬¬!∨I∞~∀∪!%→∩AHXQ)($∩∩g∪9∪ Aβ=
*9¬α6&:$*Iα&p∧¬⊂h!~∧⎇∧$
α`h!Q$L4T
∧<→hr[c∃XCβeK0hTHHu≥β7!∀l⎇hT¬%"Iλ%∧,hAPPM:X$J¬JABE∩⊃⊃∪@8∪h∪Izλ∪1*(q(∃ 4h∃i~⊂∧⊂#∪d∧LOWIH
∞AM+¬∩Bαα6ε@_(R¬∪d¬mf@Xπ0 4⊂∪' ∩A)(αaEA@HI`≥∀→hDlLK∀∧Dz8T`$∀50)J∩5⊗!Q@∧e*Sh#bP∃*⊂LDGSP&
λ∧∪≠∨Y
A)(αb"
B,r⊂$!_∀$⊂∧P*∃⊗~∃(⊂cidmβE TLL¬∃ααJBbk⊃Q J∧β3uJ9(⊂
*∀
EMLπ% %Hh ⊂L_HDJ¬J@
λ1tr+⊗XFEα`g"!SdP ∀T,#PAGMS@⊗∩lU≥∨((A'β≠∀Aβ&@↓β⊂~∩JαRQ∩∧
≡ -90λ∧∧((#!∧fgk⊃P*⊗*∃∧@
SUBI T,1~∀%∞ε68∧¬"dλ*∧,@Qβ"A∀⊂¬))U⊂ DGSP4
SA% HRLZI T, ⊃(αH4*Nλ∧PL≤z(R¬"ββ"J8)α0i@i"Q T,
JRST @
β'1→ε~∀%≠↔-
↓β$eα10
∩bjZBVIbbFJεt">&thP&ε>~α 2"∃α⊗*⊂hP&6>4*%α
bB↓$Q!∃≥,)∀∧
@
⊃∃¬⊃"B3
9⊂h⊂EE4q1iIqc"A→∀S∩$λK
⊂e⊃"S⊃λzt
.A→3uQ)T⊂4DH∃∀qαλ%!"B*85⊗S$λptu¬λJ#"A_3pRID⊂K∪λHtp
!QS⊃⊃j:
∞B)YuQ3$
∃∩λ*⊃3Q↓QB4sj4⊂⊂TλYQβ"IH⊃ttεgB33jH(⊃∃¬I⊂T⊃)hβ"B)YuQ3$
∃∩λ*⊃tQaQ@4u()(∀@⊗∃*εE∧R)&$P∀⊗∀**
FA∧h∪h!⊂(εE.DB]bg"λ'c⊂$Q P$c⊃P( cRe#U@<1)D10>
;LDSPC LDSPC1 LDQAT LDQATX LDQAT1LDQAT2
SUBTTL SPEAIAL VALUE CELL AND QUOTED ATOM REFERENCES
LDSPC:↓MOVA TTT ;[SPECIAL]
HLR TT,@LDAPTR ;GET ADDRECS OF SPECIAL CELL
α TRNE TT,777000 ;SAS SUCH AN ADDRECS REALLY THERE?
JRST LDABS 9YES, WIN
TRNE TT,4 ;NO( IF THIS ATOM ISN'T A SYMBOL
JSP D,LDFERR ; THEN LOSE!!!
HRRZ TT,T ;IS THERE AN ATOM THERE AT ALL
HRRZ A,@LDAPTR
SKIPN D,A
JSP D,LDFERR ;NO, LOSE
HLRZ B,(A)
HRRZ A,(B)
CAIE A,SUNBOUND
JRST LDSPC1
PUSH P,D ;NONE THERE - MUST MAKE ONE
MOVEI B,QUNBOUND
↓JSP TT,MAKVC ;@%∃)+%≤↓'2dAA∨∪≥)∃$A∪≤↓∩∃→⊃'!εbh∪⊃→%hA)(X!∧R$KZ≡⊗Q¬~f6
|aα~29α
&%_4(ε%∩0~¬JEE≥Jh84u@∀pW∪h!D]S bb"Q⊗a,VPgf`$S"b⊗aSb"V⊂∪h∧HER T@AN CALL
TRL¬≤A PY'2]A+$∩∩m+β&AYβ⊃+
↓π→_↓!+%
|~∀%∧BJ25¬"Q1"⊂H$%Nty1αRD*0∩∧XZ5"¬
)u$,8¬
@ f*bH!bf&βEfgU ¬ @)PY(∩∩m'β-
↓β %∃'&A∨_A-β→U
Aπ1_~(LBJ25∧ 2α2$
BRHHI`~∧α3@⊂⊂j'fj⊂a&"FB∧d))λ**⊗ BD]`jλ& ijλ+bP+ReαE∧R))j∪" a)CEαE&⊃(`j≥αfgk"H"∩ &⊃ h*)αD]`≠QUOTED ATOM]
TRNE D,-1 8π ∨≤α:Qα"~-αεuJR"&t9α~>∩α0∀LAQ J¬IId*∧EFs+≠∧εHK8[∧Mλ∩1D
t⊃0i_3λ ZH⊂v)T⊂S∩dλ3∀Q(_⊗(∩λ_p¬bbβE JRST↓→↓#βQ0~(M"2>→∧!1D∧KZ⊗ %8T¬%-)`λ @dε @%∃
β%9π
A¬%(~(Jα6 =hYR∧αβ⊂∪λH4⊃∀AQ@∧j&∪α@
Aλ0hλ$%\J→α~|q6Nfl∩61D
DD3H∪(≠0Q(λxt⊂ 'U a`∀↓∪ ~∀$A∃%'PA→ #¬(b4λ∧∩Aπ¬∪∂
A∧Y∪≤@51→>u*44!∀α∧≤→_⊂hPα(λ∧ TTu∧ ⊃∀0*F@εE∧T*id%λ(⊂SAT¬0f~(∪!+≤AαAH~#λhαB4
Zp∧%⊂∀⊗∩caT)'FEαh*`∪HJ P,LDRS@!P~∀&∧zAαAd
IDQ!∃¬-9 "¬αβ∀TjKc"A→∀TR$λα⊂(A)
∃→⊃#β(dβP& ,zhTj∧EH∧d⊂4∃
!α@
JRST LDQATX
~∀4⊂λ1nHJ∀e~ HE@∀h P∪ ∧QLS1 @→ E→&dA1 #→&TA→ #1&`⊃αd"F %λ∧Sd ⊃∀4
&λ∪⊃
~∀L ⊂∪ ∧GPRLε~∧~)' ⊗
%"0&F,zR,D DM≥D
$,4X∧Q)@!b`∪
λ∧⊂∀)HE@∀h
∧SdπV@'$A⊃F⊂!⊃,¬`≠QUH∂)⊂A→&≥"t4!~4\M D∧d∀⊂ &∀T(∀DB]a`g h∧ COUH
(A=_ αεuJR"→hr∧Ld
¬-∀QQ J∧β3uJ9(⊃⊗D@ ;↓
%
↓' ∩z(∀<*λ∧∀I@h∧ECTIH
∞A¬_
fRDJ0∀c"B*
4r∩D
λε&"∪$i`∀ ;GOB@¬→
AU AαA1∪'(~(∪⊂⊗>4*5αR ¬BE∩⊃⊃∪@:∃0
Tπ⊂≡J ∧∧L@H⊂T
1 B2J:λ⊂
,L@ ∂)]λ∩αw≥ ⊃αD
N!α\*eα~⎇⊃α2~:@hPα5∪⊂ V⊗LF@
SKIPE T¬≡∞α
$`1 B( *Tp
L@ #→Lh∩(MαVN∧λeEαβ⊃β!↓4⊂
iR⊂# _P,AR1
λ∧∪)→hAαXZD~∀&≤Z&B∃∧!2RPhP%α
∃~QαHJ∀e≠1Q M¬X9α¬αH⊃P@MλZ4B∧i
αe⊂α"(∧∧∞p l∩)`λ ↓GCLA
CYXAβ+GπI∧∧6}εT⊃P@MλZ4B∧i
αd⊂⊃∀ααβ8=rπ≡T ε∞λ_Y.Nα2y≤βave all Our s@QCiJ~(∪!+≤Aα5λ∧λ~L""$∧λλ
c≤αh∂ZAβ##∃β4∧W-βqt`/us u@MKdAGα{∪∃∧hP&BVα9∧R¬¬J5DE9↓Q@∧h'T⊂# _P,AR1
λ∧∪!∨@A¬ "α¬D0HαB4 @h⊂#,∀⊗)εEαh#h⊂∀⊗ FE∪ ∧QLS3:∪'-∪!9¬10∃¬X∧Q!⊃,¬`∪KIP FOR P@+I
A"~.⊗JHh ⊂J *%≥λ∪⊃
→α)P⊃
λ∧∪!-~!α~β
αd⊃↔5≤
hT∧D
9λ 84#"A~∃0 dλ(⊂A ;SAVE @→∪M(⊂∀!→TmSR(
E""'h∧@⊃∪LA≠β9&A*-~QαIyt]4β"A~∃0 d∩⊂(⊗&⊃ πP@%<~∀&∧zAαAd⊂4(~ uα∧hε∀¬Hβ"B)*30∪Dλ+∪⊃
→α)P∩ ;@∨≤αα≡∞Bα)r∧d~:Bb¬9t¬-≤T ∃ hαB3)zβ"P K!αE∧T*id%λ(∩(*T!gh,BDXNOT GN↓∂π!∀yα2ε≥!1αNzαBVJ≤zBeαM 4*2%
2MEPJ6 =hY∩¬"F⊃⊂K]I ∃~∧β10)@)P ⊂RLπ ∩⊗≥!α>I∧Bε*⊃∧∩ε∞4λ4`:⊗#"A~∃0 d∩⊂(⊗&⊃ πP@%<∩∩g¬∩6@$X:B∧d~:B∧∃)yR∧∀X∧ShdgjiH!aPFB&"(f∀Y→∧h∪h⊂#,∀⊗ iλCE POP F@1@Yλ~∃1 #→&Tp∪∃+5!αAλαb2α⊗4aP_Hα.s(≠0Q(
I⊂4h I4q⊂⊃ebiP∩dεTO AP@∨≠Qβ¬→
4⊂λ&"∃∩5α¬bBI$∧KZNεZ*αε∩∩∀*NMα|1α2ε≥!↓"↑DJ≤B X∃HhαB2J*uλ∪λH0Tl!⊃,¬P!⊃P"$c⊃ i"g∃⊂#'kJP! aRP NTM WORDλ
(hR2∩Fe→QhεU~AαQdb∩F2¬∩<4(LRJNQ∧b∩F2≠(4(Q)D%J
${PQ!∀→D∧
d→`¬[⊃∪sJY".rJZuλ⊃+ 5λ∩(d⊂3U)Q B(λ`df"H V$g∃l$$SαUM-⊃
∩@↓∃%'(α↓1-HhP%↓↓∧RJNQαBQ$∀PJ"JJRα↓22$*P∃¬)qPPL*YU∧
λ!Dd∀4∀F⊃ ¬&"∀h)_≥αd&)-λ**⊗∀⊂∀@
@πβ∪≤αα¬"R h %αU∩NA↓E!$$¬\RVNQ∧*b&Q∧J→αεe∩⊗ε∩JαR"⊗∀(4(→
%∃Rλ%BD∩⊃Q LUYZ∧r∧%ID%
↓QS⊃∀*
L.B)
TVHλ%∪⊃⊃*@()'DB]caVT)'j"Ph∧ HAPPENS BQ PUSHING GNTLεAαA1∪'(~(∪!+≤B)αAd~6 51Q LlzhTj∧∃ID$5P∀IQ"B2J*uλ (`iεEβE&"#T)']∧Tedh"H!a`)PiD]T)'j"PβPλAπ=≠)⊃%→≥α|qαRα*α≡∞Bα8∃⊂H!∀∧U∃:@αdpt∀Iq"B4
Zr∩H
¬ Qpj
Sb"'h∧@E LOOKUP CAUSES TH@
AπIβ)∪=_A∨↓αA
\Aβ%%¬2~∀∪)%'(A1 %'↓P∩∩wπ<A/
A!β%
AQ≡A%M)∨%
↓!)%&↓β
)I(∞εJ%_4(Q c\HJ¬∀~ HE¬∀6⊂λ
Pr⊂)4⊃⊃∀
(lH∪λJ∀Pld ⊃∀∀H6α⊂&"∀)!RP∪ ( ∩C4∧A A%εn~(~∃' ))λ∪A+%∪
%β¬→
↓∞ε2`h $)HE¬∀4εB)Yβk"P⊃⊗ &"⊂h*)∧B]m`⊂URIFIABLE CAH 2hh &R∀r1α⊃biD$↔9U-≥D ∧
Q(∪I@dε-NIL ATOM TO @πβ→_4⊂λ%αU~Aα⊃db∩4X∧TAQ@∧j&∪α@
AλαaP≠mlε↓ ¬∧P∩))b L@ !∀→D$↔9%,M∧ ∀2∧~Itj∧α⊂4d
t⊃0i_3λ⊂hYα
P@→≥∀A@10h %αU~Aα⊃db∩4X∧TA⊃,¬f'TbP$cλ'*fa⊃i
TL@≡A⊂Xbα∩$p∞⊗2≤)αRVα)b∧|βH∀HXQ0 "SαCE BIT
MH∂-4A@2∧b∩εB%⊂4(→ E∃Rλ@¬λλ∧DDNβFEDCH SI2 DATA
∪⊃1_A(X!(R
∀%)→∞APY'2]
β∀α∩m∨⊂~2Jαε∞eD∧t⎇D u$~∀⊃PPMIIdr¬EJ5Ju
Z HK9ydeJ _b∧LX
U∀(Q!∩∧DIIR¬"E
BHh)HE¬∀6⊂∞A→∀T@
J ⊃α!↔t⊃5∧λ1⊃∀HZth∪hd⊂5∪iT∩3@λ_3∪β!!4rr*λq(∃¬I⊃∀∀IJh⊂
!↔trr*∧⊃StD
∃0R(k23Qd ⊂0rhZV#"A∀∩TTjD∪⊃⊂(
b".izα$"i∃dibP∃bSi"H"#g"CEj&∪'⊂",200 @`∩∩wM↔∪ A→∨$A⊃
(A' U
~∀$A' hA(X∩$p∞⊗2≤)α∩t u∀$→h∃∃Jλ9T
≤↓Q M¬X∧r $∀∀
(r⊂2a⊃,jJE$∀s0*9λ(
E%A"B$ TTu∧ ⊃⊂0J6!"B)YuQ2$λ+
∀E⊃ .sIzλ∀s(~r⊃1∧¬(⊂si@)P'g∃'P(*T"P&$TjεE∧Sek"P⊂⊗&"(∀&)T(
FA∧h∃id%⊂∀⊗!gg∀FE∧fSi"fP⊂V&"(∀&)T(
FE∧e∀)j⊂&⊃ a)XCEαE≥N]P)'Uj g"H*#P!S'a!"T⊂ P!Pf"⊂$S*'P!∀)P POSSIBLY DOIJG XCP HACK&
;;; SKIPS OJ *** FAILURE *** TM CLO@BER8~∀fVl∪(A≥=_ 6j-∩5↓urαRJE¬Bε@" λ∀≤[4 u$DX*tM≤T u∀$→h∃∃Jλ9T
≤¬aPS[71∃%" λ∃~¬X¬3d 3Tu
*0q∩)@e⊂ ∀O HACK. α;;8ε∪$A!β&Aβ⊃ %≥→αR≥¬αVAα-*5α→jDj@@εE≥Nβ; MUSP @RESEBVE AR⊃, R, F.
IFA @!¬∂∪≥∞104)]2⊗JNLz1α~⎇⊃α:>pjBε≡Lr≥α≡tbe1αt*P≤-$
d-∃9→tb¬8Z¬∧⎇*J2∧-λHTd∧_)D*∧h¬3((4H∪hd∀q1iX3U∀aQT∀Piλ2jB)*34⊃$
∪⊃
Pi"!↔uλ⊗HZSh∂'d∪tQ →P4V$
s04i↓ ¬∧fSi"P***∧DNβSAVE CALL IN T
↓IDIR @)PY→ 1M~b∩∩mπ⊂≡6α
U$
λ∃≤Bλ9t$(⊃Sj$⊂p3 A ¬∧fSi'&@⊃⊗""*⊃dh∧DNβSAVE NEGATIVE THE@%∃_∞_4PJ"2JRαRQIHED∀JAP@L_HB∧ ∃∃↓⊃,p1λJQ0 iH* ∂ BEG@∪≤ααN⊗ε∀~ $!_4Ld
BbDE⊃⊂K]xT∧l
α(∃i→β⊂$fSbb$`U f,FBα JRSP LDPRC .4⊂∪'↔%!≤@Q⊂R~(Jα*JN ∧∧d∀⊂ !Mαλ
(L
∩"λ¬∃¬I⊃⊗∀iV ".hYα)bP∪`ebP∃h⊂ gλ ga%∪α POILTEB
λ S@+ ∩A)(αa5E" ¬⊂HKαh⊂)Hα⊂ ∪EARCH↓
∨$A5β ∩∞DJ0∀h⊂p)Iβ"B)Yβk'$H**⊗∀∃*⊂
HRL D,TT
λLDPR@εd`(L~ε&9¬!1"⊃Hh %αU∩N@" HE¬∀4¬b!↔qSu)Hα⊂&`U!`λING CALL ∀∪M↔∪!≤α↓"↓⊃Q J∧**5"∧HJ¬∀≠a⊃∪@8Su3HD⊃34
K(⊂s ZαεE∧Pea%'λ"⊂LDPRC $4⊂∪⊃¬10 α⊃db∩R⊗m$%Nαz$
¬λXB∧|hd¬$DTλTdλ∪qD
⊂∧"P⊗!j⊂ T ¬A
HDR D,@→ a
2PHI`~αβ(∪(→q(∃*∧⊃Q5dλ3pRI@⊂('dSαTEB
λLDPR@εft∪
β≠≤APXQλR$∩w'
≠⊂~⊃∧~0≥¬∀ t2¬IλR∧dβst↓Q@∧P%∀)j⊂&⊃()![BDXFOUH
λA5β ∩∞DJ0∀h⊂p)Iβ"B*9p4∪D¬⊃
#!∧P%)∀h∧ LDPRC ,$∩w
∨U_
"λYU¬%∀
4d⎇AQ Lx)$`$⊃∪λJ∀PlaQS⊃∀
(m∞B)Yβk"P∃*∩*∧B]j'j⊂d∧ LOSS -↓≠ ⊗N ∧∧$zλ∧s(~p∧εE∪ ∧P@%jt&E∩Jiα
⊃J¬2⊂H%nBαZB∧HJ$-≥4 t2∧8→Db∧α3@⊂⊂i→ FBα MOVEH
A%!1"ε⊂ε$
Hα".j
5λ⊂h→α IL∧A)⊃¬(A!→¬∞∀∀PJ*JNα@λ Hα)fiR∧@]g∪βP∞A%∩eαRzαN ,~9α∧MED∧-Dα5∩)@ π @/%)⊂Aπ-∪ A∨8A~εLbVJ∀hP4*2%αJ
Yβ!∃≤\~λr∧dK
4MPα".hiu3Q∧λ34∃∀∀s∪jAα@
JRSD↓→∩Bα(3 H↔84@Iu⊂∃ibP$U⊂ F PAGES PU@%%
∪λ4⊂∪≠∨Y⊂∃αα@¬λα⊂ 8π'β-∀Aπβ→0A∪≥$yαb∞ ∧∧
∀X⊂λε! ¬∧fSβP
~ααQ2αd"bα_a⊂K\→J4`4∀p5HT⊂∧g*∪β AREA 1
L@ !∀→P≠Pα01λD⊃∪λK⊃∩1A⊃,¬f`RbP ∃P AN X@π ⊃ααIr¬∧βr3JD∃∪c!∧d ∩LI D,(XCT) ; CALL IN AREA 1~∀%≠⊂≡Z,iα"β
∀E⊃ ¬∧h∪βP@∀A@X⊂∀+Q⊂K\YhB∧LhT¬∧y→d8h c]λ∧Piλ2h∀
(ts4d
∀Prλ⊗(⊂λ)⊂βH1A↓!%π⊂β
∩¬λ∧Piλ-λ∀
(p∧ @3 PRCHA2 @!I∞!Jλ∧¬¬∃J*E_h!Q$L4d
∧<α3QeKc"Ni@ ¬W STYLE SEARCH FOR PROPER LIL¬⊗A→=∞εRLz0∪Zλ_D%~λ⊂∧`(αkP*Ug`INKS CEGH≥PA∪~(p
αzZB∧|d
5∧8T∧m∩ _b¬∧~*DLIK∩∧,Z
EJ¬X¬3iI3R`⊂∀bcfbS*⊂$ TP!"bSα PERIFIED
PBCHAK 4%∃+≠!8A(I!I∞"¬λH%n∩|q≡Aα≤jεN↓∧J6 ,XI∀
∧β⊗( _H⊃⊂∪αON-ZERO
PRC@'5&t&E∩Jiα
⊃J¬2⊂H%nBαZB∧HJ$-≥4 t2∧8→Db∧→`λλ~LP#!!33uHY(⊂
*∀ i2A)↓ ;PUT CAH@_A%_ αRD
QαBd
ε∀4PJ*JN ∧∧d∀s4i↓ .u
+(⊂
'H)`
ASH AT, APITIH
∞A]∪ ∩∧
4\M∧ tb∧h→∀e-(QP@*∀Prλ⊗,B4
Zpλ⊃K
∀B!↔pπ"bQ⊂"↔iλ( diλ'c⊂ PiFE∧SdπVE D,TT ;GET COPY OF TH@
Aπ¬→_~∀%∪ ∪-$AλI→⊃⊃'B$∩wπ∨5!+)
↓
∪%'PA⊃β' A-β→U
~∀∪5∨-~↓$Y→ a⊃&b~(∪≠∨-∀AλI)P∩∩w$B⊗)α$B∃αN,~> 4D ∧
≤∧
deXQPPL_I∃$JλEDd$λ9β⊂h!_∀⎇~
!⊂HKαr5∧λQ23Ht⊗Q4IT⊂su)Hλ⊂Q$λ(⊃∩*84q⊃*!"B3)zQ3
%∪⊃⊗
lC"A~rr4 D∃∪λK∀∪U↓⊃,qq*D∀∪r)J⊃4C!↓(∩TJ:λ∀∀Hd→ DB]c$i∀h⊂"$SbP ∀HROUGH ALWAYS ADD FEW SEGMEH
(~)!%π⊂Eαtβ⊃I%4Aλ1→↓1!M Q(R$s∂λααB>εu"⊗IααIr¬¬X∧Q$
⊂1q!Q@∧fgUα@∩AHY→ 1=
&Aλ$∩w!∨%→)∧ααR=α4JJNQ¬:0≥∀D t2∧H~Dλh!_∀$∧α(⊃¬Jq1ti≠K(λDB]j$$TP S THE LAST WLπ%λA%_ αRD)αN⊗<j⊗ 5AQ LH@λ
%⊃⊃⊗
l""'ij i∃⊂#!'SP*$"H#$i)U⊂ iR⊂+ f∃b@
PRCH1B8 CAML TT(R) 8π⊂⊗ε$~!|4PIα*J≥!αBJ≤B¬L$KZfVAbαN=α
∪!= A
E↓2H⊃↔5∀4p
'T ¬ @!=∪⊂~R-⊃αRtλ4`8⊃#"A→∀S∩$λλε∀,⊂βPλ@$hP&&>4*5α⊃bBI$⊃↔5$DY`λ
:⊃tQ$
⊂∧"P∪α@.A%_
NR∃*≥⊂∧ggβE POPJ @ 0~∀4SZ≡⊗Q∧B⊗J∃¬:&@$αλ⊂e
J(∀ @dg"$Sα@∞A$yαNIzB¬$βh⊂(Hα⊂'"Uβ ENTRY @)<A∪≤AA+%
AQβ¬→
0A∩V*αR<4SYαRα*α∩-9_t`$⊂πc⊂∃$"P&Qa`λANISE, IHA$B∃α∞
~⊗MααI∧
λ⊂@⊂∩iP$g∃ f$b⊂ P'⊃hπ @+U_
αB:∀4'0λ
@df&⊂∩ k"P∃'P!"H b""Q⊂ g"λ)⊂ ↔ILL NOT BE USED8@A&2αR"ε ∧∧M~λ9∧TxXBb¬I ∃_h'4¬∀⎇X¬∩)HαP&jTh⊂!"H!$l"Q∧¬∃!I∞"¬⊃P&ε>≤b∃αHK∧e∧1⊃∪@91H∃ 4h∀hXq13JD∩4hλj3∪β!↓(∩TJ:λ∀∀Hd→ DB]P b⊃⊂ P'⊃hπ ONE
MOREMTT$(R) ↓;STORE THE CAL@_A%≤A)⊃∀A!∨)∃→)∪β1→2A↓U%αA≤*≡6⊗u 4(→
%∃RλADd%
5αEE⊃∪@:⊂⊃3DλU23λD∀∪r)j⊃4@
Ih∩3*
4Q(
81s1)Jβ"B*:0S ⊂∀⊗"εEα`b"$H"⊂(T) ↓;D CGNTAINC ADR IL AMPURE SEGEENT
∀∪5≠%~↓)(XQ⊂R∩αwM)∨%
↓)⊃
A
β→1∧J2NR∃*εBε|qαRα-∩∀4λMα6Aα5BA2HHIf≡⊗ ∧∧%$ t2∧_:E,Dλ4l$QQ LE)I∩∧"β
⊗λ~α∀DDNβP ",qα&:≥"JV∞αI∀`9H⊂
'H( ANT THER@
~∀%≠⊂≡Z,iα↓⊃E⊃$4λMα6B$
α`HαT∀H→P ≥αh*`∪H FP@ 1)(∩∩m'β-
↓)(A∨Y$Aπ∃∂⊂⊗⊗u!α=(_ hPα4∃*9⊂¬⊂(&",$⊂eDD]Pb"⊂ H'"k@ SEGMEL¬(~∀$A→¬HA7'∪a
&Q¬bεε:tzQαε$!α:⊗8∧¬-,yI∀`)th∀hXs13JD(⊃H~q∪p(D7↔#!!4∪t∧λT⊂
Jβ"B)YuQ(
E∪⊃⊗ J⊃α"'cbj⊂∀'`g*⊃i⊂"'H*$"P∀ cbP∩*ij⊂b""bβEfgUαEI D,LDXOFS(T) ;FIRST DATA ADR
ADD D,LDXHS1 ;ADR DO INSTALD CALD INTO
MOVEM TT(D! 8π')∨I
A)⊃∀Aπβ→0A)∞A
A!∨Q⊂~RL
22e¬~6εND*⊂$!→¬∀d∀λBbEλ:BHH↔:DD
λε⊂jD∩3TjJU0u →β`∞
POP FXP,R
↓MOT¬⊗5∧!1"IHH%nBd
:QαLqα∞≡$(4(→
%∃RλADd%
5αEE⊃∪@:∃0 "H)bcfQe*⊂(∪dg*"T∧A∧`Q ⊂"ε∪",$)LFA∧`Q" D,LDXOFS
MKVEM TT,(D)∩∩m!→β≥PAπβ→0A∪≤AA∨!≥Q∪β→→dA!+∀)αN⊗<j⊗ 5AQ M∧z "¬αββ"AQLr⊃*((⊂
'H*),P∃'P!fPi`⊂!Pf IN AMPURE SEGEENT. CAL@→⊂A∨
→dA∪A→→β∞A%&A'PX⊂∀)ZαB>εu"⊗Iα$yα↑>∀!α&9¬""*λ∧q(y13U∧ 4h∩)d⊃@∧λ⊃0u
)v4hλ∃λ⊂C∧λiλ∃↓QT∀U
*∀jB)
TVHλ~LP#λA".t
Zλ⊂1λJQ0 iH'c⊂!Pf IL∧Aβ$Iα~∀∪A+'⊂A→1 Iλ$∩w'βY
A-β1+β¬→∀AβεOL~∀&¬*N!α5BA2R h &B-~!α~β
αe Q!∃¬-9 "¬αIHE≤M9↓⊂K]J+∩¬$t
4l
9¬$DTλ4dββ"A∀⊂¬#!S∧@D]UbP"'S⊂πT REALLY CARE IF IT WINS GRL¬∨(~(∪!∨ ↓
1 YP~∀β!= A
⊃@Y)(~(∪!∨ ↓
1 Y⊂~∀&∧zB)αα¬@hUβ""'bg"∩c'⊂(⊂c`g#CEβ≥`DSMS@⊂A1 5αdαα2αjz-αHK$
HE≤Lh∧c!↓α@
;≠8εA'≠¬'⊂Aα↓∞ε2bjRfB*αVF=∧J0∩∧β13)ZT∧P*∪β BE A P@+M⊃∀A∨HA∃%'PA∨$A]⊃β)Y$\~(p
mm∧
IJ¬∧BεMααI∧*∧β∪ph~⊂∧ggλ'c⊂*∩ ¬ CALL ≤~(p
mm¬∩⊗@%X∧SD
p¬dh∀P F IPλAπ¬_ =Dλ$*¬9X∃≤DX@AQL¬P≠lA∩⊗α:E∀⎇~4∧
@λ⊂@⊗λ!P T, TT0AvAMβ ~⊗α4∧
∪∃D∧
∪(⊂∧
Kλ⊃E@∧¬∀vlp
αX¬4jD⊂π'jλ*ibiλ g → P@ 1∧*b∞⊗α
B¬$α⊃(
(αch"∪⊂⊂λ@ $Xλ (%j4,*λ∧∃*)1PFBαλ
*d"N -9β LLzhR¬"β
⊂*&P*#!↓3∀r∧
λε⊗@33 ↓;T CE@)LA)"*α≤ID¬-t u∧≤βq⊃!Q@∧a`Rd∧ D@πβ→→|Zff~(∩Aπβ%→αA b≤IKrk≠59e-,x9E_h!∀α¬∧βt∩D
λε∧DNβRE@)U%≤A∪_A≥∨(↓%ββ→12AαA
β→0hP&"J∃Qα¬1D
IJ¬Hh &6⎇2⊗%α⊂bN
J`h(&B-~")ααb≡⊗Rdλ$%nαJ%J¬It∧<-D
5,∃%D∧5≥X*"b∧z$∧e≥X*"¬¬)zhPα3⊃λ$⊃⊗f&l
_⊗∩∀ T→ TnCE JUMPE A,LDSMNS ;JUMP IF NOT ANY OF THOSE
HLRX B,(A)
HRRZ T,(AR2A)
HLRZ T$(T)
α HLRR T,1(T 0↔∂∃(Aβ%≥&A!∀zB-*K∩∧4z ∧5,h:DL\βH∪H→1#"A~qrS∧
∪⊃λ,B"'e*fhλ$c⊂*∩ ¬RE ISN'T ANI
λ CAIG T,NACS 8πβ%∂LA!%∨A%)2↓∪&Aπ
%/2↓∪A$B&Mα≤Z&BMλh %ααID`8(⊂
,(CAIE @ _R$p∞&→∧
J=4
¬∀⎇∧ tZ@λ⊃⊃*:λ⊃Sj$∃∩⊂*D⊃2⊂(~λ∪U)XQ0 MF ARGS IN UUO
LDZA2:↓ MH∂-
↓(Y7π¬∪→
A⊂Y≥βπM:∩`.L1α:=∧zIα
!αεJ=→αBJ⎇↓1α*-~Qα∞D*≤Zλiu∩¬(→d<(Q!∀→`∧αe_j5,∃!Q J∧β3uHT∃⊗h_21(λE-w!Q@0p)→H⊂K
→∀p
a∀εE∧P∪gk"P∃⊗-a`RbP"εY*FEαl!j∃∧DD]PaP#$Qd∧D OF CALL IS 0-5 FOR CU@RS, 10A→M+¬$Xb`≥α5~V
HhP%α*∃~QαB⎇α)D∧KZN.&ααJ⊗R-∩1αε2αεε2bα∩>⊗≤q≡Aαl
R∞!∧2V:∞αI∀l@H⊂
,T P'iλ⊃P i⊃iFE∧R))-⊂⊂V⊂λA 0↔1'
A∂%_ ↓5¬~6εN@αR"∃∧~ε2AQ LDJ+"∧
Eλ∩HHα.tjXTH⊂(H∀Q4j4⊃Sud 3H⊂!Q@∧ieRh P*∃⊗⊂ i TFE∪"- gR] HRLI A,(@) .SEE ASAR
∪≠=)'%¬!1"BαZ4DRλ¬BHKαpp)Iλ⊂Q(gbbiH(*`∪HJ
TLNE TT,20000
ADDI A,1 ;@ACK FCALLS CLπ%%
)→2@4A≥)∃$Aβ(↓%∨+)%→αVb4∀∪)→9
A)(0b``@4∀∩A≠=)'%¬!1"*∃~Q$∧KZ*∞εdaα
⊗≤z6⊗M∧RJNPhR2∩j `⊂L→z"¬"H⊃P@LYzd,JλABD
&(∩HHα.jE%Ts0*9λ*JE!"B4 Z⊂H∀¬A C"IH∀s3J7@∧d)∀-⊂ F
i→ JD@ ;TRY DO CET↓β%%βdA!%∨A%)24⊂∪≠∨Y∩A∧αbFεJ∀
d4!~¬-≤ $¬αbHxU @ ¬∧fShεEI T, ⊃ααH4(→J4B¬EEU≤,yIt8h!→TmQ(∃¬Ju
∃¬⊃ ¬∧j∪''⊂*)`FEαP
RST POPJ1∩∩m→∨'
↓∪A≥=(A'βH~∀&d"∩¬EK5%%8I∀j@λε**∀`i∀ Jn@
@πβ∪
↓(X@" ¬⊂HKαs5*:α⊂$ Uα@
Aπ=%%πPA≥+≠ $A∨_Aβ%∂L~∀%∧RJNQ¬α0≥β→!P@!33uJ9(⊃⊗∃*)P≤CL∧p_Q!∀L@tS ⊂∃⊗**)Pi∀ @) 0↔≤*Q↓
≤z6B→HT"l9xD*@3Q1(JhεfbHα BIT IN SAR~∀%≠⊂≡Z*αRQEλ∃∪∀∃⊃P@!5∪∪I@⊂**,200 @~∀%∧RJNQ∧b∩jε|X4(→Yu *p∧P*∀ a`S&⊂ 8π
∨$↓β⊂→αt~ε"EZEM∧T
U,Zβλ∀iX4r⊂∩h∧ DO
∪)1_
*λ¬∃¬F,↓⊃,¬P!⊃P P!T'aedTd⊂ aPd∧@_A=$Aβ∃
β⊃0hP%αYze≤Jλ¬⊗
e!`S&⊂
JRST LDZA1
α
;@→ ≥ ⊃αd"≡⊗Qλ∧∧d⊃q5ε$⊂ε"#U~`P&⊃ πE@(β!α2∩=!VλQ!P@*u0U
Iα1q*Hα"*)Vd¬ HA@π↔∃H4(Q)D$q0
: CAMN TT,X@εZb~(∩A*∃~QαHIDE∀AQ L@3uQ$λα⊗**αDX[GEPλA ⊃(A'Lj∀|βλ∀λ~α!d.CE TLL¬≤AλαaIAAαεβHα.s(≠0Q(
I⊃(⊂*:q30IHαi⊂&⊃c*⊂*TP P+⊂d∧UE?
∩A)%'(A1 ≡⊗α@AQ@∧e)T⊂*⊗&⊃ πTWD 0↔
∃)π!∧JQαRD*0⊂@ ¬∧iRdh"P∪ ∧F %⊃ ⊂∀!∀∧U∃8¬⊂∪ ∧GET2 ↓;CAHO(ααVN∃∧JQα_d¬ (αi)dSβH
&A⊃∪
H~∃→ ≥ ⊃EPJR2~*α⊃1Qβ↓AA@HI`≤@060HT⊂π"cPh"P)Vd¬BOL?
MKVNS TT
LDB↓λY6h@`d`@0Y↓:∩m∂(A→∪→λ↓_
V6∀*H (!≠∧
λ∪⊃λu
⊃¬⊃ ∧]d⊂i`⊂*T⊂+ f∃bP#'T⊂#$bS"εE∧Sek"P∃⊗""&PiaT"
DXADD ANTLεA
∪∃→λ~∀%β λAQ(XJBαBI$∧KYα6ε≤Z⊗⊃α
αBJ>¬∩&εR,bd4!_∀dλ⊂
**εE∧Pe"!`SP*⊗⊗LT)∀FB∧dgi∪P**,-1(B
∪∃I' A→⊃↓∪≤~(~∃→ ≥ dt%+≥→∨
↔∩α∩$p∞@,iIt9h∩3JH4TU*
∀c"A~∃0r∧λT⊂λ⊗α ;RAJDOM BP@ SLGT
λ PESH F@1@Yβ$b$∩w'βY
A+↓βπ&~(∪!+≤Aα~Bαb⊂ (αB4
Zpλ⊃K
∀C!!4∃4i∧⊃R∀¬HA"B)YuQ2$
Kβ!!5∪⊗Dλ
eεελβ!*Q0λ"Pj⊂&'QY&&~K-FE∧P`ff⊂⊃⊗& h⊃$k∃↑o↑&'QY&&~KW)(!S*⊗XO∂∀)∀FB∧P b⊃$P!εo↑&'QY&&~KW)(!S*⊗X←βE*DDNbg"⊂∪c⊂!"T ¬AT LOG2LL5¬
@πβ≠
↓λY→βA
∪,QHR∩`.L1α∩∩%~f5αα(U
X:B∧M4λd⎇∩λ⊂∧<dx(∀b¬9→PhPα(∩J*uλ∪λHu
0!⊃.p
$⊃e⊂#$S ∧ IT IN TH@
A→¬!
∪,↓)β¬→∀XAβ≥⊂A∂(↓∪ ∩Mh(&2≤B¬αIbiH$%\:2>
bNf5∧J:$[∧5∀yP¬$DT
∧-∀ZZD
$α3sD
⊂0SλQ"B3
9λ⊃K¬VC"A→⊃⊂@⊂∃*∩&"⊃bj≠∀⊃∀FE∧Sgk"P∃*⊗&)VfiT*∃∀BE∧R))j∪"#j~PεE&"⊃j~`]αfgk"RP**⊗∀≠XεEαa`fgλ"⊗-iTjgm"H_⊗)≠L.BE∧H%))jλ&"#j
X α LDB DXε``@ εββαβ&%⊃P(
n@
LD@∂ εC@!33uHT∃∃⊗⊃∧¬∀∪% ∪-∩↓λXj@h &*,jB*λ∧@⊗∪ ∧GET4 ∀∪A+'↓∀↓ Y∂Q ∩!Q LU*:B∧dHxU%@Q+PHKαq3HD⊂πc⊂∩c'⊂"XεE&⊃ πT5B8 MOVEI @)PXZhQ→1 @$KZP≤LeD¬ 93H$
4q(
(3Q∪iT⊃P(λ)`OT
∪≠=(
,∀λ∩bkEλeEαα""'P*'P⊃ ebP∃h⊂ @ FIP⊃≥U~~(LRJNQ∧b∩<X¬∩AQ@↓Gq⊃⊃hZα,⊂&⊃ πE@)(A→ ∂∃),A→⊃∂).αα2$xZC"∧β⊃⊃hHα*⊂&⊃ πDDT LDGDDT LDXCT LDMASK LDLHRL
λLDGETX: MLπ ~⊗Jα¬ "α⊂j!Q@∧h*Td
P,NCONS
MMP
∩↓Y#∂∃)↓ )M3∩%\"0~∧∀λdLEX∀:β"B*
4r∩D
⊗⊂i@dεS
PU@'!∀A Y1 ≡⊗αJ⊂hTHHt-⊂¬≥∧T'h⊂#⊗(⊂F ;RESTORE ACS
PGP FXP,R
∪!= A
E↓24PJB>A∧2bAH~#λhαB4
Zp∩H
¬⊂ε"&∀)h∧DNβH ∂π-∩Aβ≥⊂A%≥"0≥∀Tλ∃∃∀≠∀¬∧|α3UλZTc"A→3uQ$
∃
λ∃ εE∧T*id%λ(∩*,T ¬P 8π
∪∂U%∃α⎇*Qα↑D
Qα↑*α≡.Q∧∩ε∞1Q M∧z∧∧5E¬ES
Dhε∀¬⊃ ∧]h∪h⊂ ∩AL¬∩yPλ
9α ∂T(REMEMBE@$ααR"∃∧b0≤≤αr(%⊃ ¬∧aPdg⊂ K(c$l∪αUM
JRST LDGET1~∃1 ≡⊗αJc@!0p2)@⊂ V(Qg*SD@ ;USE A↓
→>u*5α_d¬,*λxU"∧βsQ!Q@∧e)∀h∧ LDGET1
λLDGETW: PUS@⊃∀↓ Y2$:∩%A⊃∪@8St@⊂⊂dεP∪)!∪⊂~≥∧*2N∃¬"Jeα$"Qαε<
& 0β"B)Yβk"fH**⊗&⊃ ∧DTP(P ∩~(∪∃%'PA→ ∂∃(d4Ph (αS⊃λx5
ND
Q0λ"Ph⊂∩,Xεxbc|dh\\αYq`#F5R`*T⊂sJGJL$'klhλ↔∂⊂" h
h⊂!)
P~~(~∃∪
8A∪)&12~¬→⊃∂ (h∪∃'↓(Y'∪⊃ ) ~(∩A¬%M(A5!=!∀$KYA↓upαR>A∧b⊗@4YEB∧⎇$ dmλ∩3Hhαi$gT⊂*'P⊃ ∧T
(
¬%∃β⊗@Bβ⊃2m→u∩N@%¬EE%%Q↔2k
EFαβKβH∩)@ εE@%%_∞IααIr∧⊃∃β∧λU1⊂∪'P ∪YMBOL TABLE
∪'-∪!AQ(∩αvDXX`@t|A&t2⊗J&⎇⊃αRtλD%"λ¬r*Iλ⊂ lSa'f⊂∃ a&"CE TLOA TT, ~@λh ⊂J∧ T`:β)dP∃*⊂1
λ∧∪!∨A∀A X4⊂
`(α".hYβ"⊂'Q⊂ FN ITS
λ∧⊂∀)_d`$⊃@_-FE&⊃ πDDT==0∃5A_∞B!⊃⊂K\iz"∧tzp∧ Q0"T⊂ P"⊃*εE.BDXEND @∪
8A⊃Ih ⊂@ ¬εE∩c'⊂"X⊂[
λLDGDDT: SKIPE TT _])
Nfh∧ hPα(∪)@hεSI TT _b4⊂λ&B⎇α)αA`h ∃@ ∧D]QdεD OF @∪
8A⊃Eh ⊂@ ¬&"⊗!j≥∧Sek ∪S TT ;IH
`A
∪1λ⊂∀!→¬∃∃*4¬% ↔8∀$∀Q4j4⊃R1)Hβ"B)Jp∧⊂*∃⊗→→Wα]`aP⊃$bf"βE JF@π⊂⊂$KZ0≥∧9xD*∧i_Td Q!PTdIX∃≤[!∃SλHα.r)@ ∧EH↓
∪→⊂~∀%αa15DHI`≤HJ$-≥4λdL,HAP@!,λ&Uα∧D]PaP#$Qd∧D
)1 8π⊂≡B≤z∩*λi∀,@⊃β"AQS⊃∪
S∞B)
S⊗H
Jλε&"∪c)`∀
λ∧∪β ⊃~A)(αa5E"α!⊂hPα2TJ:α⊂&"⊂αIN
;@→ ¬%⊗→∧b∩εJ+ α2∩<b∩∧β⊃⊂*I(∪⊃λ~α!&⊂∪ ∧ATPL @→ ¬) bA1 β) HA→ βQ fA→⊃β ∩Aα@∧d∧~Jβ@HαC"J:αa**∪∧`i)⊂lV⊂#S'a f∀lfV⊂⊂e"⊂ U'bj P&"P"S*),P∀h∧UFF
~∃1 β%_pλ&B-~!α~β
αe%A⊃∪@;p4TH≠(⊂ "Q"i"g⊂bjFEαdgk"H"⊂@LDAPDR
↓TLL¬≤AλαaP≠mlε⊃ B(
I⊂πP"_XFEαdgk"SP"⊗ ∪ h*∀∧@
TRNN D,-1
BRST @→ ¬%αb∩$p∞N∞M↓α&→∧Bε∞∞Lr≥↓≡tJ1≤4PJR2hT∧"cvrsββ↓⊃∪@91H∪IT∃Ph
I⊃3@⊂∪hib HACKSYMBOL α JRSD↓→↓β%∀b~∧∪!→%$APXQλR4⊂∪⊃→0A(HQPR~∧∪Q→≡Aλ1'2]π
→0∩NJr>@$1↔49βb`⊂ILAD CLπ
A9 &0A∨)⊃∃$A)⊃¬_Aπβ1_A%_~∀β)1_
9α ¬E≥Jj
U⊂H↔84@Iu
@i$j"H$c⊂(∃i"FEαP λLLM T,(T)¬
LDARE18∧∪≠∨Y∩Aα0Q@$hP&BV≤B)αAe"RNIXε⊂HKαsPh→⊂ε⊂*∪β TTSR α HLL DT,(FHP)
SUB FXP,R70+1¬
JRST↓→ β¬L~∀4Ph*2∩<b↓h&≤Z&B⊃¬"P$%]Z≡2>∀
2Nfh∧¬∧
H9¬hh!∀¬≤\~λ∩¬%EIE≥LZ5¬%"⊃↔4<-D
deXT∧|2λyD`8P3λ
;30SiA B(∧ 3uSD
∃∪
;34j
J
".iZH∪0+_Q(∪HXp5∩*@ P ∀HEREOF
∪β⊃λA)(αa5E"∩H$%N"⊃αRzαε∩∩∀*NMα4J⊗ $D t0H!→¬∃∀T
E"bV⊂
% ".d ⊂4u∧
qtQ∧ ⊃p1λXβ"B)*Tu⊂∪ !$gβE
LDATMh∪⊃ ∧ααQ2m! AMAα¬Be%KQ∪@;p5∪iZ⊂0SλT⊃3U
+5#"A→TTu∧ ⊃⊂5λ
⊃α!Q@εE&⊃ j!&∞α JRST DDATP@≤∩$p∞B~j∀4λLRJNQ∧b∩εR5@$%@8i∃DuYQP@L**5"∧HH∃$4A⊃∪@8S∪sJY εE!⊃R∧e)∀h∧ LDAPBN ;BIGNUM
@@∞J∪)%'(A1 β)H~∃ ∧α &*J≥!α2∩
"∩λ$KZ∩>V∀b∀4
$⊃∀&*∃~Qα2$
R⊗HhRεa⊂LRJNQ∧b∩εR≥@$%N≤z6B∩-@4*∞@∧PLU*:B∧dH~D-⊂Q(EB →*%≥" HD
$K↓⊂K\JZ∧d-↓Q$%BQ→%∃≥D D$
HZ hP∃jdeXQ⊂HK8¬3HH1R3HXβ"C!)⊃⊂5
NB3)zQ2(λE
∃∃¬⊃".vh~∪s5λ_S⊃(
P31$λ3U∀K≠#"B*
4rλλk∀∀AQB0p)→⊃(⊃¬I∀∪PJXC"B$ TTu∧ ⊃⊂5
εC"B)YuQ2$λk∀∪H*1K,!QS⊃⊂*J.B)*tλ∃¬I⊃⊃u
Xβ"B(_⊃∩(λ5#"A→3uQ)T∃∃¬λj#"A~srQdλ∪⊃λ~∀λλFB∧ibj∪d¬ LPNF
JRSTLDATP4
LDATP2: PUSH FXP,D
LDATP3:↓JSP T,LDCTWD
∪∃M A(Y→+π∂≥L~∀&¬*N!ααb∧4(M~>*≥∧!22∩
"AL4PJB>A∧2bA∩ h(&6⎇22Mα h(&B-~")α5BA2∩M~R`4PJN⊗RTiα2Bt04*2$
RAQPJBVN@α~bAd
ID∀PJBVNDQαA2∀J0∃$Z)`hP~ uα∧i
αd
&⊃P@M zα∧5
¬E⊂h)HD
%¬π LlzhR¬%EID$→x hP→Yu4Tλ∩d∧HH∃¬%!Q Lx)%α¬JEDd$_[¬ h!→T⎇4YT¬%"IHDx!PPL**5"∧HH$LpQ c\HH∃$5∧ D$
Kεα∧dH~EC
HD
%ε ∧d$~Kβ~∧HH∃$4D D$
IFα∧dH~Dc
HD
$F$∧d$~IC_h!Q$d$~HeCP→*5α¬EID$u∃q↓⊃.p
`U'fj P&"P#∩l' ∃M ENTRY]
PUSH FXP,TT
α MOREI A, FXP)¬
PUSHP,AR1
↓PUSHB P,GCLOOK
POP P,AR1
λ POP FP@,TT
SKIPE A¬
LDATX⊂: @)1_∞¬αλaE@4PI↓α*∃~QαHH∃%C!Q$d∧~KβPα5∪ @P V→βE JRSP LDAP @@h (αS⊃λ~⊗@≥αiadh⊃P+↔(∃i"FEαP
RST @→ ¬)0f~(∪∃'↓(Y
D~0≤@Tc"A→TTu∧ ⊃⊂5ε εE&⊃ j,38∧∪!-~")αα¬E∧T∧!gSαS
JRS@(αα2$~Kβ@ ¬εE∪ ∧ATFL:∪∃M A(Y1 ≡R< $%@8εp*Ipεb P&"P#∪'c ∃M ANDRY]~∀%!+'⊂αα~2Ae"P$!→T`:β"dP⊂T∧ ⊃
1 R4PJBVN@∧¬αd~ !Q@∧h*Td
P,CCLOLπ⊗~∀%!∨ A@Yβ$b4⊂λ&B⎇↓α~2αbRP4PJN.ε∧)α∧∀Tb∩εRc↓`%ααID`8(⊂#ε⊗β"B$∧∩TTjD⊃⊃⊂*IC"IH⊂5∪ε↔@5∪ @P V~βE JRSP LDAPP 04⊂∩¬→⊃β!λdh∪'π∪A
A,]A+%
~(∩A¬%M(A2$
R1LhP&*NααQ2~d~> 51Q LU*:B∧dH~Dcλβ"SλH5∪g↓4⊃4i H⊂
λβ&!gS)FE∧R))j∪" j&∧@
;LDATBN LDATB⊃ LDAT@2 LDAPB3 LDATB6 DDATB0 LDATB↔ LDAEXT LDRBRF
λ αIFL BIGNUM,[
LDATBN* PUSHFXP,TT ;[AT@∨≠Qβ¬→
↓
&≡u*5α⊗u"Jf@QQ LLzhTJ∧EE¬%"⊃Q LLzhTJ∧%IdL@Q)D$
H"∪@!2Tt∧
λε&"⊃h+bεB∧iedT ¬ F.PURE
λ JRSP LDAPB2
JSP T$FWAH∂≥_h &B-~")ααbε <h1PPL**5"∧HH∃$∪1Q hTHH∃$∪'!∃¬-9 "¬αJλeD≤yj0hPα4∃*9⊂H∀¬J⊂ssJ1"S⊃λ~⊂LnA→3uQ$λK⊂#!↓4srHt⊃∪λH5⊂D!Q@4∪j∧⊃P(**εEαj NE TT,1
↓ TLO A-1~∀%'↔∪!∀A,]!U%
~∀$A∃%'PA→ βQl~∀%!+'⊂↓ Yβ$D~∀&¬*N"$
αd∀h9tu_Q!∃¬-9∧¬αd⊃⊃∪@:p5Q$ Q1s∃0ssJ:∀U0jH1λ⊂I_sU3!Q@∧h*Td!⊂(#af'SeDD]TbbP$Q⊂#g"H f)"Pb,P U df P&"FEαh'h⊂∀⊗!∧DCEh'T⊂(⊗ T_BE∧R*fh'λ V&"⊂P,[LDR@
%
t~∀&¬*N!ααb2$~8∃⊂@ B4
Zp∧⊂(-j)*U$.FEαh*`∪H @
"α¬E% Q!∀l@uQ2$λ+
⊃K
λ∧FEαh*`∪H P →α4⊂λ&6⎇20∀Jλ¬⊗FA∧e∀)j⊂↔∀ ¬ARRAY~∃1 %
∀1`⊂M8¬0Dλβ(λ@ 1$n`Vβλ$%@8εtHZα*`∩N BROM .REARRAY FUNCTIH∂:βQP@!4∪t∧λT∧ ⊗⊃∧¬α PLπ A
a Y$~(∪!∂ ↓
1 Y¬$b4PJBVNDQαAIHDe∃8↓P@L**5"∧HH$Lpβ"@↓Gq⊃⊃)@*⊂&"⊃dεT4L@
∀"→αHJ∧
∀t D%¬(paQ@εE)Ua**&αbg")⊗P('dSαT
λLDENT:∪⊃I%4Aε1↓→ βA)$$KZf⊗:%∩eαB|J0∃" →d4⎇QQ L@3uTj4∃∃β!∧d ∩RX∧AαY↓→∩ε¬"H (αB4
Zp∧⊂( @
PUSH↓ Yε~(∪'.Mα0∩∧%Jd4
9It Q!∩∧U*:B∧dIj$$@εE∧PβAIN↓ 2R∃*R $KZ&→α~B~εNdzε⊃∀ ∃~¬AQ J∧β3uHY(⊂C
8TSα!↔u∩⊃)@⊂*`∪E (S@+ $A→'U↓$A
M+¬$R4⊂∪⊃¬I0AαX! R$KZ&Mα¬∩0≥∧X*EJ∧(Y∀dh⊃⊃(i3Q1∧ qQ( xH∩3JH4Q4jGc"B*
4r∩D
∪1)Z,#"A→U34λT⊂+∪λITQ⊃A⊃,sSjλ+λ∀it∀⊂R)jλ∪Sd 10th_q0c!!33uHT⊂K∃Hh4s∪h_β"B(_23@λ¬∃∀U*Iα".i_H⊂jλh4s∪h_λ(∩*4∃β"A∀⊂εgk⊃dP!ε∀a)&∧B]j$"Sα UCE (S@+ $A→'U↓$A
M+¬$R4⊂∪⊃%I0 α¬biE"AHH%nε$z5αRD
Qα&~ααε&t9α"ε≤Z⊗⊂4PJBVNDQαA∩<*R0$KZ∩&⊃¬""&M¬αJεZLzVN2Jα"εZ*α¬αBα)uα∧xd∧L@U⊃4HZu∂c!!2U3*λ(⊂# H⊃PQλa".sIZ⊃+λ Ih∪1*:p1q*4∃∪hλ(αP ⊂RIH
)⊂~∀&¬*N!ααb∧4λMαVN!∧2bA∩
⊃D4λMαVN↓∧2bA∩⊂h(&B-~!α~E↓2_∀PJ6.Z,Iα¬2%∩VRhP&*NααQ2N∧*ε
&t 4(∀∧αβαλ∃E $5⊃4J
R#"A~u∀U∧ε-k⊗j96⊂R*D↔↔S'8p55 →pπ⊃PH⊂⊂n.CEfgU ¬ A,-2(P)
↓PUSHJ P,MSGF@π⊗~∀%)→≡A¬$bXd@````4∀∪!+M⊃∀A 0I!%∪8b∩∩wMβ-ε↓β$b~(∪⊃%%hA∧Y! R
∀%⊃→%4↓∧XQ∧$~∀β≠=)∩AQ(Y7'%1¬∪(↓8XAα↓'3')∃~@C9t~∀b`∀∪πβ∪0A∧Y9 ¬+≤4⊂b`H%πβ∪∂∀A∧Y¬∃∂
+≤4∀∩A≠=)β∩AQ(Y7'%1¬∪(↓8XAα↓+'$C9:~(∪')%P@bnX!)(R~(∪⊃→%hAαY! R
∀%!+'⊃(A HIA%∪≤b$∩wβ$DA∪&AM)∪→_↓∂∨∨λ4∀∪⊃%I0A)(1Q R4∀∪⊃→I4A)(0Q)(R4∀∪≠∨Y∩A(αa"RQHh(&2≤AαQ⊃m~⊗≡∩|84(→
%∃R
@
:
⊂
∧CE CAIE D1#%β≥⊃≠∩~∀$A∃%'PA→ 9(h~∀%' ∩J ↓EMK:4MD)~B¬Bλ~Bα
KQ∪M4q( XH⊂λ)∩dεL4HARE D@!9 &A∨8A!%∪8b~∧∪A+'↓∀↓ Y!∀J21PHH%mαd*εZ&t9αε∩%∩⊗NM∧z→αRLyα&9¬⊃↓"εt!α~&d*Mα→`λλ~L*#!)⊃⊃3JF∞B4jJUλ&Uα-idV!$j⊂↔⊗⊂$iH!"dg⊃P)"b⊃c$g"Q,εM; AS A !\]
α HRRP∀A∧XZbQ@R~∧∪A+'↓∀↓ XI!I∪⊂→DhP&NR∃!↓E]eZN&B∀JQαq∧∩eα~
~1α~Lb∃↓εeh4(→Yu (αP @,L@FNAM
α PUS@⊃∀↓ XI!I∪⊂→DhP&BVα9∧R¬¬JD-∃∧⊃P@!4⊂
iR%⊂ ⊂,UH
¬∪9λ⊂∀!~∧`:λ⊃V
¬⊃C"A~⊃tλλk∀∀AQ@∧h'T⊂# _P,AR1
λ∧∪',⊃αAJ"sα[⊃Q$d⊂π ∩DF:∪≠=(
*λ ¬
λ∧FEαd¬OVE A,-DQ @$hP&BVα9∧R¬¬J$,@4⊂ 'T∧¬∀∪A_∞Aαα¬D1 B3)@hεE A,(P)
λ∧∪∃'@A(@2d"≡@%xAP@!4⊂
iR⊂# _P,TT
H∨-∃∩A∧Y↓→∩xj5 @ ¬∧aPdf"P⊂α, ⊃⊂¬⊂hPα(∩J:λ⊃⊗∪ ∧FERRλ
(MαVN $¬αeλ¬5
Stβ!∧h'hλ εP⊃ 1)(~∀%⊃→%4↓(Y)(4⊂λ&"e∩`∩∧%HαEαα#"A→⊂ε)-λ ∧ _bαB∩Hβ"B(`dg D, ⊃ ¬⊂HHα.sHX1∪@∪U⊂"'P∩h∧ IF ALREADY SAH
~(∩A*∃~QαHJ¬∀lc"IHα( i⊃] 0↔1'
A%∩eαRzα≤@⊂πa!⊃i⊂$jλ$gεE∀*i*)⊂h⊂&"∀)#\V⊂α, HRLM @(αaE" Hh ∀dJ
$;≠!~5,∩λ∧
&l
`_CE JRSPλA→⊃
&8hP1nHJ¬-λ∪⊃
5
`⊂∪ ∧P@+P`A2%αV@#D D%¬X¬~H&"(*U_P&"∀*j&@ L@ !-!IαHJ¬#∀∀ D%¬X¬→H&"&'Pβ @→ 1_∞
ThP4*N,∩RR⊂MαV@$HJE≥LTλe∀|Tλd
≤βλ⊃I→α"FEβE_ 6βYαRλT¬ 9βi" IHA%!α"ε~αNFV⎇R∃α~⎇⊃αα⊗4J2,D
5L@0Ss¬D∀∪∃*4⊃Su*$⊂R5
7@εE≥Nβ; 4∞9 1 => FOLLOWING WORD @∪&↓(
ε2,)1↓AβiyαIx∀"∧β∪pd 4h∃H→α*bFBα;;+ 4.0⊂∪1⊂Aβ&↓%β→∨
β!β¬1
~)Xπ3@1-@≠Bi$⊂$TP)"f∪βCATA@LE
8εvv∩PX XεM→α∞Ix$B¬ααβKβH∀k→αa'f∀P≡P∪U⊂ OADS _A + ⊃↓h∧α=≥→X$lE4λDl-4 d`:α⊂
LDPUP: SKIPN↓αP∩Y%~f ,)yE_h!∀∧U∃8@λ Hα( ∃T3 ∩w→_∞J≡-!α&Q∧J→↓
≥J6
>e→↓αε~↓!%hP&∞εL)α¬2
"Nf6∀z2L4PIα*J≥!α2∩¬*Q\4PJR2~pαRQ1#↓AA@HI`≤Ld∧%≥LX)te~$ ∃~∧)zTtλ⊃∪d∧Tr3()s∀hED∃∩⊃)@∧¬
JRSTL@P@+Pf∩αv↓→∨βλ↓∨∃→2↓∂→∨¬¬→&~∃1 !+λβ9`$*L2∃α&%→2mhP&N.Mα9↓:T∩Nf5⊂h(%αU∩NQαd"BVQ_h(&B-~!α~E↓2εIλh*t⊃↔4,TD t2∧_hR∧MJ1PPL*YU∧b
JBddJ
U#⊂Q!∀l⎇hT∧"e!Q$d%λ¬5επC"R*D 4∃*9λ⊃V
¬⊃β"I~α∩Dh∃id⊂#⊗(⊗#εB∧j&-λ**⊗≠M____βEj&∪P*⊗∩Tlca&
Rild∩f∧]cS'a fλ g"⊂∩ f#⊗Rdf&"QεA$c∪⊂$j)K-FE∧Tedh#H V&"⊃"*(∀∀∀BE∧H%))jλ&"!$S∧D]c∪i#bjλ$j⊂$Q⊂""*λ$ iP∪'P)lSa'f⊂∃ a&"CE∧fgU"P*⊗∃*εE∧U)'"P⊂V⊗XDB]f`lH$ k"H*'P!T"`j"H)lfa∪f⊂* P&"P T) lFB∧P%)∀j⊂&"∀*j~FB∧jg&∪aadFB∧h*iR⊂#,( i_FB∧h*iR%⊂(⊗∀`k,~CEfgU"dP*∃⊗"&"∀j!∃→
XFE∧Sgk!dH V⊗XCEh*Td%⊂(&ec,⊂iεE∧T*id%λ(⊗))U,~FEαh'h⊂⊃,(⊗ T_FE∧T*id%λ(∩&"∪))hεB∧d))∪P V&⊃ ∧DTP(P ∩~)→ !Pht∪≠=(
N¬¬"Q16db∩NR⊂In@-8T¬%"λiu∩¬Jyr¬$ →d=~ λU∀
⊃Q LlzhTj¬JED¬%J8∃∩D∃⊃PTdJ
U#+!~4-%$
E"`Q!∀⎇4
E"d
JE≤
%λ∩HKαqq*D⊂3pI)H∀∪i→U⊃4AQ@2U)Z⊃q(
J∪⊃
5
β!!33uHY(∃λ
∃∀p*%⊂*"'~p5Q$
t53k((⊃Sj$∀v3()sβ"A_1⊃
J∀Mf¬l#"A→3uQ)T⊃⊂
J∀p4Eλ*".j85Q( ~α)P+⊂f*bFB∧fgk⊃P*⊗*∃ε@
SETZ TT,
MOVEM T,@TTSAR(A) ;SAVE BACK INCREMENTED AOBJL PTR
↓JUMPL T,LDBIN
PUSHJ P,LDPUTM ;IAY BA DIME TO OUTPUT BUFFEB
]↓ ;EJD OF IFN ITS
IFN D10,[
LDPUT1: MOVE T,TT
IDIVI DT,50
JUMPE D,LDPUT⊃
MOVEI B,-1(FXP)
MOVSI R,400000
↓PUSHJ P,PU@)⊃λ`~∀%!∨ A→1 Y4∀∪!∨@A
1 1$~∀∪A∨ A
a Yβ$D~∃*∩$s≥λ↓∨A∪→≤Aλb@~∀β∃I'(A→⊃¬∪≤~(~∀
∃%
≤A∪Q&Y6~)→ !Q~t∪'∃)4A)PX~∧∪5∨-≤APY↓))Mβ$Qα$~∀β≠=)'αAPXQ(R4∀∪⊃%HA(Y)Q'β$Q∧R~∀∪¬∨'∂
↓(~∀∩Y¬%¬⊗@bd12\]'M)∧XYQ:~∀∪A∨!∀A@X~∃:$∩w≥⊂A∨A%
≤A∪Q&X~∀4∃→ !U(dt∪5∨-
A⊂Y)(~(∪∃' ↓(Y→ ≥)/λ~(∪1π A)(Y⊂~∀β)1≥≤A)PXb``@``~∀$A∃%'PA→ !Peα~∀%≠∨-
↓(Y→ =
'(~(∪β λ↓(Yλ~(∪⊃%%4A(Yλ4∃→ !Peαt∪Q→≥≤AQ(Xd`@```~(∩A∃%M(A→ A+(`~(∪⊃%→hA(Y→⊃∨
'(4∀∪β ⊂AλY(4∀∪∃%M(A→ A+(`~(~∃→ A+(ft%∃+≠!≥
A)(1→ ¬∪8∩∩w =≤O(A]β≥(AQ≡A!+PA (↓'3~X↓¬+(~(∪∃' ↓(Y→ ≥)/λ∩$rA≠βe¬
A≥∃λA)<A
→+M⊂A1Q%αA/=%λ~∀%∃%'(↓→ ¬∪8~∀~∀4∃→ →=εt∪≠=-∩AQ(Y↓→⊃∨
'(4∀∪≠∨Y∩Aλ0Q$R~(∪πβ≠1
AλY1 ⊃→∨~∀∩A5∨-~↓λY→ !→∨ε~(∪πβ≠≤A)(Y1 ⊃→∨~∀∩A)%'(A1 →∨εT~∀β≠=-
Aλ1→ ⊃→=ε~∀∪M+¬∩A⊂XQ$R4∀∪≠∨Y'∩Aλ0QλR~(∪β λ↓$Yλ~(∪⊃%$↓$Y→ !→∨ε~(∪')hA)(X4∀∪'+λAY$\`Vb∩$w¬/¬%
A)!∪&A¬¬π⊗[+@Aπ%∨
⊗B~∀%β λA¬$bY6@h```@XY:~(∪∃%'PA→ β &~∀~)→ →∨jt∪⊃I%4Aλ1→ ∨
M(~∀∪
β∪∂
↓)(XQ⊂R~∀∩↓∃' A⊂Y→
∃%$~∀%≠∨-$AλXQQ(R~∀%'+¬∩↓λXQ$$~∀∪≠=-'∩A⊂XQλR4∀∪β ⊂A$Yλ4∀∪⊃%I∩A$X!)(R~(∪∃%'PA→ ¬%≤~∀D TEMPS ON STACK
PUSH P,A
PUSHJ P,LDEV0
SUB P,R70+1
JUMPN D,LDBIN
;;; THIS WILL PUT A MUNGEABLE/SQUIDIFIED SYMBOL ONTO THE LDEVPRO LIST, DUE TO
;;; THE BUG IN THE GC NOTED IN LISP BUG MAIL OF 9/2/79 BY JONL.
SKOTTN A,SY
JSP T,LDQLPRO ;PUSHES GOODY ONTO THE LDEVPRO LIST
LDEVL7: TLO A,16 ;AND GOES OFF TO ENTER INTO THE ATOMTABLE
SKOTT A,SY+FL+FX
JRST LDATP8
TLNE TT,SY
TLZ A,6
TLNE TT,FX
TLZ A,4
TLNE TT,FL
TLZ A,2
JRST LDATP8
LDEV0: UNLOCKI ;EVALUATES AN S-EXPRESSION IN A
JUMPE D,LDEV2 ;ALLOWS FOR RECURSIVE FASLOADING
SETZM FASLP ;EXCEPT WHEN EVALUATING FOR ENTRY INTO ATOMTABLE
PUSH P,A
MOVE C,LDPRLS(B)
TLNN C,600000
HRRZM C,VPURCLOBRL
IFN D10*HISEGMENT,[
TLNN C,100000
JRST LDEV4
HRRZM R,HBPORG
JRST LDEV5
LDEV4:
] ;END OF IFN D10*HISEGMENNT
MOVEI TT,(R)
JSP T,FXCONS
MOVEM A,VBPORG
LDEV5: HRRZ TT,LDOFST ;IN CASE EVALUATION CHANGES BPORG,
SUBI TT,(R) ; MUST CHANGE LDOFST TO BE AN
HRRM TT,LDOFST ; ABSOLUTE QUANTITY
MOVNI T,LFTMPS
PUSH FXP,BFTMPS+LFTMPS(T)
AOJL T,.-1
POP P,A
LDEV2:
PUSH FXP,B
PUSH FXP,AR1
PUSH FXP,D
PUSH FXP,R
PUSH FXP,F
PUSHJ P,EVAL
POP FXP,F
POP FXP,R
POP FXP,D
POP FXP,AR1
POP FXP,B
JUMPE D,LDEV1
HS$ 10$ MOVE C,LDPRLS(B)
HS$ 10$ TLNE C,100000
HS$ 10$ SKIPA R,HBPORG
MOVE R,@VBPORG
HRRZ T,LDBGEN(B)
MOVEM T,FASLP
MOVEI T,LFTMPS-1
POP FXP,BFTMPS(T)
SOJGE T,.-1
HRRZ TT,LDOFST ;NOW RE-RELOCATE THE LOAD OFFSET
ADDI TT,(R)
HRRM TT,LDOFST
HRRZ T,VPURCLOBRL
HRRM T,LDPRLS(B)¬
LDAV1: PUSH P,A
10$ MOVE TT,LDPRLS(B) ;FMR D10, PASS LDPRLS IJ TT TO LDCTSP
↓PUSHJ P,LDGTSP
POP P,A
JRST LDLRSP ;GET SPACE, LOCKI, AND RESTORE PTRS
;LDBEND LDBEN1 LDFEND LDFEN2 LDFEN3 LDNPUR LDZPUR
SUBTTL END OF FASLOAD FILE
LDBEND: TRZ TT,1 ;CROCK!
CAME TT,[SIXBIT \*FASL*\]
JSP D,LDFERR
MOVEI TT,LDFEND
MOVEM TT,LDEOFJ
IFN ITS,[
SKIPLE A,LDDDTP(P)
TRNN A,-1
CAIA
PUSHJ P,LDPUTM ;MAYBE HAVE TO FORCE LDPUT'S BUFFER
] ;END OF IFN ITS
HLLZS LDDDTP(P) ;WILL USE FOR SWITCH LATER
JSP T,LDGTWD
TRZ TT,1 ;COMPATIBILITY CROCK
CAME TT,[SIXBIT \*FASL*\]
JRST LDBEN1
HLLOS LDDDTP(P)
MOVEM F,LDTEMP
JRST LDFEND
LDBEN1: TRZ TT,1
CAME TT,[14060301406]
10% JSP D,LDFERR
10$ JUMPN TT,LDFERR
LDFEND: TLZ R,-1 ;END OF FILE
CAMGE R,LDHLOC
MOVE R,LDHLOC
HRRZS TT,R
IFE PAGING,[
MOVE C,LDPRLS(P)
TLNN C,100000
JRST LDFEN2
HRRZM R,HBPORG
JRST LDFEN3
LDFEN2: JSP T,FXCONS
MOVEM A,VBPORG
LDFEN3:
] ;END OF IFE PAGING
IFN PAGING,[
JSP T,FXCONS
MOVE D,(A)
EXCH A,VBPORG
MOVE TT,(A)
SKIPL LDPRLS(P)
JRST LDZPUR
HLLOS NOQUIT
ANDI TT,PAGMSK
ANDI D,PAGMSK
LSHC TT,-PAGLOG
SUBI D,(TT)
ROT TT,-4
ADDA TT,(TT)
ROT TT,-1
TLC TT,770000
ADD TT,[450200,,PURTBL]
MOVEI T,1
LDNPUR: TLNN TT,730000
TLZ TT,770000
IDPB T,TT
SOJGE D,LDNPUR
PUSHJ P,CZEC@I
LDZPUR:
] ;END OF IFN PAGING
PUSH FXP,F ;SAVE POINTER TO I/O BUFFER
;FALLS THROUGH
;LDSDPL LDSDP1 LDSDP2 LDSDP3
;FALLS IN
;;; "GROVELING" OVER THE ATOMTABLE USED TO OCCUR HERE, TO GCPROTECT
;;; BY PLACEING IN THE GCPSAR ANY ATOM NOT OTHERWISE PROTECTED. BUT
;;; NOWADAYS, THEY ARE ALL PROTECTED, EITHER BY BEING POINTED TO BY
;;; SOME PROTECTED LIST STRUCTURE, OR BY THE CODE AT LDQATX.
SUBTTL SMASH DOWN PURE LIST
LDSDPL: SKIPL TT,LDPRLS(P) ;[SMASH DOWN PURE LIST]
TLNE TT,200000
JRST LDEOMM
MOVEM TT,VPURCLOBRL
MOVEI F,VPURCLOBRL
LDSDP1: SKIPN TT,LDPRLS(P)
JRST LDEOMM
SKIPN INTFLG
JRST LDSDP2
SKIPE INTFLG
PUSHJ P,LDTRYI
LDSDP2: HRRZ T,(TT)
MOVEM T,LDPRLS(P)
HLRZ AR2A,(TT)
PUSHJ P,LDSMSH
JRST LDSDP3
HRRZ F,(F)
JRST LDSDP1
LDSDP3: MOVE TT,LDPRLS(P)
HRRM TT,(F)
JRST LDSDP1
;LDEOMM LDEOM1 LDTRYI LDLRSP LDRSPT
SUBTTL END OF FASLOAD, AND RANDOM ROUTINES
;[END OF MOBY MESS!!!]
LDEOMM: POP FXP,LDTEMP ;GET POINTER TO I/O BUFFER
MOVE TT,LDDDTP(P)
MOVE A,LDBSAR
TRNE TT,-1
JRST LDEOM1
PUSHJ P,$CLOSE ;CLOSE FILE ARRAY
SETZM LDBSAR
MOVE A,VBPORG
IFN D10*HISEGMENT,[
MOVE TT,HBPORG
MOVE T,LDPRLS(P)
TLNE T,100000
JSP T,FXCONS
] ;END OF D10*HISEGMENT
UNLOCKI
POPI P,LDNPDS
PUSHJ P,UNBIND
α HRRZ TT,-2(P) ;FOR DEBUGGING PURPOSES,
HRRZ D,-1(P) ; MAKE SURE PDLS ARE OKAY
HRRZ R(P)
SUB P,R70+3
JRST PDDCHK
LDEOM1:↓UNLOCKI
POPI P,LDNPDS ;POP OFF REGPDD SLOTS, BUT
PUSH P,A ;@!U(A→ 'β$A βπ⊗A=≤A! 0~∀β∃I'(A→⊃ ∪'~4∀~∧~)→ )%e∩tβ+9→∨π↔$∩∩∩wm)%2A¬≤A∪≥Q%%+A):~∃1 →%'@t∪→∨
↔∩∩∩$s72|~.%αr⊃αJ-~R>J*αB>&u"⊗JNhh*2∩∃~BQhLBJJi¬"Q22$
NεHHIfnJ-~R>J*αεJJ
IαB>LrR⊗J≥h4(&E∩Jiα%!2RR≤
I"R"H4(εE∩J5α%!22∩TR
HRRZ TT,LDBSAR
IFE D10,[
HRRZ TT,TTSAR(TT)
HRRM TT,LDBPTR
] ;END IFE QIO*D10
.ELSE HLLZS LDBPTR
POPJ P,
;LDLIST LDLIS0 LDLIS1 LDLTBL LDLATM LDLLST LDLDLS LDLLS1 LDLLS3 LDOWL LDLHNK LDLEND
LDLIST: MOVEI C,-1(P) .SEE LDOWL
JRST LDLIS1
LDLIS0: JSP T,LDGTWD
LDLIS1: LDB T,[410300,,TT] ;[CONSTRUCT LIST]
JRST LDLTBL(T)
LDLTBL: JRST LDLATM ;ATOM
JRST LDLLST ;LIST
JRST LDLDLS ;DOTTED LIST
JRST LDOWL ;EVALUATE TOP FROB ON STACK
IFN HNKLOG, JRST LDLHNK ;HUNK
.ELSE JRST FASHNE
REPEAT 2, .VALUE
JRST LDLEND ;END OF LIST
LDLATM: MOVE A,@LDAPTR ;FOR ATOM, MAYBE SET USAGE BIT,
TLNN A,777011 ; THEN SHOVE ON STACK
IOR A,D
MOVEM A,@LDAPTR
PUSH P,A
TRNN A,-1
JRST LDLIS0 ;SKIP SY2 CHECK IF SYMBOL 'NIL'
TLNN A,777006 ;IF HAS VALUE CELL, OR IS NUMBER, DON'T DO SY2
TLNN D,1 ;IF SETTING USAGE BIT THEN ALSO DO SO IN SY2
JRST LDLIS0
HLRZ T,(A) ;GET SY2 WORD
HLL T,(T)
TLO T,SY.CCN\SY.OTC ;MUST FLAG ATOM AS NEEDED
TLNN T,SY.PUR ;SET MEMORY UNLESS PURIFIED
HLLM T,(T)
JRST LDLIS0
LDLLST: TDZA A,A ;FOR LIST, USE NIL AS END
LDLDLS: POP P,A ;FOR DOTTED LIST, USE TOP ITEM
HRRZS TT
JUMPE TT,LDLLS3
LDLLS1: POP P,B ;NOW POP N THINGS AND CONS THEM UP
PUSHJ P,XCONS
SOJG TT,LDLLS1
LDLLS3: PUSH P,A
SKIPE INTFLG
PUSHJ P,LDTRYI
JRST LDLIS0
LDOWL: MOVE A,(P)
MOVEI B,(C) ;B HAS ADDR OF FASLOAD TEMPS ON STACK
PUSH P,C
PUSHJ P,LDEV0
POP P,C
MOVEM A,(P)
JRST LDLIS0
IFN HNKLOG,[
LDLHNK: ANDI TT,-1 ;FLUSH LH CONTROL BITS
PUSH FXP,D
PUSHJ FXP,ALHNKL ;(TT) HAS NUMBER OF ITEMS WANTED
POP FXP,D
PUSH P,A ; POP THEM OFF PDL INTO A HUNK
JRST LDLIS0 ;SAVES C
] ;END OF IFN HNKLOG
LDLEND: HLRZ D,TT
TRC D,777776
TRNE D,777776
JSP D,LDFERR
POP P,A
MOVSS TT
HRRI TT,(A)
POPJ P,
;ZZ ZZZ ZZ ZZZ LDFNM2 LDGTW0 LDGTWD LDGTW1 LDGTW9 LDGTW0 LDGTWD LDGTW1 LDGTE1 LDGTWE LDGTW0 LDGTWD LDGTW1 LDGTW6 LDGTW4
;;; SECOND FILE NAME OF THIS LISP WHEN ASSEMBLED (VERSION NUMBER
;;; THIS LOCATION IS REFERENCED BY FASLAP WHEN CREATING A BINARY
;;; FILE. IT CONTAINS THE VALUE OF .FNAM2 PLUS EXTRA BITS
;;; TO DISTINGUISH SOME CONDITIONAL ASSEMBLY FLAGS.
;;; THE CONTENTS OF THIS LOCATION ARE PRIMARILY USED TO DETERMINE
;;; WHETHER FASLOAD MAY USE VALUES OF DDT SYMBOLS SUPPLIED BY
;;; FASLAP; IT DOES SO ONLY IF FASLAP'S VERSION NUMBER, AS
;;; DETERMINED BY THIS LOCATION, IS THE SAME AS FASLOAD'S.
ZZ==-1
ZZZ==0
;;; 2nd item used to be "ML", but it really meant "ITS"
;;; 3rd item used to be "BIBOP", but is now for D20
IRP X,,[D10,ITS,D20,BIGNUM,CMU,SAIL,HISEGMENT,PAGING]
ZZ==ZZ←1
ZZZ==<ZZZ←1>\X
TERMIN
LDFNM2: <.FNAM2&ZZ>\ZZZ
EXPUNGE ZZ ZZZ
IFN ITS,[
LDGTW0: SUB F,FB.BFL(TT)
HRLZI F,(F)
HRRI F,FB.BUF
LDGTWD: MOVE TT,@LDBPTR
AOBJN F,(T)
LDGTW1: HRRZ TT,LDBSAR
HRRZ TT,TTSAR(TT)
PUSH FXP,FB.IBP(TT)
MOVE F,FB.BFL(TT)
SUBI F,1
.CALL LDGTW9
.LOSE 1400
POPI FXP,1
ADDI F,1
CAME F,FB.BFL(TT)
SOJA F,LDGTW0
JSP D,@LDEOFJ
LDGTW9: SETZ
SIXBIT \SIOT\ ;"STRING" I/O TRANSFER
,,F.CHAN(TT) ;CHANNEL #
,,0(FXP) ;BYTE POINTER
400000,,F ;BYTE COUNT
];END IFN ITS
IFN D20,[
LDGTW0: SUB F,FB.BFL(TT) ;MAKE F INTO AOBJN POINTER
HRLZI F,(F)
HRRI F,FB.BUF ;POINTING INTO THE BUFFER
LDGTWD: AOBJP F,LDGTW1
SUBI F,1 ;READJUST TO ACCESS CORRECT WORD
MOVE TT,@LDBPTR
AOJA F,(T) ;FIXUP AOBJN POINTER THEN RETURN
LDGTW1: HRRZ TT,LDBSAR
HRRZ TT,TTSAR(TT)
PUSHJ FXP,SAV3 ;SAVE ACS WHICH WILL BE DESTROYED
HRRZ 1,F.JFN(TT) ;JFN INTO AC 1
MOVE 2,FB.IBP(TT) ;BYTE POINTER INTO AC 2
MOVN 3,FB.BFL(TT) ;READ THIS MANY BYTES
SIN ;DO THE INPUT
ERJMP LDGTWE ;WE CAN IGNORE ERROR IF IT IS EOF
LDGTE1: MOVN F,3 ;GET POSITIVE NUMBER OF BYTES LEFT UNREAD
PUSHJ FXP,RST3 ;RESTORE SAVED ACS
CAME F,FB.BFL(TT) ;DID WE READ ANYTHING?
SOJA F,LDGTW0 ;YES, SO EMPTY THE BUFFER BEFORE GIVING EOF
JSP D,@LDEOFJ
LDGTWE: MOVEI 1,.FHSLF ;GET OUR LAST ERROR
GETER
HRRZS 2 ;ONLY WANT ERROR CODE
CAIN 2,IOX4 ;EOF?
JRST LDGTE1
MOVEI 1,.PRIOU ;OUTPUT ERROR TO PRIMARY OUTPUT CHANNEL
HRLOI 2,.FHSLF ;LAST ERROR FOR OUR PROCESS
SETZ 3, ;NO LIMIT TO AMOUNT OF OQTPUT
ERSTR
.LOSE ;FAILED
.LOSE ;FAILED
PUSHJ FXP,RST3 ;RESTORE SAVED AC'S
JSP D,@LDEOFJ ;MAKE BELAEVE WE HIT EOF
] ;END IFN D20
IFN D10,[
LDGTW0: POP P,AR1
POP P,T
MOVE TT,FB.HED(TT) ;GET BUFFERHAADER ADDRESS
MOVN F,2(TT) ;N@+5¬$A=A/∨I &A∪8A¬+
→$~∀%⊃%→5$AXZDQR~(∪β $AXb$∩w≥∨\A)⊃
↓βπ)+¬_A
∪I'(A/=%λ~∃1 π)/⊂t∪≠∨Y
A)(1→ ¬'¬$∩∩w≥(A!=∪∃)HA)≡AMβ$~∀%⊃%%4↓)(Y)Q'β$QQ(R~∀%≠∨-
↓)(Y
λ]⊃λ!)(R∩m∂(AA)$A <A¬+
→$A⊃∃β $4∀∪⊃%I4A)(0bQ)($∩∩w∂∃(A!)HA)≡A→∪%'(↓/↔%λ↓∨A¬U
$Z@b~(∪⊃%→$A)(Y_∩∩w∪9 !⊂A∨
↓∨A4∀∪≠∨Y
A)(1↓)(~(∪β∨¬)≤AX!(R~∃1 ∂).Dt∪!+M⊂A YP~∀∪!U'⊂A 1β$b~(∪≠∨-∀Aβ$b1→ ¬'¬$~∀∪5∨-
AQ(Y))Mβ$QβHbR∩w]β∪(B↓3∨*A1∨'$0A)(A5+'(A!β-
AQ)'β$↓∪≤A∪P~∀β≠=-αA(1]π⊃¬≤Q)($~∀∪→M⊂A(XHn~∃∪→
A'β%_Y6~(∪)→≥8A)(YQ)&]¬4~∀∩A)%'(A1 ∂).X∩∩vI⊃,k$4∀∪!+M⊂A
→@Y~∀%⊃%%4↓(Y
∧9⊃λQQ(R∩w5β3¬
↓¬+
∃$A⊃βLA¬8A%→=πβ)⊂}A)⊃∃_A
∨H~∀∪≠=-'αA_XQ¬9∪∨*R~∀∪β9 πβ∧↓YQPR∩∩wQ+%≥&↓∨
A +
H[∪≤[U'
A¬%(Aβ≥⊂Aβ -¬≥π&↓¬+
∃$~∀∪M↔∪!∂∀@QR$∩w¬9∪∨*A5+'(A
A¬∪P@h\r↓
∨$AQ⊃∪&AQ≡A/∨I⊗~∀∩↓∃%'(↓→ ∂)\h@∩∩lI ,U&@~∀%≠∨-'$A(Y)Q&]¬~4∀∪β≥⊃πβ~APY))'¬$Qβ$DR∩w)U%≤A∨→@E¬U
$5≠∨-⊂DA¬∪PXA¬+PA→βY
A¬+_Aβ HA∪≤A_~∀∪≠=-
A(1]π⊃¬≤Q)($∩vI ∃,k"t4∀∪→' A(Xd\~∀∪⊃I$A(Y_~∀∪!= A
→@Y~∃t∩w≥⊂A∨A%
A'¬∪_~∃1 ∂).Xt∪)→<A(XQ%_@`X$∩∩vI⊃,k$h~∀∪1
(A(∩$∩w%¬λAαA9.A¬U
%→+_~∀$A∃%'PA→ ∂Q.`∩∩lI ,U~∩P}$∩w'+
π'&∧~∀∪!= A Y¬$b~∀%!∨ A@Y(~∀%∃' A⊂Y↓→ ∃∨
∀~(~∃∪
∀A'β∪0Y6~∃1 ∂).PtA⊃%I4A(Y→∧]⊃⊂Q)(R4∀∪⊃%I5~A0Q(R∩$w')∨I
Aπ+I%≥(↓¬+
∃$Aβ ⊃$A∪≤↓π∨≥)I∨_A¬1≠π⊗~(∪)→4↓XZb4∀∪β ⊂AY6Ph``X0c:~∀%≠∨-4AXb!(R∩∩mπ∨≥'Q%+π(↓≥.A A
∨HA¬+
→$~∀%≠∨-
↓XQ$~∀∪≠=-~A_XdQ($∩∩w'Q∨%
A9.A¬e)
Aπ=+≥(A%≥∪)≡↓¬+
∃%π∨≥Q%∨_[ →∨π⊗4∀∪!∨@A
→ 1~∀∪)%'(A1 ∂).@~∃:∩m≥λA=A∪
∀A'β∪0~∀~∃t∩w≥⊂A∨A%
≤AλD`~∀~)!∂)∨@A
'_17
β'1∨β :4∀~∀~(;ALCHAN ALCHN0 ALCHN1 ALCH1A ALCHN2 ALCHN3 ALCHN9
;;@ END OF FASLOA 250
;;@ QIO 675 NEW MULTIPLE FILE I/O FUNCTIONS
;;; ***** MACLISP ****** NEW MULTIPLE FILE I/O FUNCTIONS *********
;;; **************************************************************
;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;; **************************************************************
PGBOT [QIO]
SUBTTL I/G CHANNEL ALLOCATOR
;;; ALCHAN ALLOCATES AN I/K CHANNEL FOR USE.
;;; THE "CHANNEL NUMBER" IS AN INDEX INTO THE CHANNEL TABLE.
.SEE CHNTB
;;; FOR ITS AND DEC10, THIS IS ALSO THE CHANNEL NUMBER USED TO
;;; COMMUNIAATE WITH THE TIMECHARING SYSTEM. (FOR DEC20, A
;;; SEPARATE JFN MUST BE ALLOCATED WITH THE GTJFN JSYS.)
;;; ALCHAN EXPECTS THE SAR FOR THA FILE ARRAY TO BE IJ A,
;;; AND RETURNS THE CHANNEL NUMBER INF, SKIPPING IF SUCCESSFUL.
;;9 THE FILE ARRAY MEST HAVE ITS TTS.CL BIT SET.
;;9 THE CHANNEL NUMBER IS INSTALLED IN THE FILE'S F.CHAN SLOT.
;;; USER INTERRUPTS TURNED OFF, PLEASE. CLOBBERS R.
;;; MAY INVOKE A GARBAGE COLLECTION TO FREE UP CHANNELS.
ALCHAN: HRRZS (P)
ALCHN0: MOVNI F,LCHNTB-2 ;SCAN CHANNEL TABLE
ALCHN1: SKIPN R,CHNTB+LCHNTB-1(F)
JRST ALCHN3 ;FOUND A FREE CHANNEL
JUMPL R,ALCH1A ;JEGATIVE, RECERVED
MOVE R,TTSAR(R)
TLNE R,TTS<CL>
JRST AL@π⊃≤d$∩w'5∩[
¬∃
~∃β1β⊂cαβP&ε>Tb∃α→d
2∞αqλ$%N$z9∞Q∧~"ε∞Zα≤D→id,bε∧αDtXhU∩∧j(T*HQ!∃≤\~λt*α
¬⊂HK894Mα _b∧4~*5"¬I→T(h!∀¬∧⎇ $¬α`⊃↔4d⎇8[∩∧dz8UHh!→¬∃∀z4αEα⊃⊃∪M≤ZD¬≥<~H4@h!~¬-≤∧
αe[VVS++UEDd9 c¬hQ!∀U∃:D∧<1⊃∪\DzλR∧<4
tLdD
$,≤H→∀j∧∀λdLDTλ∃∃∀≠⊃PPh(→D≤Df' LlzhTJ∧eID≤DjH"k
λe⊂hT~D@Jt8→Db∧→H4Ds⊃⊃∪\≤Iz4*∧9λ∀ttYD¬$zλ(R¬≥Z(PhT~D@JαiIu≤*ε⊗CβQ)∀4rλF∪αe1Q LlzhTJ¬%E∧2HQ!∀e≤∧
"c∪qQ LLz$¬∩e:(Td,~8RβαFPK](YD,
8T∧≤D→id,b
Ir∧∀T
5-∀QQ MD:D¬⊂h+Q⊂K\YhB∧|d ∀4rλF∪h!~4\Mλ⊃PTH9∧s≠!→T⎇4Y∀∧2dH9∧u$%V∩D2⊃Q LlzhR¬∩JJE≤
%λ∩HH↔9∀u≥H→Db∧9λ∀ttYD∧u,X(U⊂h!→T⎇4YT∧2deh4De
"Hh!→T⎇4YT∧
d9 e$∩λe⊂K](Z4-∃hT∧≤D→id,`Q!∀U∃:D¬∧⎇ &⊂HK:y∀r¬y→bαj
94Mα
(U%-)aPPh)_dr∧~J2eXQ(∀d≤ g∪PM8ZEPh!~4MD)~B¬d9Iu≤-A⊃∪\≤Iz4*∧∃yr∧≤λ→dt,AQ K#εεββαEH`HK89∧thYBα_Q+PHK8Yd"∧xd∧L4d ∃%_Q c\→HdLdT
Ttd: hPQ'3[Zλ→D4LHT∧≥∀X~D-~λ∀∧lLi→Tbλi∀d*λ~%∀
∀¬∧|2 HTt=I∧∧d⎇ xd
JAQ#[[4λ∀t"λ→Dd|8~D-~λ∀∧≤D→id,bλiu∩∧~Ebα∧~D∧-EλX5%~λ∀∧$-i_4*∧h→T(h'73Z∧→d¬%"¬λd⎇∩λHT≠∪¬D¬%"λ→d"∧E∀¬<D_9α∧M4 ∀u≥H→Dd,D ∀r¬IλPhS772∧2hHU2∧→hB∧2j(D-2
9D⎇%4 t2¬IλR∧4→HR∧
*(∃JpQ'3[Z
I∧M~ ~2¬-8Xe,bλiu∩¬)zU$LhZ2¬< _4B¬x→e"¬It∧D94∧|rλ⊃PS[74¬∀hItj∧9λ∀ttYD∧∃-DλD|rzD∧t,XD∧
∧jYDbl)Iu<rλi∀d*λ~%∀
∃aPS[74∧
∧i→D*∧~*$
J ~2∧tXXD,"λiu∩¬IλR¬≤→8R∧|d
DD*λ9∧thYB¬$_)D(h%j4,*λ9∧u$!Q#[[4λ∀t"λiu∩¬IλR∧<~($<Tλ4|dHX5$⎇'4∧L2
I∧*∧i→D*∧~*$
J ~0hS772∧<~($<Tλ4|dHX5$,ED¬≤z ~2¬$λT∧
≥9x4L
HXB∧≤λ→dt,EaPS[74¬$DTλdLdTλ∃∃∀≠∀∧e9t∧m-:D∧≤|jH∀Lrλ~B∧dX~5"∧∀λD-4_8PhS772∧t→XR¬≤t
¬∀Lf∀∧≤d
tLraQ"u≤XT¬¬∀hi@hS772∧≤Ix$∀-*4¬¬∀_:DL≤→IEJ∧→IB∧:5`hS772¬$λT∧
∃(≠∩∧<4
∧|LjHU∩∧~4¬≤-D
Dz¬
)u$,:D¬$DTλdM∃:D¬≤dzD∧|tK∃`hS772¬∀ZJU∀u4λdLdTλ∃∃∀≠∀∧Lrλ∃B∧≤λ→dt,D e,l(Z"∧Ldλbph'73Z¬99∃¬~ yb¬≥X84-≥74∧4→J2∧Ldλ∀d≤λ→b∧≤→du"∧xZB∧
λ9∧thYBph!Q$di→D+P→It≤\⊃Q M¬Z9α∧5
¬E% Q!∀l⎇hY∩¬%EID⎇∧xh⊂HK9HTt=I∧∧|2
DLd td"λi∀d*λ~%∀
⊃Q Llzj4J∧∃ESλH↔8t-" ydeJλ∀¬≤
!Q M¬Z9∧R¬¬IT\e8~ hP→Yu5≤∀
E"eJJ3d≤Ga∪]≤ZD∧≤dz8T"∧)~@hP→→u∀∩
JBe%J8∃∩D∃⊃PPLYze≤J
ED
≠Hi∀cp⊃↔5≤-DλdLdTλ∃∃∀≠∀∧∀MD¬∧m-:D∧$xQ!∀L⎇($¬"d~8∃∩D∃⊃⊂KZ →b¬$ ~2∧⎇(HU∩
⊃Q LE*)u~αV∃¬"H⊃↔4<~
9∧⎇,HD¬¬∀zHT≥" ydeJ yd*¬9Iu h!~∧⎇αλk¬αeAQ LlzhTj¬EHbt$Ze¬%"⊃↔4Lu:H∀dbλHU4L8T∧tXQPS∪∧Q∀l⎇hYR¬"Hee∀$Ze¬%"⊃Q Llzj4J¬EHd∃"h9PHK:
$-4YjB∧<4λe∀|T
E∃L→hr¬$qQ LlzhTj¬EHbtlxHRE%E⊃∪Z¬ZλD
$T d|t[ ∃≥$YjB¬∧y→e$-*1PPM
Z4DR
¬Dd9λ∀ph!∀∧U∃:D¬,tI:∧Ph!_∀⎇~¬
αHH⊃↔5<*
94Mα _d2∧→H4DdλD|-1Q Llzj4J¬JEE%%7H4cpQ!∀tH8∀j¬JEE%%8~"D
⊃Q%,tI:∧SP~Ydd] z∧Ph c\_i∀d-∧∧4LHZα∧4→HUα∧_iu≥αλd⎇≥↓Q hU:X%%$A_dLdT t∀TX:B∧≤λX4\Lht¬∀⎇ZI∀t-1Q hS770LU:∧¬%"KλdLdZ↓PS[74¬≤\~
2∧Lhd¬$DT t∀TX:B∧Ldλ∃∪
~2∧
λi∀d*λ~%∀
∃d∧≤dx($-∃4
"ph*8d
*λ_d⎇≥π!PTi→D-β!→T⎇4Y∀∧
∪∃E∧
HQ*44
T∧4⎇:π hUλi∀d-π!∀l⎇hY∩¬∩Eλ∃∪
⊃Q Le9∧¬∩bZ8T<dxqPPLYzd*¬%J5"E%⊃PPMIIdr¬%J4λh!∀∧U∃:DαE%E⊃PPLYzd*¬%H∃≤
%λ∃∪
⊃↔4m-:D∧e9t∧D
hT∧4LHT∧∀MD
4- Q!∃$did¬∩d~7D4LGaPPJ *%≥"¬
E"HQ!∀U∃:Dβ
EJE⊂hPQ(dLdZπ LU:∧¬%"H_dLdZ↓⊂K]:X%∩β⊃Q J∧**5"∧h→E≤(Q!∀U∃:D¬%∃XQPPh)_dr¬8h∩eXQ'2¬∧~(∀ddYD¬$|tλ∀4LHZα⎇Di→D-αλ*U"¬99∃¬~ yd≤*λiu∩∧i→D*lx)$,≥ED∧tD
E<L8QPSZλiu∩¬8h∩l|)(T≥ Q!PTiz5βP→Yu4,∀λ∃∪
Eλ∩Hh+λd⎇≥π!∀l⎇hY∩¬∩Eλ∃∪
⊃Q Le9∧¬∩bZ8T<dxqPPLYzd*¬%J5"E%⊃PPMIIdr¬%J4λH↔9U-≥Dλ$*∧∀
4
⊂Q!∩∧U*:BαEJE⊂hP→Yu4*
%D
≤~%∧
∪∃⊃∪\$xZ2∧MD ∧
4TλdLdTλ$M"
8U#xQ!∃$dhT¬∩d~7D4LGaPPJ *%≥"ε∃¬%"⊃⊃∪]LZ5B¬≤→htd*
94MQ!∃$dhT¬∩d~5e≤4⊃⊃∪\d
44qQ J∧**5"β%
E"H⊃↔5L-5D∧$⎇X)D*¬99∃h!→%∃≥D¬¬%"⊃⊃∪\,J8R∧-*)u∩¬(ZE-∀aQ%hH↔8Tt" _dr¬8h⊂hPQ c\xi∀d|4 ∀4LIy2∧
HiD|Zλ~D|4y4∧
$_itZ¬Hi∀d|4
DL4Iy2¬$xiD|Z ∀4dy4¬D|iItZ∧i→D|Z hdLdTλdLdy6α∧4→It[
λi∀dty1PPh'73Z¬IλU≤*
)u-$→hU~∧_84-¬Dλ∩∧4→HR∧
*(∃J∧→d∧
∪∀λ∀t"λ9∧,≤4
tD-IλU⊂h'73Z∧~D∧M~ xb¬$λT∧$-9~$,"
K∃∧*F NOT, A WTA ERROR OCCURS.
;;; LEAVES TTSAR IN TT AND USER INTS LOCKED IF SUCCESSFUL.
;;; CLOBBERS T, TT, AND R. SAVES D (SEE FILEPOS) AND F.
OFILOK: JSP T,FILOK0 ;TYPICAL INVOCATION:
TTS<IO>,,TTS<IO> ; DESIRED BITS,,MASK
SIXBIT \NOT OUTPUT FILE!\ ; ERROR MSG IF FAIL
IFILOK: JSP T,FILOK0
0,,TTS<IO>
SIXBIT \NOT INPUT FILE!\
ATFLOK: JSP T,FILOK0
0,,TTS<BN>
SIXBIT \NOT ASCII FILE!\
ATOFOK: JSP T,FILOK0
TTS<IO>,,TTS<BN+IO>
SIXBIT \NOT ASCII OUTPUT FILE!\
ATIFOK: JSP T,FILOK0
0,,TTS<BN+IO>
SIXBIT \NOT ASCII INPUT FILE!\
TFILOK: JSP T,FILOK0
TTS<TY>,,TTS<TY>
SIXBIT \NOT TTY FILE!\
TIFLOK: JSP T,FILOK0
TTS<TY>,,TTS<TY+IO>
SIXBIT \NOT TTY INPUT FILE!\
TOFLOK: JSP T,FILOK0
TTS<TY+IO>,,TTS<TY+IO>
SIXBIT \NOT TTY OUTPUT FILE!\
XIFLOK: JSP T,FILOK0
TTS<BN>,,TTS<IM+BN+IO>
SIXBIT \NOT BINARY INPUT FILE!\
XOFLOK: JSP T,FILOK0
TTS<BN+IO>,,TTS<IM+BN+IO>
SIXBIT \NOT BINARY OUTPUT FILE!\
FILOK: JSP T,FILOK0
0,,0
NFILE: SIXBIT \NOT FILE!\
FILOK0: LOCKI
CAIE AR1,TRUTH ;T => TTY FILE ARRAY
JRST FILOK1
MOVSI TT,TTS<IO>
TSNE TT,(T) ;IF DON'T CARE ABOUT I/O
TDNE TT,(T) ; OR SPECIFICALLY WANT OUTPUT
SKIPA AR1,V%TYO ; THEN USE TTY OUTPUT
HRRZ AR1,V%TYI ;USE TTY INPUT ONLY IF NECESSARY
FILOK1: JSP TT,XFILEP ;SO IS IT A FILE ARRAY?
JRST FILNOK ;NOPE - LOSE
MOVE TT,TTSAR(AR1)
XOR TT,(T)
HLL T,TT
MOVE TT,TTSAR(AR1) ;WANT TO RETURN TTSAR IN TT
TLNE T,@(T)
JRST FILNOK
TLNN TT,TTS<CL>
POPJ P, ;YEP - WIN
SKIPA TT,[[SIXBIT \FILE HAS BEEN CLOSED!\]]
FILNOK: MOVEI TT,1(T)
EXCH A,AR1
UNLOCKI
%WTA (TT)
EXCH A,AR1
JRST FILOK0
;NML6BT NML6B5 NML6BZ NML6B0 NML6B2 DFNWD DFFNWD NML6FN NML6UF DFNWD DFFNWD NML6FN NML6UF NML6F5 NML6F2 NML6F4 NML6F3 NML6DV NML6D0 NML6PP NML6D1 NML6D8 NML6D7 NML6D4 SARGHT
SUBTTL CONVERSION: NAMELIST => SIXBIT
;;; A NAMELIST IN A IS CONVERTED TO "SIXBIT" FORMAT ON THE FIXNUM PDL.
;;; "SIXBIT" FORMAT IS ACTUALLY SIXBIT FOR SOME OPERATING SYSTEMS,
;;; BUT MAY BE ANY ANY FORM WHATSOEVER AS LONG AS ALL ROUTINES WHICH
;;; CLAIM TO UNDERSTAND "SIXBIT" FORM AGREE ON WHAT THAT FORM IS.
;;; (SOME ROUTINES WHICH DO I/O DEPEND ON THIS FORMAT, FOR EXAMPLE
;;; ITS ROUTINES WHICH USE THE OPEN SYMBOLIC SYSTEM CALL.)
;;; "SIXBIT" FORMAT IS DEFINED AS FOLLOWS:
;;;
;;; FOR ITS: <SIXBIT DEVICE NAME>
;;; <SIXBIT SNAME>
;;; <SIXBIT FILE NAME 1>
;;; <SIXBIT FILE NAME 2> ;TOP OF STACK
;;; AN OMITTED COMPONENT CAN BE REPRESENTED BY EITHER A ZERO
;;; WORD OR SIXBIT \*\ (THE LATTER BEING THE CANONICAL CHOICE).
;;;
;;; FOR DEC10: <SIXBIT DEVICE NAME>
;;; <PROJ-PROG NUMBER>
;;; <SIXBIT FILE NAME>
;;; <SIXBIT EXTENSION> ;TOP OF STACK
;;; AN OMITTED COMPONENT CAN BE REPRESENTED BY EITHER A ZERO
;;; WORD OR SIXBIT \*\ (THE LATTER BEING THE CANONICAL CHOICE),
;;; EXCEPT FOR THE PPN, FOR WHICH 777777 INDICATES AN OMITTED HALFWORD.
;;;
;;; FOR DEC20: <ASCIZ DEVICE OR LOGICAL NAME>
;;; <ASCIZ DIRECTORY NAME>
;;; <ASCIZ FILE NAME>
;;; <ASCIZ EXTENSION/TYPE NAME>
;;; <ASCIZ VERSION/GENERATION> ;TOP OF STACK
;;; THE ENTRIES HERE ARE NOT SINGLE WORDS, BUT ARE OF
;;; RESPECTIVE LENGTHS (IN WORDS) L.6DEV, L.6DIR, L.6FNM,
;;; L.6EXT, L.6VRS.
;;;
;;; NOTE THAT FOR ALL SIXBIT FORMATS THE TOTAL LENGTH OF THE
;;; SIXBIT FORMAT IS L.F6BT. THIS DIVIDES INTO TWO PARTS:
;;; THE DEVICE/DIRECTORY, OF LENGTH L.D6BT, AND THE FILE NAME
;;; PROPER, OF LENGTH L.N6BT.
;;;
;;; THERE ARE FOUR KINDS OF FILE NAME SPECIFICATIONS.
;;; ONE IS A FILE OBJECT, WHICH IMPLIES THE NAME USED TO OPEN IT.
;;; ONE IS AN ATOMIC SYMBOL, WHICH IS TREATED AS A NAMESTRING.
;;; THE OTHER TWO ARE NAMELISTS, UREAD-STYLE AND NEWIO-STYLE.
;;; NEWIO-STYLE NAMELISTS HAVE NON-ATOMIC CARS, WHILE UREAD-STYLE
;;; NAMELISTS HAVE ATOMIC CARS. UREAD-STYLE NAMELISTS ARE MOSTLY
;;; FOR COMPATIBILITY WITH OLDIO, AND FOR USER CONVENIENCE.
;;; AS OF 4/14/80, USER HUNKS, THAT IS "EXTENDS" ARE PERMITTED TO
;;; APPEAR AS "NAMELISTS", IN WHICH CASE THEY ARE SENT THE MESSAGE
;;; "NAMESTRING"; THEY ARE EXPECTED TO RETURN A SYMBOL, WHICH IS
;;; THEN TREATED AS IF IT WERE HANDED IN DIRECTLY.
;;;
;;; IN A NEWIO-STYLE NAMELIST, THE CAR IS A DEVICE/DIRECTORY
;;; SPECIFICATION, AND THE CDR A FILE NAME SPECIFICATION.
;;; IN PRINCIPLE EACH IS A LIST OF ARBITRARY LENGTH.
;;; IN PRACTICE, THERE IS A LIMIT FOR EACH OF THE PDP-10
;;; IMPLEMENTATIONS. THE CANONICAL NAMELIST FORMAT FOR
;;; EACH SYSTEM IS AS FOLLOWS:
;;; ITS: ((<DEVICE> <SNAME>) <FILE NAME 1> <FILE NAME 2>)
;;; TOPS10: ((<DEVICE> (<PROJ#> <PROG#>)) <FILE NAME> <EXTENSION>)
;;; SAIL: ((<DEVICE> (<PROJ> <PROG>)) <FILE NAME> <EXTENSION>)
;;; CMU2 ((<DEVICE> <PPN>) <FILE NAME> <EXTENSION>)
;;; CMU ALSO ALLOWS TOPS10-STYLE NAMELISTS.
;;; TENEX: ((<DEVICE> <DIRECTORY>) <FILE NAME> <EXTENSION> <VERSION>)
;;; TOPS20: ((<DEVICE> <DIRECTORY>) <FILE NAME> <TYPE> <GENERATION>)
;;;
;;; ALL COMPONENTS ARE NOMINALLY ATOMIC SYMBOLS, EXCEPT <PROJ#> AND <PROG#>,
;;; WHICH ARE FIXNUMS. IF THE USER SUPPLIES A COMPONENT WHICH IS NOT
;;; A SYMBOL (AND IT CAN EVEN BE NON-ATOMIC IF THERE IS NO AMBIGUITY
;;; AS TO FORMAT), THEN IT IS EXPLODEC'D WITH BASE=10., PRINLEVEL=PRINLENGTH=NIL,
;;; AND *NOPOINT=T. A COMPONENT MAY BE "OMITTED" BY USING THE ATOMIC
;;; SYMBOL *. THIS DOES NOT MEAN A WILDCARD, BUT ONLY AN OMITTED COMPONENT.
;;;
;;; IF THE USER SUPPLIES A NAMELIST NOT IN CANONICAL FORM, THE CAR AND CDR
;;; ARE INDEPENDENTLY CANONICALIZED. THE CAR CAN BE ACANONICAL ONLY BY
;;; BEING A SINGLETON LIST; IN THIS CASE AN ATTEMPT IS MADE TO DECIDE
;;; WHETHER IT IS A DEVICE OR DIRECTORY SPECIFICATION. THIS IS DONE IN
;;; DIFFERENT WAYS ON DIFFERENT SYSTEMS. ON TOPS10, FOR EXAMPLE, AN ATOMIC
;;; SPECIFICATION IS NECESSARY A DEVICE AND NOT A PPN. ON THE OTHER HAND,
;;; ON ITS A LIST OF STANDARD DEVICE NAMES IS CHECKED.
;;; THE CDR CAN BE ACANONICAL BY BEING TOO SHORT, OR BY BEING A DOTTED LIST,
;;; OR BOTH. COMPONENTS ARE TAKEN IN ORDER UNTIL AN ATOMIC CDR IS REACHED.
;;; IF THIS CDR IS NIL, ALL REMAINING COMPONENTS ARE TAKEN TO BE *.
;;; OTHERWISE, ALL REMAINING COMPONENTS ARE * EXCEPT THE LAST, WHICH IS
;;; THAT ATOM IN THE CDR.
;;;
;;; A UREAD-STYLE NAMELIST IS NOMINALLY IN THE FORM (A B C D), WHERE
;;; A, AT LEAST, MUST BE ATOMIC. IT IS INTERPRETED AS IF IT WERE CONVERTED
;;; TO THE FORM ((C D) A B) [DEC20: ((C D) A * B)], AND THEN TREATING IT AS
;;; AN ORDINARY NAMELIST. (IF C AND D ARE MISSING, THEN (*) IS USED INSTEAD
;;; OF NIL AS THE CAR OF THE CONSTRUCTED NAMELIST.
NML6BT: JSP T,QIOSAV ;SAVE REGISTERS
NML6B5: PUSH P,A
HLRZ A,(A) ;CHECK CAR OF NAMELIST
JSP T,STENT
JUMPGE TT,NML6B2 ;JUMP IF UREAD-STYLE NAMELIST
PUSHJ P,NML6DV ;CONVERT DEVICE/DIRECTORY SPECIFICATION
JRST NML6B0 ;SKIPS UNLESS CONVERSION FAILED
HRRZ A,@(P)
PUSHJ P,NML6FN ;CONVERT FILE NAMES (LEAVES TAIL IN A)
JUMPE A,POP1J ;SUCCEED UNLESS TOO MANY FILE NAMES
NML6BZ: POPI FXP,L.N6BT ;POP FILE NAME CRUD
NML6B0: POPI FXP,L.D6BT ;POP DEVICE/DIRECTORY CRUD
POP P,A ;POP ORIGINAL ARGUMENT
WTA [INCORRECTLY FORMED NAMELIST!]
JRST NML6B5
NML6B2: HRRZ A,(P) ;HERE FOR UREAD-STYLE NAMELIST
PUSHJ P,NML6UF ;CONVERT FILE NAMES, BUT AT MOST TWO OF THEM
PUSHJ P,NML6DV ;NOW CONVERT THE DEVICE/DIRECTORY
JRST NML6BZ ;NOTE THAT POPI'S COMMUTE AT NML6BZ!
;AT THIS POINT THE WORDS ON FXP ARE IN THE WRONG ORDER, SO WE SHUFFLE THE STACK.
IFN ITS+D10,[
POP FXP,TT ;DIRECTORY
POP FXP,T ;DEVICE
EXCH T,-1(FXP) ;EXCH DEVICE WITH FN1
EXCH TT,(FXP) ;EXCH DIR WITH FN2
PUSH FXP,T ;PUSH FN1
PUSH FXP,TT ;PUSH FN2
] ;END OF IFN ITS+D10
IFN D20,[
MOVEI T,-L.F6BT+1(FXP)
HRLI T,-L.N6BT
PUSH FXP,(T) ;COPY THE FILE NAMES TO THE TOP
AOBJN T,.-1 ; OF THE STACK
MOVEI T,-L.F6BT-L.N6BT+1(FXP)
HRLI T,-L.F6BT+1(FXP)
BLT T,-L.N6BT(FXP) ;COPY ENTIRE "SIXBIT" SET DOWNWARD
POPI FXP,L.N6BT ;POP OFF EXTRANEOUS CRUD
] ;END OF IFN D20
JRST POP1J
;;; CONVERT FILE NAME LIST IN A TO "SIXBIT" FORM ON FXP.
;;; RETURNS THE UNUSED TAIL OF THE LIST IN A.
;;; NML6UF IS LIKE NML6FN, BUT NEVER GOBBLES MORE THAN TWO NAMES.
IFN D20,[
DFNWD: ASCII \*\ ;DEFAULT FILE-NAME WORD
DFFNWD: ASCII \FASL\
NML6FN: TDZA T,T
NML6UF: SETO T, ;UREAD-STYLE DISTINCTION ONLY MATTERS TO DEC20
HRLM T,(P)
PUSH FXP,DFNWD
PUSHN FXP,L.6FNM-1 ;PUSH ROOM FOR THE FILE NAME
PUSH FXP,DFNWD
PUSHN FXP,L.6EXT-1 ;PUSH ROOM FOR THE FILE EXTENSION
PUSH FXP,DFNWD
PUSHN FXP,L.6VRS-1 ;PUSH ROOM FOR THE FILE VERSION
] ;END OF IFN D20
IFE D20,[
DFNWD: SIXBIT \*\ ;DEFAULT FILE-NAME WORD
DFFNWD: ;DEFAULT FASL-FILE-NAME WORD
10% SIXBIT \FASL\
10$ SIXBIT \FAS\
NML6FN:
NML6UF: REPEAT L.N6BT, PUSH FXP,DFNWD ;PUSH ROOM FOR THE FILE NAMES
] ;END OF IFE D20
JUMPE A,CPOPJ ;NULL LIST => ALL NAMES OMITTED
PUSH P,A
JSP T,STENT
JUMPGE TT,NML6F3 ;ATOM MEANS LAST COMPONENT
HLRZ A,(A)
20% PUSHJ P,SIXMAK ;CONVERT FIRST COMPONENT TO SIXBIT,
20% MOVEM TT,-1(FXP) ; AND CALL IT FILE NAME 1
IFN D20,[
PUSHJ P,PNBFMK ;CONVERT FIRST COMPONENT TO ASCIZ,
MOVEI T,-L.6FNM-L.6EXT-L.6VRS+1(FXP) ; AND CALL IT THE FILE NAME
HRLI T,PNBUF
BLT T,-L.6EXT-L.6VRS(FXP)
MOVEI T,177←1 ;MASK FOR LAST BYTE IN AN ASCII WORD
ANDCAM T,-L.6EXT-L.6VRS(FXP) ;MAKE SURE LAST BYTE IS NULL
] ;END OF IFN D20
HRRZ A,@(P)
JUMPE A,POP1J ;EXIT IF ALL DONE
MOVEM A,(P)
IFN D20,[
JSP T,STENT
JUMPGE TT,NML6F3 ;ATOM MEANS LAST COMPONENT
HLRZ A,(A)
PUSHJ P,PNBFMK ;CONVERT NEXT COMPONENT TO ASCIZ,
MOVEI T,-L.6EXT-L.6VRS+1(FXP) ; AND CALL IT THE EXTENSION
HRLI T,PNBUF
BLT T,-L.6VRS(FXP)
MOVEI T,177←1 ;MASK FOR LAST BYTE IN AN ASCII WORD
ANDCAM T,-L.6VRS(FXP) ;MAKE SURE LAST BYTE IS NULL
HRRZ A,@(P)
JUMPE A,POP1J ;EXIT IF ALL DONE
HRRZ T,(A) ;IF 3 COMPONENTS REMAIN, THEN VERSION EXISTS
HRRZ T,(T)
SKIPN T
SKIPL -1(P) ;FOR UREAD-STYLE NAMELISTS, READ AT MOST
SKIPA ; TWO COMPONENTS
JRST NML6F4
MOVEM A,(P)
NML6F5:
] ;END OF IFN D20
JSP T,STENT
JUMPGE TT,NML6F3 ;ATOM MEANS LAST COMPONENT
HLRZ A,(A)
NML6F2:
IFE D20,[
PUSHJ P,SIXMAK ;CONVERT LAST COMPONENT TO SIXBIT,
10$ TRZ TT,-1 ; TRUNCATING TO 3 CHARS FOR DEC10,
MOVEM TT,(FXP) ; AND CALL IT FILE NAME 2
] ;END OF IFN D20
IFN D20,[
PUSHJ P,PNBFMK ;CONVERT LAST COMPONENT TO ASCIZ,
MOVEI T,-L.6VRS+1(FXP) ; AND CALL IT THE VERSION
HRLI T,PNBUF
BLT T,(FXP)
MOVEI T,177←1 ;MASK FOR LAST BYTE IN AN ASCII WORD
ANDCAM T,(FXP) ;MAKE SURE LAST BYTE IS NULL
] ;END OF IFN D20
NML6F4: HRRZ A,@(P)
JRST POP1J
NML6F3: SETZM (P)
20% JRST NML6F2
20$ JRST NML6F4
;;; CONVERTS A DEVICE/DIRECTORY SPECIFICATION IN A TO "SIXBIT" FORM ON FXP.
;;; PERFORMS DEVICE/DIRECTORY DISAMBIGUATION. SKIPS ON SUCCESS.
NML6DV:
PUSH FXP,DFNWD ;PUSH ROOM FOR DEV NAME
20$ PUSHN FXP,L.6DEV-1 ;PUSH ROOM FOR THE DEVICE NAME
10$ PUSH FXP,[-1] ;FOR DIR NAME
10% PUSH FXP,DFNWD ;FOR DIR NAME
20$ PUSHN FXP,L.6DIR-1 ;PUSH ROOM FOR THE DIRECTORY NAME
NML6D0: JUMPE A,POPJ1 ;NULL SPEC => DEFAULTS
HRRZ B,(A)
HLRZ A,(A)
PUSH P,B
NML6PP:
10$ JSP T,SPATOM ;FOR DEC-10, A NON-ATOMIC ITEM MUST BE A PPN
10$ JRST NML6D7
20$ PUSHJ P,PNBFMK ;GET THE "SIXBIT" FORM OF DEVICE
IFE D20,[
PUSH P,A
PUSH P,B
PUSHJ P,SIXMAK
POP P,B
POP P,A
] ;END IFE D20
SKIPE (P) ;FOR MORE THAN ONE ITEM IN LIST, THEN THE
JRST NML6D1 ; FIRST MUST BE A DEVICE
PUSHJ P,IDND ;DISAMBIGUATE THIS MESS - SKIP IF DEVICE
JRST NML6D8 ;NO SKIP MEANS NO INFO - MAYBE DIRECTORY NAME?
JRST NML6D1 ;SKIP ONE MEANS DEFINITELY A DEVICE NAME
POP P,B
JRST NML6D0 ;SKIP TWO MEANS PPN/DIRECTORY TRANSLATION
NML6D1: ;IT'S DEFINITELY A DEVICE NAME
20% MOVEM TT,-L.D6BT+1(FXP)
IFN D20,[
MOVEI T,-L.6DEV-L.6DIR+1(FXP)
HRLI T,PNBUF
BLT T,-L.6DIR+1(FXP)
MOVEI T,177←1 ;MASK FOR LAST BYTE IN AN ASCII WORD
ANDCAM T,-L.6DIR(FXP) ;MAKE SURE LAST BYTE IS NULL
] ;END OF IFN D20
SKIPN (P)
JRST POP1J1 ;SUCCESS IF NO DIRECTORY SPEC
HLRZ A,@(P)
IFN D10,[
PUSHJ P,PPNGET ;TRY PPN PROPERTY
SKIPN A ;USE IT IF IT EXISTS
HLRZ A,@(P) ;ELSE USE THE USER SPECIFIED FROB
] ;END IFN D10
HRRZ B,@(P)
MOVEM B,(P)
;HERE IS WHERE IT HITS THE FAN - NO TWO SYSTEMS HAVE THE SAME DIRECTORY SPEC FORMAT!
IFN ITS, PUSHJ P,SIXMAK ;FOR ITS IT IS A PLAIN SIXBIT NAME
IFN D20, PUSHJ P,PNBFMK ;FOR D20 IT IS ASCII
IFN D10,[
NML6D8: SETO TT,
CAIN A,Q. ;* AS A PPN STRING IS TAKEN TO MEAN (* *)
JRST NML6D4
JSP T,SPATOM
JRST NML6D7 ;NON-ATOMIC => TOPS10-STYLE
SA% SKIPN CMUP
JRST POP1J ;AN ATOMIC DIRECTORY IS ILLEGAL FOR TOPS10/SAIL
IFE SAIL,[
PUSHJ P,PNBFMK
MOVEI TT,PNBUF ;0,,ADDRESS OF CMU PPN STRING
CMUDEC TT, ;CMUDEC WILL CONVERT A STRING TO A PPN WORD
JRST POP1J ;FAIL IF NOT A VALID CMU PPN
JRST NML6D4
] ;END OF IFE SAIL
NML6D7: HLRZ B,(A) ;B GETS PROJECT
HRRZ C,(A)
HLRZ A,(C) ;A GETS PROGRAMMER
HRRZ C,(C)
JUMPN C,POP1J ;FAIL IF THREE ITEMS IN THE PPN SPEC
IFE SAIL,[
CAIN B,Q. ;* MEANS AN OMITTED COMPONENT
SKIPA D,[,,-1]
JSP T,FXNV2 ;OTHERWISE EXPECT A FIXNUM
CAIN A,Q.
SKIPA TT,[,,-1]
JSP T,FXNV1
TLNN TT,-1
TLNE D,-1
JRST POP1J ;NUMBERS MUST FIT INTO HALFWORDS
HRLI TT,(D)
] ;END OF IFE SAIL
IFN SAIL,[
PUSH P,B
CAIN A,Q. ;* MEANS AN OMITTED COMPONENT
SKIPA TT,[0,,-1]
PUSHJ P,SIXMAK ;OTHERWISE GET SIXBIT
PUSHJ P,SARGHT ;RIGHT JUSTIFY IT
PUSH FXP,TT
POP P,A
CAIN A,Q. ;* MEANS AN OMITTED COMPONENT
SKIPA TT,[0,,-1]
PUSHJ P,SIXMAK ;OTHERWISE GET SIXBIT
PUSHJ P,SARGHT ;RIGHT JUSTIFY IT
POP FXP,D
TLNN TT,-1
TLNE D,-1
JRST POP1J ;NO MORE THAN 3 CHARS APIECE
MOVSS TT
HRRI TT,(D)
] ;END OF IFN SAIL
] ;END OF IFN D10
;NOW WE HAVE THE SNAME/PPN IN TT FOR ITS/D10, OR DIRECTORY IN PNBUF FOR D20
10% NML6D8:
NML6D4:
20% MOVEM TT,(FXP)
IFN D20,[
MOVEI T,-L.6DIR+1(FXP)
HRLI T,PNBUF
BLT T,(FXP)
MOVEI T,177←1 ;MASK FOR LAST BYTE IN AN ASCII WORD
ANDCAM T,(FXP)
] ;END OF IFN D20
SKIPN (P) ;WE WIN IFF THERE ARE NO MORE ITEMS TO PARSE
AOS -1(P)
JRST POP1J
IFN SAIL,[
;RIGHT JUSTIFY SIXBIT WORD IN TT
SARGHT: SKIPE TT ;IF NOTHING THERE WE DON'T WANT TO LOOP
TRNE TT,77 ;ANYTHING IN HIGH SIXBIT BYTE?
POPJ P, ;YUP, IT IS THEREFORE LEFT-JUSTIFIED
LSH TT,-6 ;ELSE GET RID OF THE LEADING BLANK
JRST SARGHT ;AND PROCEED WITH TEST
] ;END IFN SAIL
;IDNTB LIDNTB IDNDLS PPNGET IDND IDNDA IDNDA IDND1 IDND2 IDND3 IDNDS IDNDX
;;; INSUFFERABLE DEVICE NAME DISTINGUISHER - SKIP.RETURN IF ARG IS DEVICE
;;; A NAME IS IN TT IN SIXBIT (ITS/CMU) OR IN PNBUF IN ASCII (D20).
;;; ACC A HOLDS POINTER TO THE SYMBOL FROM WHICH "NAME" WAS TRANSLATED.
;;; TRIES TO DECIDE WHETHER A NAME IS A DEVICE NAME OR A DIRECTORY NAME.
;;; FOR ITS, IT IS A DEVICE NAME IFF, AFTER STRIPPING OFF TRAILING DIGITS,
;;; IT IS IN THE TABLE OF KNOWN DEVICE NAMES.
;;; FOR CMU, WE USE THE DEVCHR UUO TO TEST EXISTENCE.
;;; FOR D20, WE USE THE STDEV JSYS TO TEST EXISTENCE.
;;; SKIPS IF A DEVICE NAME. MUST PRESERVE A AND TT.
IFN ITS,[
;;; BEWARE! THIS TABLE IS SORTED ALPHABETICALLY, AND THAT IS REQUIRED BY
;;; THE SUPER-HAIRY BINARY SORT HACK ABOVE. TABLE MUST BE AN EXACT POWER OF
;;; TWO IN LENGTH SO WE CAN USE SUPER-WINNING BINARY SEARCH METHOD.
IDNTB:
IRP X,,[AI,AIAR,AIDIR,AR,ARC,BOJ,CLA,CLI,CLO,CLU,COM,COR
DIR,DK,DM,DMAR,DMDIR,DSK,ERR,JOB,LPT,MC,MCAR,MCDIR,ML,MLAR,MLDIR
MT,NUL,OJB,P,PK,PTP,PTR,S,SPY,ST,STY,SYS,T,TPL,TTY,TY,USR,UT]
SIXBIT \X\
TERMIN
LIDNTB==:.-IDNTB
HAOLNG LOG2IDNTB,<.-IDNTB-1>
REPEAT <1←LOG2IDNTB>-LIDNTB,[-1
] ;END OF REPEAT <1←LOG2IDNTB>-LIDNTB,
IDNDLS:
REPEAT 6,[ROTC TT-1,<.RPCNT+1>*6
] ;END OF REPEAT 6,
POPJ P, ;STANDARD EXIT IF TOO MANY SHIFTS
] ;END OF IFN ITS
PPNGET: PUSH P,B ;Don't go around clobbering stuff
PUSH FXP,TT ;CHECK TO SEE IF SYMBOL HAS PPN PROPERTY
JSP T,SPATOM ; AND USE `(DSK ,(proj prog)) IF FOUND
MOVE A,CIN0 ;A LISP "0", IN ORDER TO CONFUSE "GET"
MOVEI B,QPPN
PUSHJ P,$GET
POP P,B ;B may still contain the directory name.
JRST RSTX1
IDND: PUSH P,A
PUSHJ P,PPNGET
JUMPE A,IDNDA
HRRZM A,(P) ;AHA! A PPN TRANSLATION!
AOS -1(P) ;SKIP 2 FOR PPN TRANSLATION
AOS -1(P)
JRST POPAJ
IDNDA:
IFN D20,[
LOCKI ;LOCK OUT INTERRUPTS AROUND THE JSYS
HRROI A,PNBUF
STDEV ;CONVERT DEVICE STRING TO DEVICE DESIGNATOR
SKIPA ;ERROR - NO SUCH DEVICE - NO SKIP ON FAILURE
] ;END OF IFN D20
IFN D10,[
MOVE F,TT
DEVCHR F, ;GET CHARACTERISTICS OF DEVICE
SKIPE F ; ZERO WORD MEANS DEVICE DOESN'T EXIST
] ;END OF IFN D10
IFN ITS,[
IDNDA: MOVE F,TT ;SAVE TT IN F
MOVNI R,6
IDND1: SETZ TT-1, ;WE WILL STRIP DIGITS AND NULLS FROM END
ROTC TT-1,-6 ; BY ROTATING THEM INTO THE PREVIOUS AC
ROT TT-1,6
JUMPE TT-1,IDND2
CAIL TT-1,'0
CAILE TT-1,'9
JRST IDND3 ;EXIT IF NEITHER DIGIT NOR NULL
IDND2: AOJL R,IDND1
POPJ P, ;SHIFTED OUT ALL CHARACTERS?
IDND3: ROT TT-1,-6
XCT IDNDLS+6(R) ;SHIFT BACK
SETZB R,T
REPEAT LOG2IDNTB,[
CAML TT,IDNTB+<1←<LOG2IDNTB-.RPCNT-1>>(R)
ADDI R,1←<LOG2IDNTB-.RPCNT-1>
] ;END OF REPEAT LOG2IDNTB
EXCH TT,F ;RESTORE TT
CAMN F,IDNTB(R) ;FALL THRU IF RECOGNIZED DEVICE
] ;END OF IFN ITS
;;; FALL THRU TO HERE IF IT IS A DEVICE
IDNDS: AOS -1(P) ;AND IF DEVICE, THEN SKIP ONE ON RETURN
IDNDX: ; BUT IF NOT, THEN NO SKIP
20% JRST POPAJ
20$ POP P,A
20$ UNLKPOPJ
;NAMELIST 6BTNML 6BTNL3 6BTNL4
SUBTTL CONVERSION: SIXBIT => NAMELIST
;;; THIS ROUTINE TAKES "SIXBIT" FORMAT ON FXP AND,
;;; POPPING THEM, RETURNS THE EQUIVALENT CANONICAL NAMELIST.
;;; OMITTED COMPONENTS BECOME *'S.
;;; THE NAMELIST FUNCTION MERELY CONVERTS ARG TO SIXBIT,
;;; THEN BACK TO (CANONICAL) NAMELIST FORM.
NAMELIST:
PUSHJ P,FIL6BT ;SUBR 1
6BTNML: JSP T,QIOSAV ;MUST ALSO PRESERVE F
PUSHN P,1
;FOR D20, POP THE VERSION (TENEX)/GENERATION (TOPS20) AND CONS IT UP
IFN D20,[
REPEAT L.6VRS, POP FXP,PNBUF+L.6VRS-.RPCNT-1
PUSHJ P,6BTNL3
] ;END OF IFN D20
;POP THE FILE NAME 2 (ITS)/EXTENSION (D10, TENEX)/TYPE (TOPS20) AND CONS UP
IFN ITS+D10, POP FXP,TT
IFN D10, TRZ TT,-1 ;D10 EXTENSION IS AT MOST 3 CHARACTERS
IFN D20,[
MOVEI T,PNBUF
HRLI T,-L.6EXT+1(FXP)
BLT T,PNBUF+L.6EXT-1
POPI FXP,L.6EXT
] ;END OF IFN D20
PUSHJ P,6BTNL3
;POP THE FILE NAME 1 (ITS)/FILE NAME (D10, D20) AND CONS UP
IFN ITS+D10, POP FXP,TT
IFN D20,[
MOVEI T,PNBUF
HRLI T,-L.6FNM+1(FXP)
BLT T,PNBUF+L.6FNM-1
POPI FXP,L.6FNM
] ;END OF IFN D20
PUSHJ P,6BTNL3
;NOW FOR THE DEVICE/DIRECTORY PORTION
PUSHN P,1
;FIRST THE DIRECTORY (WHAT A MESS!)
IFN ITS,[
POP FXP,TT
PUSHJ P,6BTNL3
] ;END OF IFN ITS
IFN D10,[
POP FXP,TT
PUSHJ P,PPNATM
PUSHJ P,6BTNL4
] ;END OF IFN D10
IFN D20,[
MOVEI T,PNBUF
HRLI T,-L.6DIR+1(FXP)
BLT T,PNBUF+L.6DIR-1
POPI FXP,L.6DIR
PUSHJ P,6BTNL3
] ;END OF IFN D20
;FINALLY, THE DEVICE NAME
20% POP FXP,TT
IFN D20,[
MOVEI T,PNBUF
HRLI T,-L.6DEV+1(FXP)
BLT T,PNBUF+L.6DEV-1
POPI FXP,L.6DEV
] ;END OF IFN D20
PUSHJ P,6BTNL3
POP P,A
POP P,B
JRST CONS
SA$ 6BTNL9: SKIPA A,[Q.]
6BTNL3:
20% PUSHJ P,SIXATM
20$ PUSHJ P,PNBFAT
6BTNL4: MOVE B,-1(P)
PUSHJ P,CONS
MOVEM A,-1(P)
POPJ P,
;SHORTNAMESTRING NAMESTRING 6BTNMS X6BTNSL 6BTNSL 6BTNS 6BNS0A 6BTNS0 6BTNS4 6BTNS5 6BTNS8 6BTNS1 6BTNS2 6BTNS3 6BTNS2 6BNS3A 6BTNS3 6BTNS6 6BNS6A 6BNS7A 6BTNS7 6BNS7B
SUBTTL CONVERSION: SIXBIT => NAMESTRING
;;; THIS ROUTINE TAKES A "SIXBIT" FORMAT FILE SPEC ON FXP
;;; AND GENERATES AN UNINTERNED ATOMIC SYMBOL WHOSE
;;; PRINT NAME IS THE EXTERNAL FORM OF FILE SPECIFICATION.
;;; OMITTED NAMES ARE EITHER NOT INCLUDED IN THE NAMESTRING
;;; OR REPRESENTED AS "*".
;;; THE NAMESTRING AND SHORTNAMESTRING MERELY CONVERT THEIR
;;; ARGUMENTS TO SIXBIT AND THEN INTO NAMESTRING FORM.
SHORTNAMESTRING: ;SUBR 1
TDZA TT,TT
NAMESTRING: ;SUBR 1
SETO TT,
HRLM TT,(P)
PUSHJ P,FIL6BT
6BTNMS: MOVEI TT,PNGNK2
HLL TT,(P) ;TO MAKE A NAMESTRING, GET IT INTO PNBUF
PUSH P,TT
JRST 6BTNS ; AND THEN PNGNK2 WILL MAKE A SYMBOL
IFN D20,[
X6BTNSL: MOVEI T,L.F6BT ;MAKES STRING IN PNBUF, BUT NO POPPING
PUSH FXP,-L.F6BT+1(FXP) ; THE FILE NAMES (WE COPY THEM FIRST)
SOJG T,.-1
] ;END OF IFN D20
6BTNSL: SETO TT, ;IF RETURN ADDRESS SLOT ON THE PDL IS
HRLM TT,(P) ; POSITIVE, THEN DO "SHORTNAMESTRING"
6BTNS: JSP T,QIOSAV ;CONVERT "SIXBIT" TO A STRING IN PNBUF
; (BETTER BE BIG ENOUGH!)
SETOM LPNF ;SET FLAG SAYING IT FITS IN PNBUF
20% MOVEI R,↑Q ;R CONTAINS THE CHARACTER FOR QUOTING
20$ MOVEI R,↑V ; PECULIAR CHARACTERS IN COMPONENTS
MOVE C,PNBP
SKIPL -LQIOSV(P) ;SKIP UNLESS SHORTNAMESTRING
JRST 6BTNS0
;DEVICE NAME (NOT FOR SHORTNAMESTRING, THOUGH)
MOVEI TT,-L.D6BT-L.N6BT+1(FXP)
SKIPE T,(TT)
CAMN T,DFNWD
JRST 6BNS0A ;JUMP IF DEVICE NAME OMITTED
PUSHJ P,6BTNS1
MOVEI T,": ;9 OUT OF 10 OPERATING SYSTEMS AGREE:
IDPB T,C ; ":" MEANS A DEVICE NAME.
6BNS0A:
;FOR ITS AND D20, DIRECTORY NAME COMES NEXT
IFN ITS+D20,[
MOVEI TT,-L.6DIR-L.6FNM-L.6EXT-L.6VRS+1(FXP)
SKIPE T,-L.6DIR-L.N6BT+1(FXP)
CAMN T,DFNWD
JRST 6BTNS0 ;DIRECTORY NAME OMITTED
20$ MOVEI T,"< ;D20 DIRECTORY NAME APPEARS IN <>
20$ IDPB T,C
PUSHJ P,6BTNS1
20$ MOVEI T,">
20% MOVEI T,"; ;";" MEANS DIRECTORY NAME TO ITS
IDPB T,C
] ;END OF IFN ITS+D20
6BTNS0: MOVEI TT,-L.N6BT+1(FXP) ;NOW WE ATTACK THE FILE NAME
PUSHJ P,6BTNS1
;NOW THE FILE NAME 2/EXTENSION/TYPE
IFN ITS, MOVEI T,40
IFN D10+D20, MOVEI T,".
10$ PUSH FXP,(FXP) ;EXTRA SLOT FOR D10, IN ORDER
10$ HLLZS (FXP) ; ZERO OUT HALF A WORD
MOVEI TT,-L.N6BT+L.6FNM+1(FXP)
10$ SKIPE (TT)
IDPB T,C
IT% SKIPE (TT)
PUSHJ P,6BTNS1
10$ POPI FXP,1 ;FLUSH THE "EXTRA" SLOT
IFN D20,[
;FOR D20, THE VERSION/GENERATION COMES LAST
MOVEI TT,-L.6VRS+1(FXP)
SKIPE T,(TT)
CAMN T,DFNWD
JRST 6BTNS8
MOVEI T,";
SKIPN TENEXP
MOVEI T,".
IDPB T,C
PUSHJ P,6BTNS1
] ;END OF IFN D20
IFN D10,[
;FOR D10, THE DIRECTORY COMES LAST
MOVEI TT,-L.F6BT+L.6DEV+1(FXP)
MOVE T,(TT)
CAME T,XC-1 ;FORGET IT IF BOTH HALVES OMITTED
SKIPL -LQIOSV(P) ;NO DIRECTORY FOR SHORTNAMESTRING
JRST 6BTNS8
MOVEI T,91. ;A LEFT BRACKET
IDPB T,C
IFE SAIL,[
SKIPN CMUP
JRST 6BTNS4
HLRZ T,(TT)
CAIG T,10 ;ONLY PROJECTS ABOVE 10 ARE IN CMU FORMAT
JRST 6BTNS4
PUSHN FXP,2 ;THERE IS A BUG IN DECCMU, BUT PUSHING ZERO WORDS
MOVEI T,-1(FXP) ; GETS US AROUND IT
HRL T,TT
DECCMU T,
JRST 6BTNS4 ;ON FAILURE, JUST USE DEC FORMAT
MOVEI TT,-1(FXP)
TLOA TT,440700
IDPB T,C ;COPY CHARACTERS INTO PNBUF
ILDB T,TT
JUMPN T,.-2
POPI FXP,2
JRST 6BTNS5
] ;END OF IFE SAIL
6BTNS4: HLLZ TT,-L.F6BT+L.6DEV+1(FXP)
PUSHJ P,6BTNS6 ;OUTPUT PROJECT
MOVEI T,", ;COMMA SEPARATES HALVES
IDPB T,C
HRLZ TT,-L.F6BT+L.6DEV+1(FXP)
PUSHJ P,6BTNS6 ;OUTPUT PROGRAMMER
6BTNS5: MOVEI T,93. ;A RIGHT BRACKET
IDPB T,C
] ;END OF IFN D10
6BTNS8: PUSHJ FXP,RDAEND ;FINISH OFF THE LAST WORD OF THE STRING
SETZM 1(C)
POPI FXP,L.F6BT ;POP CRUD OFF STACK
MOVEM C,-LQIOSV+2(P) ;CROCK DUE TO SAVED AC C
POPJ P,
;;; COME HERE TO ADD A COMPONENT TO THE GROWING NAMESTRING IN PNBUF.
;;; FOR ITS AND D10, THE SIXBIT IS IN TT, AND MUST BE CONVERTED.
;;; FOR DEC20, TT HAS A POINTER TO THE ASCIZ STRING TO ADD.
6BTNS1:
IFN ITS+D10,[
SKIPN TT,(TT) ;A ZERO WORD GETS OUTPUT AS "*"
MOVE TT,DFNWD
6BTNS2: SETZ T,
LSHC T,6
JUMPE T,6BTNS3
10$ CAIE T,133-40 ;FOR DEC-10, BRACKETS MUST
10$ CAIN T,135-40 ; BE QUOTED
10$ JRST 6BTNS3
CAIE T,':
10% CAIN T,';
10$ CAIN T,'.
6BTNS3: IDPB R,C ;↑Q TO QUOTE FUNNY CHARS
ADDI T,40
IDPB T,C
JUMPN TT,6BTNS2
POPJ P,
] ;END OF IFN ITS+D10
IFN D20,[
SKIPN (TT)
MOVEI TT,DFNWD
SETZ D,
HRLI TT,440700
6BTNS2: ILDB T,TT
JUMPE T,CPOPJ
TRZE D,1 ;D IS THE PRECEDING-CHAR-WAS-↑V FLAG
JRST 6BTNS3
IRPC X,,[:;<>=←*@ ,] ;EVEN NUMBER OF GOODIES!
IFE .IRPCNT&1, CAIE T,"X
.ELSE,[
CAIN T,"X
IDPB R,C ;QUOTE FUNNY CHARACTER
] ;END OF .ELSE
TERMIN
SKIPE TENEXP
JRST 6BNS3A
;TOPS-20 Requires more characters to be quoted
IRPC X,,[(){}/!"#%&'\|`↑}]
IFE .IRPCNT&1, CAIE T,"X
.ELSE,[
CAIN T,"X
IDPB R,C ;QUOTE FUNNY CHARACTER
] ;END OF .ELSE
TERMIN
CAIE T,91. ;LEFT-SQUARE-BRACKET
CAIN T,93. ;RIGHT-SQUARE-BRACKET
IDPB R,C
6BNS3A: CAIN T,(R) ;REMEMBER A ↑V
TRO D,1
6BTNS3: IDPB T,C
JRST 6BTNS2
] ;END OF IFN D20
IFN D10,[
;;; CONVERT ONE HALF OF A PPN, PUTTING ASCII CHARS IN PNBUF
6BTNS6: JUMPE TT,6BNS6A
CAME TT,[-1,,]
AOJA TT,6BTNS7 ;ADDING ONE PRODUCES A FLAG BIT
6BNS6A: MOVEI TT,"* ;AN OMITTED HALF IS OUTPUT AS "*"
IDPB TT,C
POPJ P,
6BNS7A: LSH TT,3+3*SAIL ;ZERO-SUPPRESS OCTAL (TOPS10/CMU), LEFT-JUSTIFY CHARS (SAIL)
6BTNS7: TLNN TT,770000←<3*<1-SAIL>>
JRST 6BNS7A ;NOTE THAT THE FLAG BIT GETS SHIFTED TOO
6BNS7B: SETZ T,
LSHC T,3+3*SAIL
SA% ADDI T,"0
SA$ ADDI T,40
IDPB T,C
TRNE TT,-1 ;WE'RE DONE WHEN THE FLAG BIT LEAVES THE RIGHT HALF
JRST 6BNS7B
POPJ P,
] ;END OF IFN D10
;NMS NMS.CQ NMS.CA NMS.DV NMS.FN NMS.DT NMS.XT NMS.LB NMS.CM NMS.RB NMS.ND NMS.ST NMS6BF NMS6B0 NMS6BT NMS6B1 NMS6B8 NMS6B6 NMS6B5 NMS6B7 NMS6B9 NMS6B4 NMS6BQ NMS6BL NMS6DV NMS6SN NMS6PD NMS6LB NMS6L1 NMS6CM NMS6RB NMS6R2 NMS6R1 NMS6ST NMS6PP
SUBTTL CONVERSION: NAMESTRING => SIXBIT
;;; THIS ONE IS PRETTY HAIRY. IT CONVERTS AN ATOMIC
;;; SYMBOL IN A, REPRESENTING A FILE SPECIFICATION,
;;; INTO "SIXBIT" FORMAT ON FXP. THIS INVOLVES
;;; PARSING A FILE NAME IN STANDARD ASCII STRING FORMAT
;;; AS DEFINED BY THE HOST OPERATING SYSTEM.
;;; FOR D20, THE OPERATING SYSTEM GIVES US SOME HELP.
;;; FOR ITS AND D10, WE ARE ON OUR OWN.
IFN ITS+D10,[
;;; THE GENERAL STRATEGY HERE IS TO CALL PRINTA TO EXPLODEC THE NAMESTRING.
;;; A PARSING COROUTINE TAKES THE SUCCESSIVE CHARACTERS AND INTERPRETS THEM.
;;; EACH COMPONENT IS ASSEMBLED IN SIXBIT FORM, AND WHEN IT IS TERMINATED
;;; BY A BREAK CHARACTER, IT IS PUT INTO ONE OF FOUR SLOTS RESERVED ON FXP.
;;; FOR CMU, WE ALSO ASSEMBLE THE CHARACTERS INTO PNBUF IN ASCII FORM,
;;; SO THAT WE CAN USE THE CMUDEC UUO TO CONVERT A CMU-STYLE PPN.
;;; AR1 HOLDS THE BYTE POINTER FOR ACCUMULATING A NAME.
;;; AR2A HOLDS MANY FLAGS DESCRIBING THE STATE OF THE PARSE:
NMS==:1,,525252 ;FOR BIT-TYPEOUT MODE
NMS.CQ==:1 ;CONTROL-Q SEEN
NMS.CA==:2 ;CONTROL-A SEEN
IFN D10,[
NMS.DV==:10 ;DEVICE SEEN (AND TERMINATING :)
NMS.FN==:20 ;FILE NAME SEEN
NMS.DT==:40 ;. SEEN
NMS.XT==:100 ;EXTENSION SEEN
NMS.LB==:200 ;LEFT BRACKET SEEN
NMS.CM==:400 ;COMMA SEEN
NMS.RB==:1000 ;RIGHT BRACKET SEEN
NMS.ND==:10000 ;NON-OCTAL-DIGIT SEEN
NMS.ST==:20000 ;* SEEN
] ;END OF IFN D10
;;; CONTROL-A IS THE SAIL CONVENTION FOR QUOTING MANY CHARACTERS, BUT WE
;;; ADOPT IT FOR ALL ITS AND D10 SYSTEMS.
NMS6BF: POP P,A
POPI FXP,L.F6BT+1+1
NMS6B0: WTA [BAD NAMESTRING!]
NMS6BT: MOVEI TT,(A) ;DON'T ALLOW FIXNUMS AS NAMESTRINGS
LSH TT,-SEGLOG
MOVSI R,FX
TDNE R,ST(TT) ;A FIXNUM?
JRST NMS6B0 ;YES, ILLEGAL AS A NAMESTRING
PUSH P,A
PUSHN FXP,L.F6BT+1 ;FOUR WORDS FOR FINISHED NAMES, ONE FOR ACCUMULATION
MOVEI AR1,(FXP) ;AR1 HOLDS THE BYTE POINTER FOR ACCUMULATING A NAME
HRLI AR1,440600
PUSH FXP,PNBP ;PARSE THE PPN INTO PNBUF
SETZM PNBUF+LPNBUF-1
SETZ AR2A, ;ALL FLAGS INITIALLY OFF
HRROI R,NMS6B1 .SEE PR.PRC
PUSHJ P,PRINTA ;PRINTA WILL CALL NMS6B1 WITH SUCCESSIVE CHARS IN A
TLNE AR2A,NMS.CA+NMS.CQ
JRST NMS6BF ;ILLEGAL FOR A QUOTE TO BE HANGING
MOVEI A,40
PUSHJ P,(R) ;FORCE A SPACE THROUGH TO TERMINATE LAST COMPONENT
IFN D10,[
TLNE AR2A,NMS.LB
TLNE AR2A,NMS.RB
CAIA
JRST NMS6BF ;LOSE IF LEFT BRACKET SEEN BUT NO RIGHT BRACKET
] ;END OF IFN D10
JUMPE AR1,NMS6BF ;AR1 IS ZEROED IF THE PARSING CORUTINE DETECTS AN ERROR
POP P,A
POPI FXP,2
MOVE T,DFNWD ;CHANGE ANY ZERO COMPONENTS TO "*"
SKIPN -3(FXP)
MOVEM T,-3(FXP) ;DEVICE NAME
IT$ SKIPN -2(FXP)
IT$ MOVEM T,-2(FXP) ;SNAME
IFN D10,[
MOVE TT,-2(FXP) ;TREAT HALVES OF PPN SEPARATELY
TLNN TT,-1 ;A ZERO HALF BECOMES -1
TLO TT,-1
TRNN TT,-1
TRO TT,-1
MOVEM TT,-2(FXP)
] ;END OF IFN D10
SKIPN -1(FXP)
MOVEM T,-1(FXP) ;FILE NAME 1
SA$ MOVSI T,(SIXBIT \←←←\)
SKIPN (FXP)
MOVEM T,(FXP) ;FILE NAME 2/EXTENSION
POPJ P,
;;; THIS IS THE NAMESTRING PARSING COROUTINE
NMS6B1: JUMPE AR1,CPOPJ ;ERROR HAS BEEN DETECTED, FORGET THIS CHARACTER
CAIN A,↑A
JRST NMS6BQ
CAIN A,↑Q
TLCE AR2A,NMS.CQ ;FOR A CONTROL-Q, SET THE CONTROL-Q BIT
CAIA ;IF IT WAS ALREADY SET, IT'S A QUOTED ↑Q
POPJ P, ;OTHERWISE EXIT
CAIN A,40 ;SPACE?
TLZN AR2A,NMS.CQ ;YES, QUOTED?
SKIPA ;NO TO EITHER TEST
JRST NMS6B9 ;YES TO BOTH, IS QUOTED SPACE
CAILE A,40 ;SKIP OF CONTROL CHARACTER OR SPACE
JRST NMS6B7
;WE HAVE ENCOUNTERED A BREAK CHARACTER - DECIDE WHAT TO DO WITH COMPONENT
NMS6B8: SKIPN D,(AR1)
POPJ P, ;NO CHARACTERS ASSEMBLED YET
IT$ SKIPN -2(AR1) ;IF WE HAVE A FILE NAME 1, THIS MUST BE FN2
10$ TLNN AR2A,NMS.DT ;WE HAVE SEEN A DOT, THIS MUST BE THE EXTENSION
JRST NMS6B5 ;OTHERWISE THIS IS FILE NAME 1
IT$ SKIPE -1(AR1) ;LOSE IF WE ALREADY HAVE A FILE NAME 2
10$ TLNE AR2A,NMS.XT+NMS.LB+NMS.CM+NMS.RB
JRST NMS6BL ;LOSE IF EXTENSION AFTER BRACKETS OR OTHER ONE
IT$ MOVEM D,-1(AR1)
10$ HLLZM D,-1(AR1)
10$ TLO AR2A,NMS.XT ;SET FLAG: WE'VE SEEN THE EXTENSION
;COME HERE TO RESTORE THE BYTE POINTER FOR THE NEXT COMPONENT
NMS6B6: JUMPE AR1,CPOPJ ;IF AN ERROR HAS BEEN DETECTED, EXIT
HRLI AR1,440600
MOVE D,PNBP ;RESET THE PNBUF BYTE POINTER ALSO
MOVEM D,1(AR1)
10$ TLZ AR2A,NMS.ND+NMS.ST ;RESET NON-OCTAL-DIGIT AND STAR SEEN FLAGS
SETZM (AR1) ;CLEAR ACCUMULATION WORD
POPJ P,
;COME HERE FOR FILE NAME 1
NMS6B5:
10$ TLNE AR2A,NMS.FN+NMS.DT+NMS.XT+NMS.LB+NMS.CM+NMS.RB
10$ JRST NMS6BL ;LOSE IF TOO LATE FOR A FILE NAME
MOVEM D,-2(AR1) ;SAVE FILE NAME 1
JRST NMS6B6
;HERE WITH A NON-CONTROL NON-SPACE CHARACTER
NMS6B7: TLZN AR2A,NMS.CQ
TLNE AR1,NMS.CA
JRST NMS6B9 ;IF CHARACTER QUOTED (FOR ↑Q, FLAG IS RESET)
CAIN A,":
JRST NMS6DV ;: SIGNALS A DEVICE NAME
IT$ CAIN A,";
IT$ JRST NMS6SN ;; MEANS AN SNAME
IFN D10,[
CAIN A,".
JRST NMS6PD ;PERIOD MEANS TERMINATION OF FILE NAME
CAIN A,133
JRST NMS6LB ;LEFT BRACKET
CAIN A,",
JRST NMS6CM ;COMMA
CAIN A,135
JRST NMS6RB ;RIGHT BRACKET
CAIN A,"*
JRST NMS6ST ;STAR
] ;END OF IFN D10
;HERE TO DUMP A CHARACTER INTO THE ACCUMULATING COMPONENT
NMS6B9:
IFN D10,[
IFE SAIL,[
SKIPN CMUP
JRST .+4
SKIPE PNBUF+LPNBUF-1
TDZA AR1,AR1 ;ASSUME A COMPONENT THAT FILLS PNBUF IS A LOSER
IDPB A,1(AR1) ;STICK ASCII CHARACTER IN PNBUF
] ;END OF IFE SAIIL
CAIL A,"0
CAILE A,"7
TLO AR2A,NMS.ND ;SET FLAG IF NON-OCTAL-DIGIT
NMS6B4:
] ;END OF IFN D10
CAIGE A,140 ;CONVERT LOWER CASE TO UPPER,
SUBI A,40 ; AND ASCII TO SIXBIT
TLNE AR1,770000
IDPB A,AR1 ;DUMP CHARACTER INTO ACCUMULATING NAME
POPJ P,
NMS6BQ: TLCA AR2A,NMS.CA ;COMPLEMENT CONTROL-A FLAG
NMS6BL: SETZ AR1, ;ZEROING AR1 INDICATES A PARSE ERROR
POPJ P,
NMS6DV: SKIPE D,(AR1) ;ERROR IF : SEEN WITH NO PRECEDING COMPONENT
10$ ;ERROR AFTER OTHER CRUD
10$ TLNE AR2A,NMS.DV+NMS.FN+NMS.DT+NMS.XT+NMS.LB+NMS.CM+NMS.RB
10% SKIPE -4(AR1) ;ERROR IF DEVICE NAME ALREADY SEEN
JRST NMS6BL
MOVEM D,-4(AR1)
10$ TLO AR2A,NMS.DV
JRST NMS6B6 ;RESET BYTE POINTER
IFN ITS,[
NMS6SN: SKIPE D,(AR1) ;ERROR IF ; SEEN WITHOUT PRECEDING COMPONENT
SKIPE -3(AR1) ;ERROR IF WE ALREADY HAVE AN SNAME
JRST NMS6BL
MOVEM D,-3(AR1)
JRST NMS6B6 ;RESET BYTE POINTER
] ;END OF IFN ITS
IFN D10,[
NMS6PD: TLNE AR2A,NMS.DT+NMS.XT+NMS.LB+NMS.CM+NMS.RB
JRST NMS6BL
PUSHJ P,NMS6B8 ;DOT SEEN - SEE IF IT TERMINATED THE FILE NAME
TLO AR2A,NMS.DT ;SET PERIOD (DOT) FLAG
POPJ P,
NMS6LB: TLNE AR2A,NMS.LB+NMS.CM+NMS.RB
JRST NMS6BL ;LEFT BRACKET ERROR IF ALREADY A BRACKET
PUSHJ P,NMS6B8 ;DID WE TERMINATE THE FILE NAME OR EXTENSION?
TLO AR2A,NMS.LB ;SET LEFT BRACKET FLAG
NMS6L1:
SA% HRLI AR1,440300
SA$ HRLI AR1,440600
POPJ P,
NMS6CM: LDB D,[360600,,AR1]
CAIE D,44 ;ERROR IF NO CHARACTERS AFTER LEFT BRACKET
TLNN AR2A,NMS.LB ;ERROR IF NO LEFT BRACKET!
JRST NMS6BL
SA% TLNE AR2A,NMS.ND+NMS.CM+NMS.RB
SA$ TLNE AR2A,NMS.CM+NMS.RB
JRST NMS6BL ;ERROR IF NON-OCTAL-DIG, COMMA, OR RGT BRACKET
PUSHJ P,NMS6PP ;HACK HALF A PPN
JUMPE AR1,CPOPJ
HRLM D,-3(AR1)
TLO AR2A,NMS.CM ;SET COMMA FLAG
SETZM (AR1) ;CLEAR COLLECTING WORD
JRST NMS6L1 ;RESET BYTE POINTER
NMS6RB:
LDB D,[360600,,AR1]
SA% SKIPN CMUP
TLNE AR2A,NMS.CM ;MUST HAVE COMMA BEFORE RB IN NON-CMU
CAIN D,44 ;ERROR IF NO CHARS SINCE COMMA/LEFT BRACKET
JRST NMS6BL
TLNE AR2A,NMS.LB ;ERROR IF NO LEFT BRACKET
TLNE AR2A,NMS.RB ;ERROR IF RIGHT BRACKET ALREADY SEEN
JRST NMS6BL
IFE SAIL,[
SKIPN CMUP
JRST .+3
TLNN AR2A,NMS.CM ;FOR CMU, NO COMMA MEANS A CMU-STYLE PPN
JRST NMS6R1
] ;END OF IFE SAIL
PUSHJ P,NMS6PP ;FIGURE OUT HALF A PPN
JUMPE AR1,CPOPJ
HRRM D,-3(AR1)
NMS6R2: TLO AR2A,NMS.RB ;SET RIGHT BRACKET FLAG
JRST NMS6B6 ;RESET THE WORLD
IFE SAIL,[
NMS6R1: MOVEI D,PNBUF
CMUDEC D, ;CONVERT CMU-STYLE PPN TO A WORD
JRST NMS6BL ;LOSE LOSE
MOVEM D,-3(AR1) ;WIN - SAVE IT AWAY
JRST NMS6R2
] ;END OF IFE SAIL
NMS6ST: TLOE AR2A,NMS.ST ;SET STAR FLAG, SKIP IF NOT ALREADY SET
TLO AR2A,NMS.ND ;TWO STARS = A NON-DIGIT FOR PPN PURPOSES
JRST NMS6B4
NMS6PP:
SA% TLNE AR2A,NMS.ND
SA% SETZ AR1, ;NON-DIGIT IN PPN IS AN ERROR
HRRZI D,-1
TLNE AR2A,NMS.ST ;STAR => 777777
POPJ P,
LDB TT,[360600,,AR1]
CAIGE TT,22
SETZ AR1, ;MORE THAN SIX DIGITS LOSES
MOVNS TT
MOVE D,(AR1)
LSH D,(TT) ;RIGHT-JUSTIFY THE DIGITS
POPJ P,
] ;END OF IFN D10
] ;END OF IFN ITS+D10
;NMS6BB NMS6BA NMS6B0 NMS6BT JFN6BT JS%OUT JFN6BC JFN6BX JFN6BU RLJLUZ JFN6BY JFN6ER JFN6BA JFN6BB LFGB20 LFGB10
IFN D20,[
;;; THE STRATEGY HERE IS TO USE GTJFN TO PARSE THE STRING,
;;; THEN GET THE VARIOUS COMPONENTS BACK SINGLY WITH JFNS.
NMS6BB: MOVE A,AR1
NMS6BA: UNLOCKI
NMS6B0: %WTA (T)
NMS6BT: MOVEI T,[SIXBIT \FIXNUM ILLEGAL AS NAMESTRING\]
LOCKI ;LOCK OUT INTERRUPTS (BECAUSE OF JSYS'S)
MOVEI TT,(A) ;DON'T ALLOW FIXNUMS AS NAMESTRINGS
LSH TT,-SEGLOG
MOVSI R,FX
TDNE R,ST(TT) ;A FIXNUM?
JRST NMS6BA ;YES, ILLEGAL AS A NAMESTRING
PUSHJ P,PNBFMK ;STRING OUT CHARACTERS INTO PNBUF
MOVEI T,[SIXBIT \NAMESTRING TOO LONG!\]
JUMPE AR2A,NMS6BA ;LOSE IF DIDN'T FIT IN PNBUF
SETZ B,
IDPB B,AR1 ;TERMINATE STRING WITH A NULL (ZERO) BYTE
MOVE AR1,A ;SAVE ORIGINAL ARG IN CASE OF ERROR
MOVEI T,[SIXBIT \LONG GTJFN FAILED IN NAMESTRING!\]
MOVEI 1,LFGB20
SKIPE TENEXP
MOVEI 1,LFGB10
MOVE 2,PNBP
GTJFN ;GET A JFN FOR PARSED NAMESTRING
IOJRST 0,NMS6BB ; PRESUMABLY, THE COMPONENTS CANT BE "TOO LONG"
;R=0 => NMS6BT
TDZA R,R ;CONVERT JFN IN 1 TO "SIXBIT" ON FXP
JFN6BT: MOVEI R,1 ; SKIP ON FAILURE
POP FXP,F ;POP LOCKI WORD (COME IN LOCKED, EXIT UNLOCKED)
MOVE D,FXP .SEE TRUENAME
MOVE 2,1 ;"INDEXABLE FILE HANDLE" RETURNED BY GTJFN
SETZM PNBUF
MOVE T,[PNBUF,,PNBUF+1]
BLT T,PNBUF+LPNBUF-1
PUSHJ P,JFN6BB ;INITIALIZE PNBUF AN AC 1
.SEE JS%DEV JS%DIR JS%NAM JS%TYP JS%GEN
JS%OUT==:<.JSAOF*111111111111>
MOVSI 3,(JS%DEV&JS%OUT)
JFNS
ERJMP JFN6BY ;IF ERROR THEN TRY DEVST
MOVNI T,L.6DEV ;STACK UP DEVICE FIELD ON FXP, AND
PUSHJ P,JFN6BA ;ZERO PNBUF, SETUP 1
IRP LEN,,[L.6DIR,L.6FNM,L.6EXT]FLD,,[DIR,NAM,TYP]
MOVSI 3,(JS%!FLD&JS%OUT)
JFNS ;GET ASCIZ STRING FOR NEXT COMPONENT
MOVNI T,LEN ;STACK UP ONE FIELD ON FXP, AND
PUSHJ P,JFN6BA ;ZERO PNBUF, SETUP 1
TERMIN
MOVSI 3,(JS%GEN&JS%OUT)
JFNS ;GET ASCIZ STRING FOR VERSION NUMBER
SKIPN T,PNBUF
JRST JFN6BC
CAMN T,[ASCII \99999\]
CAME 1,[010700,,PNBUF]
JRST .+2
SETZ T,
JFN6BC: SKIPN T
MOVE T,DFNWD
PUSH FXP,T ;STACK UP THE FEW WORDS OF "VERSION"
REPEAT L.6VRS-1, PUSH FXP,PNBUF+1+.RPCNT
JFN6BX: PUSH FXP,F ;PUSH LOCKI WORD BACK
JUMPN R,JFN6BU ;NON-ZERO ==> ENTRY FROM TRUENAME ETC
MOVEI 1,(2)
RLJFN ;RELEASE THE JFN FOR NMS6BT
JSP T,RLJLUZ
JFN6BU: UNLKPOPJ
RLJLUZ: LERR [SIXBIT \A "RLJFN" HAS LOST SOMEWHERE!\]
JFN6BY: MOVEI T,[SIXBIT \DEVICE FAILURE IN NAMESTRING!\]
CAIE 2,.PRIIN ;PRIMARY INPUT?
CAIN 2,.PRIOU ;OR PRIMARY OUTPUT
SKIPA ;YES
JRST JFN6ER ;NOPE, FAIL
PUSH FXP,[ASCII/PRIMA/]
PUSH FXP,[ASCIZ/RY/]
PUSHN FXP,\<<L.6DEV-2>+L.6DIR+L.6FNM+L.6EXT+L.6VRS>
JRST JFN6BX
JFN6ER: MOVE FXP,D ;FLUSH ALL CRUD OFF FXPDL
PUSH FXP,F ;PUSH LOCKI WORD BACK
JUMPE R,NMS6BB ;FOR NMS6BT, GO GIVE WTA ERROR
AOS (P) ;FOR JFN6BT, SKIP ON FAILURE
UNLKPOPJ
;;; SUBROUTINE TO "ADD" ONE ITEM OF INFORMATION TO THE FORMING SIXBIT
JFN6BA: HRLS T
HRRI T,PNBUF
PUSH FXP,(T) ;STACK UP PNBUF, TO LIMIT GIVEN IN T
AOBJN T,.-1
JFN6BB: MOVE 1,PNBP ;STRING PTR FOR NEXT CALL TO JNFS
MOVNI T,LPNBUF
SKIPN PNBUF+LPNBUF(T)
POPJ P,
SETZM PNBUF+LPNBUF(T) ;CLEAR OUT PNBUF
AOJL T,.-3
POPJ P,
LFGB20: GJ%ACC+GJ%OFG+GJ%FLG 99999. ;BLOCK FOR LONG FORM OF GTJFN
.NULIO,, .NULIO
REPEAT,4 440700,, R70 ;DEFAULT STRINGS FOR dev:<dir>fnm.ext
REPEAT 3, 0
LFGB10: GJ%ACC+GJ%OFG+GJ%FLG 99999. ;BLOCK FOR LONG FORM OF GTJFN
.NULIO,, .NULIO
0 ;DEFAULT DEVICE?
REPEAT,4 0 ;DEFAULT STRINGS FOR <dir>fnm.ext
;REPEAT,4 440700,, R70 ;DEFAULT STRINGS FOR <dir>fnm.ext
REPEAT 3, 0
] ;END OF IFN D20
;IFL6BT FILSFA FIL6BT FIL6B0 FIL6DF FIL6B1 FIL6B2 NMH6BT QIOSAV LQIOSV
SUBTTL CONVERSION: ANY FILE SPEC => SIXBIT
;;; TAKE ARGUMENT IN A (MAY BE FILE ARRAY, NAMELIST,
;;; OR NAMESTRING), FIGURE IT OUT AND SOMEHOW RETURN
;;; "SIXBIT" FORMAT ON FXP.
;;; IFL6BT SAYS THAT T MEANS TTY INPUT, NOT TTY OUTPUT.
;;; SAVES C AR1 AR2A
IFL6BT: CAIN A,TRUTH
HRRZ A,V%TYI
JRST FIL6B0
IFN SFA,[
FILSFA: MOVEI B,QNAME ;EXTRACT THE "FILENAME" FROM THE SFA
SETZ C, ;NO ARGS
PUSHJ P,ISTCSH ;SHORT CALL, THEN USE RESULT AS NEW NAME
] ;END IFN SFA
FIL6BT: CAIN A,TRUTH
HRRZ A,V%TYO
FIL6B0: SKIPN A ;NIL => USE "DEFAULTF"
FIL6DF: HRRZ A,VDEFAULTF ;USE "DEFAULTF"
FIL6B1: MOVEI R,(A)
LSH R,-SEGLOG
SKIPGE R,ST(R) ;LIST => NAMELIST
JRST NMH6BT ; OR POSSIBLY "NAMESTRING" AS A USER HUNK
TLNN R,SA
JRST FIL6B2 ;NOT ARRAY => NAMESTRING
MOVE R,ASAR(A)
SFA$ TLNE R,AS.SFA ;AN SFA?
SFA$ JRST FILSFA ;YES, EXTRACT NAME FROM IT AND TRY AGAIN
TLNN R,AS<JOB+FIL>
JRST NMS6B0 ;INCOMPREHENSIBLE NAMESTRING
LOCKI ;FOR FILE, GOBBLE NAMES OUT OF FILE OBJECT
POP FXP,D ;POP LOCKI WORD
MOVE TT,TTSAR(A)
ADDI TT,F.DEV
HRLI TT,-L.F6BT
PUSH FXP,(TT) ;PUSH ALL WORDS OF FILE SPEC
AOBJN TT,.-1
PUSH FXP,D ;PUSH BACK LOCKI WORD
UNLKPOPJ ;UNLOCK AND EXIT
FIL6B2: JSP T,QIOSAV ;A SYMBOL IS A NAMESTRING.
JRST NMS6BT
NMH6BT: TLNN R,ST.HNK
JRST NML6BT
JSP T,QIOSAV
PUSHJ P,USRHNP ;find out if this is a user's hunk
JUMPE T,NMS6B0 ;LOSE IF HUNK, BUT NOT "EXTEND"
PUSH P,[NMS6BT]
PUSH P,A
PUSH P,[QNAMESTRING]
MOVNI T,2
XCT SENDI
QIOSAV: SAVE B C AR1 AR2A
PUSHJ P,(T)
RSTR AR2A AR1 C B
POPJ P,
LQIOSV==5 ; 5 THINGS - 4 AC'S AND ONE RET ADDR
.SEE 6BTNS8 ;RELIES ON AC C BEING SAVED IN CERTAIN SPOT
;MERGEF MRGF1 DMRGF DMRGF7 ZZZ ZZZ DMRGF5 DMRGF6 TNXUDI TNXUD0 TNXUD3 TNXUD6 TNXUD5 TNXUD2 TNXU9P TNXU9D TNXST9 TNXDIE IMRGF MRGF2 MRGF3 C6BTNML TRUNM9 TRUENAME TRUNMZ TRU6BT TRUNM2 TRUNM8 TRUNM0 SUREAD SUWRITE
SUBTTL MERGEF, TRUENAME, PROBEF AND MERGING ROUTINES
;;; MERGEF TAKES TWO FILE SPECS OF ANY KIND, MERGES THEM,
;;; AND RETURNS A NAMELIST OF THE RESULTING SPECS.
;;; AS A CROCK, (MERGEF X '*) SIMPLY MAKES THE SECOND FILE NAME BE *.
;;; (FOR D20, THE VERSION BECOMES NULL)
MERGEF: PUSH P,B
PUSHJ P,FIL6BT
POP P,A
CAIE A,Q.
JRST MRGF1
20% MOVE T,DFNWD
20% MOVEM T,(FXP)
20$ REPEAT L.6VRS, SETZM -.RPCNT(FXP)
JRST 6BTNML
MRGF1: PUSHJ P,FIL6BT
PUSHJ P,IMRGF
JRST 6BTNML
;;; IMRGF MERGES TWO SETS OF SPECS ON THE FIXNUM PDL.
;;; DMRGF MERGES A SET WITH THE DEFAULT FILE NAMES.
;;; DEC-10 PPN'S MERGE HALVES OF THE PPN SEPARATELY;
;;; AN UNSPECIFIED HALF IS -1 OR 0, *NOT* (SIXBIT \*\)!!
;;; SAVES F (SEE LOAD).
DMRGF:
;FIRST SEE WHETHER WE REALLY NEED TO CONVERT THE DEFAULTS TO "SIXBIT"
IFN ITS+D10,[
MOVE TT,DFNWD
REPEAT L.F6BT,[
IFN ITS\<.RPCNT-1>,[
CAME TT,.RPCNT-3(FXP) ;MUST MERGE IF FILE NAME IS ZERO OR *
SKIPN .RPCNT-3(FXP)
JRST DMRGF5
] ;END OF IFN ITS\<.RPCNT-1>
.ELSE,[
MOVE T,.RPCNT-3(FXP)
AOJE T,DMRGF7
SOJE T,DMRGF7
TRNE T,-1
TRNN T,-1
JRST DMRGF5
SKIPA
DMRGF7: SETZM .RPCNT-3(FXP)
] ;END OF .ELSE
] ;END OF REPEAT L.F6BT
] ;END OF IFN ITS+D10
IFN D20,[
MOVE TT,DFNWD
ZZZ==0
IRP FOO,,[L.6VRS,L.6EXT,L.6FNM,L.6DIR,L.6DEV]
ZZZ==ZZZ+FOO
CAME TT,-ZZZ+1(FXP)
SKIPN -ZZZ+1(FXP)
JRST DMRGF5
TERMIN
EXPUNGE ZZZ
] ;END OF IFN D20
POPJ P, ;MERGE WOULDN'T DO ANYTHING - FORGET IT
DMRGF5: PUSH FLP,F ;MERGE WITH DEFAULT FILE NAMES
HRRZ A,VDEFAULTF
PUSHJ P,FIL6BT
POP FLP,F
20% ;JRST IMRGF
IFN D20,[
PUSHJ P,IMRGF
SKIPE TT,-L.F6BT+L.6DEV+1(FXP)
CAMN TT,DFNWD
JRST .+2
POPJ P,
PUSH P,A
JSP T,TNXUDI
MOVEI D,-L.F6BT+L.6DEV+1(FXP)
HRLI D,-L.6DIR
MOVNI T,1 ;Initialize pointer into PNBUF
DMRGF6: AOJ T, ;Loop copying default directory onto FXP
MOVE R,PNBUF(T)
MOVEM R,(D)
JUMPE R,POPAJ ;Terminate loop when no end of string
AOBJN D,DMRGF6 ; or when no more room
JRST POPAJ
;;; CODE TO GET THE CONNECTED DIRECTORY NAME INTO THE PNBUF
TNXUDI: MOVE TT,[PNBUF,,PNBUF+1]
SETZM PNBUF ;CLEAR PNBUF
BLT TT,PNBUF+LPNBUF-1
LOCKI
GJINF ;GET JOB INFORMATION
MOVE 1,PNBP ;POINTER INTO PNBUF
DIRST ;GET EQUIVALENT ASCII STRING
JRST TNXU9D ;HMM...
MOVE 1,PNBP
TNXUD0: ILDB D,1 ;SCAN DEVICE-NAME PART
CAIN D,0
JRST TNXUD2 ;WIN! NOT PUNCTUATION ANYWAY!
CAIE D,↑V
CAIE D,":
JRST TNXUD0
ILDB D,1
CAIE D,"<
JRST TNXU9P
MOVE 2,PNBP
TNXUD3: ILDB D,1 ;TRANSFER DIRECTORY-NAME PART
CAIN D,0
JRST TNXU9P
CAIE D,↑V
JRST TNXUD5
IDPB D,2
ILDB D,1
TNXUD6: IDPB D,2
JRST TNXUD3
TNXUD5: CAIE D,">
JRST TNXUD6
MOVEI D,0
MOVEI A,9
IDPB D,2 ;PAD LIKE ASCIZ WITH AN EXTRA WORD OF 0'S
SOJG A,.-1
TNXUD2: SETZB 1,2
UNLOCKI
JRST (T)
TNXU9P: MOVE 1,[440700,,[ASCIZ \Punctuated string in PNBUF loses in TNXUDI\]]
JRST TNXDIE
TNXU9D: SKIPA 1,[440700,,[ASCIZ \DIRST loses in TNXUDI\]]
TNXST9: MOVE 1,[440700,,[ASCIZ \GETTAB loses in TNXSET\]]
TNXDIE: PSOUT
HALTF
] ;END OF IFN D20
IMRGF: MOVE TT,DFNWD ;MERGE TWO SETS OF NAMES ON FXP,
; "POPPING" THE TOP ONE OFF
IFN ITS+D10,[
MOVEI T,L.F6BT
MRGF2:
10$ MOVE R,D
POP FXP,D
10$ CAIE T,2 ;PPN IS PENULTIMATE FROB - DON'T COMPARE TO *
CAME TT,-3(FXP)
SKIPN -3(FXP)
MOVEM D,-3(FXP)
SOJG T,MRGF2
IFN D10,[
MOVE D,-2(FXP) ;R HAS PPN 2 - GET PPN 1 IN D
AOJE D,MRGF3
SOJE D,MRGF3
TLNN D,-1
HLLM R,-2(FXP)
TRNN D,-1
HRRM R,-2(FXP)
SKIPA
MRGF3: MOVEM R, -2(FXP) ;USED TO SETZM, BUT SEEMS WRONG - RPG
] ;END OF IFN D10
] ;END OF IFN ITS+D10
IFN D20,[
IRP FOO,,[VRS,EXT,FNM,DIR,DEV]
CAME TT,-L.6!FOO-L.F6BT+1(FXP)
SKIPN -L.6!FOO-L.F6BT+1(FXP)
JRST IM!FOO!1
POPI FXP,L.6!FOO
JRST IM!FOO!2
IM!FOO!1:
IFLE L.6!FOO-3, REPEAT L.6!FOO, POP FXP,-L.F6BT(FXP)
.ELSE,[
MOVEI T,L.6!FOO
POP FXP,-L.F6BT(FXP)
SOJG T,.-1
] ;END OF .ELSE
IM!FOO!2:
TERMIN
] ;END OF IFN D20
C6BTNML: POPJ P,6BTNML
;;; (TRUENAME <FILE>) RETURNS THE RESULT OF .RCHST ON ITS,
;;; I.E. THE REAL FILE NAMES AFTER TRANSLATIONS, LINKS, ETC.
;;; THE RESULT IS A NAMELIST.
TRUNM9: EXCH A,AR1
%WTA NFILE
;SUBR 1
TRUENAME: ;MUST SAVE AR1 - SEE PRNF6-PRNJ2
IFN SFA,[
CAIN A,TRUTH ;T?
HRRZ A,V%TYO ; Use TYO
EXCH AR1,A
JSP TT,XFOSP ;FILE OR SFA OR NOT?
JRST TRUNM9 ;NOT
JRST TRUNMZ ;FILE
EXCH A,AR1
JSP T,QIOSAV
MOVEI B,QTRUENAME
SETZ C, ;NO THIRD ARG
JRST ISTCSH ;SHORTY INTERNAL STREAM CALL
TRUNMZ: EXCH A,AR1
] ;END IFN SFA
PUSH P,C6BTNML
TRU6BT: CAIN A,TRUTH
HRRZ A,V%TYO
TRUNM2: EXCH AR1,A
LOCKI
JSP TT,XFILEP
JRST TRUNM8
EXCH A,AR1
HRRZ TT,TTSAR(A)
IFN ITS+D10,[
POP FXP,T ;POP THE LOCKI WORD
HRLI TT,-L.F6BT
PUSH FXP,F.RDEV(TT)
AOBJN TT,.-1
PUSH FXP,T ;PUSH LOCKI WORD BACK
UNLKPOPJ
] ;END OF ITS+D10
IFN D20,[
PUSH P,A
MOVE 1,F.JFN(TT)
PUSHJ P,JFN6BT ;GET "SIXBIT" ON FXP, AND UNLOCKI
JRST POPAJ ; ON SUCCESS, LEAVES "SIXBIT" FORMS ON FXPDL
POP P,A
JRST TRUNM0
] ;END OF IFN D20
TRUNM8: UNLOCKI
EXCH AR1,A
TRUNM0: %WTA NFILE ;NOT FILE
SFA$ MOVE T,C6BTNML ;IF NOT CALLED AS A SUBR, ONLY ACCEPT A FILE
SFA$ CAME T,(P)
JRST TRUNM2
SFA$ POPI P,1
SFA$ JRST TRUENAME
;;; (STATUS UREAD)
SUREAD: SKIPN A,VUREAD
POPJ P,
PUSHJ P,TRUENAME
HLRZ B,(A)
HRRZ A,(A)
HRRZ C,(A)
20$ HRRZ C,(C)
20$ HRRM C,(A)
HRRM B,(C)
POPJ P,
;;; (STATUS UWRITE)
SUWRITE: SKIPE A,VUWRITE
PUSHJ P,TRUENAME
JRST $CAR ;(CAR NIL) => NIL
;2MERGE PROBEF PROBEZ PROBF0 D10RFN PROBF6 PROBF8 PROBF9
;;; ROUTINE TO SET UP ARGS FOR TWO-ARGUMENT FILE FUNCTION.
;;; PUT TWO SETS OF FILE NAMES ON FXP. IF THE ARGS ARE
;;; X AND Y, THEN THE NAMES ON FXP ARE (MERGEF X NIL) AND
;;; (MERGEF Y (MERGEF X NIL)). THE FIRST ARG IS LEFT IN AR1.
2MERGE: PUSH P,A
PUSH P,B
PUSHJ P,FIL6BT
PUSHJ P,DMRGF
POP P,A
PUSHJ P,FIL6BT
MOVEI T,L.F6BT
PUSH FXP,-2*L.F6BT+1(FXP)
SOJG T,.-1
PUSHJ P,IMRGF ;NOW WE HAVE THE MERGED FILE SPECS
POP P,AR1 ;FIRST ARG
POPJ P,
;;; (PROBEF X) TRIES TO DECIDE WHETHER FILE X EXISTS.
;;; ON ITS AND D10 THIS IS DONE BY TRYING TO OPEN THE FILE.
;;; ON D20 WE USE THE GTJFN JSYS.
;;; RETURNS REAL FILE NAMES ON SUCCESS, NIL ON FAILURE.
PROBEF: ;SUBR 1
JSP T,QIOSAV
IFN SFA,[
JSP TT,AFOSP ;DO WE HAVE AN SFA?
JRST PROBEZ ;NOPE
JRST PROBEZ ;NOPE
MOVEI B,QPROBEF ;PROBEF OPERATION
SETZ C, ;NO ARGS
JRST ISTCSH ;SHORT CALL, RETURN RESULTS
PROBEZ: ] ;END IFN SFA
PUSHJ P,FIL6BT
PROBF0: PUSHJ P,DMRGF
IFN ITS,[
LOCKI
SETZ TT, ;ASSUME NO CONTROL ARG
MOVSI T,'USR ;CHECK FOR USR DEVICE
CAMN T,-3-1(FXP) ;MATCH?
TRO TT,10 ;SET BIT 1.4 (INSIST ON EXISTING JOB)
.CALL PROBF8
JRST PROBF6
.CALL PROBF9
.LOSE 1400
.CLOSE TMPC,
UNLOCKI
] ;END OF IFN ITS
IFN D10,[
LOCKI
MOVEI T,.IODMP ;I/O MODE (DUMP MODE)
MOVE TT,-3-1(FXP) ;DEVICE NAME
SETZ D,
OPEN TMPC,T
JRST PROBF6 ;NO SUCH FILE IF NO SUCH DEVICE!
IFE SAIL,[
MOVEI T,3 ;ONLY NEED 3 ARGS OF EXTENDED LOOKUP
MOVE D,-1-1(FXP) ;FILE NAME
HLLZ R,0-1(FXP) ;EXTENSION
MOVE TT,-2-1(FXP) ;PPN
] ;END IFE SAIL
IFN SAIL,[
MOVE T,-1-1(FXP) ;FILE NAME
HLLZ TT,0-1(FXP) ;EXTENSION
CAMN TT,[SIXBIT \←←←\]
SETZ TT,
SETZ D, ;UNUSED
MOVE R,-2-1(FXP) ;PPN
] ;END IFN SAIL
LOOKUP TMPC,T
JRST PROBF5 ;FILE DOESN'T EXIST
PUSHJ P,D10RFN ;READ BACK FILE NAMES
RELEASE TMPC, ;RELEASE TEMP CHANNEL
UNLOCKI
JRST 6BTNML ;FORM NAMELIST ON SUCCESS
D10RFN: MOVEI F,TMPC ;WE WILL GET DEVICE NAME FROM MONITOR
SA% DEVNAM F,
SA$ PNAME F,
SKIPA ;NONE SO RETAIN OLD NAME
MOVEM F,-3-1(FXP) ;ELSE STORE NEW DEVICE NAME
IFE SAIL,[
MOVEM TT,-2-1(FXP) ;STORE DATA AS RETURNED FROM EXTENDED LOOKUP
MOVEM D,-1-1(FXP)
HLLZM R,0-1(FXP)
] ;END IFE SAIL
IFN SAIL,[
MOVEM T,-1-1(FXP) ;SAIL HAS NO EXTENDED LOOKUP!!!!!
HLLZM TT,0-1(FXP) ; SO, WE CAN'T STORE PPN; JUST ASSUME IT IS
; WHAT WE GAVE IT
] ;END IFN SAIL
POPJ P,
] ;END OF IFN D10
IFN D20,[
PUSHJ P,6BTNSL ;GET NAMESTRING IN PNBUF
LOCKI
MOVSI 1,(GJ%OLD+GJ%ACC+GJ%SHT) .SEE .GJDEF
MOVE 2,PNBP
GTJFN ;GET A JFN (INSIST ON EXISTING FILE)
JRST UNLKFALSE
PUSH FLP,1 ;SAVE JFN OVER JFN6BT
PUSHJ P,JFN6BT ;CONVERT JFN TO "SIXBIT" FORMAT ON FXP
TDZA B,B
MOVEI B,TRUTH ;SKIPS ON FAILURE
POP FLP,1
RLJFN ;RELEASE THE JFN
JSP T,RLJLUZ
JUMPN B,FALSE
] ;END OF IFN D20
10% JRST 6BTNML
IFN ITS+D10,[
10$ PROBF5: RELEASE TMPC,
PROBF6: UNLOCKI
POPI FXP,L.F6BT ;POP "SIXBIT" CRUD FROM FXP
JRST FALSE ;RETURN FALSE ON FAILURE
] ;END OF IFN ITS+D10
IFN ITS,[
PROBF8: SETZ
SIXBIT \OPEN\ ;OPEN FILE (ASCII UNIT INPUT)
4000,,TT ;CONTROL ARG (DON'T CREATE BIT SET FOR USR)
1000,,TMPC ;CHANNEL #
,,-3-1(FXP) ;DEVICE NAME
,,-1-1(FXP) ;FILE NAME 1
,,0-1(FXP) ;FILE NAME 2
400000,,-2-1(FXP) ;SNAME
PROBF9: SETZ
SIXBIT \RFNAME\ ;READ REAL FILE NAMES
1000,,TMPC ;CHANNEL #
2000,,-3-1(FXP) ;DEVICE NAME
2000,,-1-1(FXP) ;FILE NAME 1
2000,,0-1(FXP) ;FILE NAME 2
402000,,-2-1(FXP) ;SNAME
] ;END OF IFN ITS
;$RENAMEF RENAM2 RENM2A RENAM3 RENAM1 RENAM0 RENM0A RENM0B RENM1A RENAM7 RENAM8 RENAM4 RENAM5 RNAM5A RENAM4 RENAM5 RENAM6 RENAM9 XCIOL RFNAME CNAMEF CNAME3 CNAME2 CNAME1 CNAMER CNAER1 CNAER2
SUBTTL RENAMEF FUNCTION, CNAMEF FUNCTION
;;; (RENAMEF X Y) RENAMES (MERGEF X (NAMELIST NIL)) TO BE
;;; (MERGEF Y (MERGEF X (NAMELIST NIL))).
;;; IF X IS AN OUTPUT FILE ARRAY, IT IS RENAMED AND CLOSED.
$RENAMEF:
PUSHJ P,2MERGE ;2MERGE LEAVES ARG 1 IN AR1
MOVEI A,(AR1)
HLLOS NOQUIT
JSP TT,XFILEP ;SKIP IF FILE ARRAY
JRST RENAM2
MOVE TT,TTSAR(A)
HLL AR1,TT
TLNE TT,TTS.CL
JRST RENM2A
JRST RENAM3
RENAM2: MOVEI AR1,NIL ;FILE TO BE RENAMED IS SPECIFIED BY NAMELIST
RENM2A: ; OR NAMESTRING, OR BY A CLOSED FILE ARRAY
IFN ITS,[
.CALL RENAM8 ;ORDINARY RENAME
IOJRST 0,RENAM6
JRST RENM1A
] ;END OF IFN ITS
IFN D10,[
MOVEI T,.IODMP ;TO RENAME A FILE, WE OPEN A DUMP MODE CHANNEL
MOVE TT,-7(FXP) ;GET DEVICE NAME
SETZ D,
OPEN TMPC,T ;OPEN CHANNEL
JRST RENAM4
MOVE T,-5(FXP) ;FILE NAME
HLLZ TT,-4(FXP) ;EXTENSION
SA$ CAMN TT,[SIXBIT \←←←\]
SA$ SETZ TT,
SETZ D,
MOVE R,-6(FXP) ;PPN
LOOKUP TMPC,T ;LOOK UP FILE
IOJRST 0,RENAM5
MOVE T,-1(FXP) ;NEW FILE NAME
HLLZ TT,(FXP) ;NEW EXTENSION
SETZ D,
MOVE R,-2(FXP) ;NEW PPN
RENAME TMPC,T ;RENAME FILE
IOJRST 0,RENAM5
RELEASE TMPC,
JUMPE AR1,RENM1A
JRST RENAM1
] ;END OF IFN D10
IFN D20,[
MOVEI T,L.F6BT
PUSH FXP,-2*L.F6BT+1(FXP) ;COPY OLD FILE NAMES TO TOP OF FXP
SOJG T,.-1
PUSHJ P,6BTNSL ;STRING OUT INTO PNBUF
PUSH P,A
MOVSI 1,(GJ%OLD+GJ%ACC+GJ%SHT)
MOVE 2,PNBP
GTJFN ;GET A JFN FOR OLD FILE NAMES
IOJRST 0,RENAM6
EXCH 1,(P) ;PUSH JFN, AND RESTORE ACC A
JRST RENAM0 ; AND JOIN GENERAL RENAME
] ;END OF IFN D20
RENAM3: ;First, de-allocate the channel number, and
IFN D10+ITS,[ ; close out bits in the file array
PUSHJ P,JCLOSE
IFN ITS,[
.CALL RENAM7 ;ITS RENAME! - MUST RENAME WHILE OPEN
IOJRST 0,RENAM6
] ;END OF IFN ITS
IFN D10,[
MOVE F,F.CHAN(TT) ;ttsar left in TT by JCLOSE
MOVE T,-1(FXP) ;D10 RENAME! - will construct instruction
HLLZ TT,(FXP)
SA$ CAMN TT,[SIXBIT \←←←\]
SA$ SETZ TT,
SETZ D,
MOVE R,-2(FXP)
LSH F,27
IOR F,[RENAME 0,T]
XCT F
IOJRST 0,RENAM6
] ;END OF IFN D10
RENAM1: MOVE TT,TTSAR(A)
MOVE D,-1(FXP) ;UPDATE THE FILE NAMES OF ARRAY
MOVEM D,F.FN1(TT)
10% MOVE R,(FXP)
10$ HLLZ R,(FXP)
MOVEM R,F.FN2(TT)
IFN D10,[
MOVEM D,F.RFN1(TT) ;TRUENAMES for D10, and CLOSE/RELEASE
MOVEM F,F.RFN2(TT)
MOVE R,-2(FXP)
MOVEM R,F.PPN(TT)
MOVEM R,F.RPPN(TT)
SA$ XOR F,[<CLOSE 0,0>#<RENAME 0,T>]
SA$ XCT F
SA$ XOR F,[<RELEASE 0,0>#<CLOSE 0,0>]
SA% XOR F,[<RELEASE 0,0>#<RENAME 0,T>]
XCT F
] ;END OF IFN D10
IFN ITS,[
.CALL RFNAME ;TRUENAMES for ITS and CLOSE file
.LOSE 1400
.CALL CLOSE9
.LOSE 1400
] ;END OF IFN ITS
] ;END OF IFN D10+ITS
IFN D20,[
PUSH P,F.JFN(TT)
PUSHJ P,JCLOSE
RENAM0: PUSHJ P,X6BTNSL
POP P,T
MOVSI 1,(GJ%FOU+GJ%NEW+GJ%ACC+GJ%SHT)
MOVE 2,PNBP
GTJFN
IOJRST 0,RENAM5
MOVEI 2,(1)
JUMPE AR1,RENM0A
TLNE AR1,TTS.CL ;THE "CLOSED" BIT WAS TRANSFERRED
JRST RENM0A
MOVEI 1,(T)
HRLI 1,(CO%NRJ)
CLOSF
IOJRST 0,RENAM4
RENM0A: MOVEI 1,(T)
RNAMF
IOJRST 0,RENAM4
MOVE 1,2
RLJFN ;? SHOULD GC DO THE RELEASE?
JSP T,RLJLUZ
JUMPE AR1,RENM0B
MOVE TT,TTSAR(AR1)
MOVEI T,F.DEV(TT)
HRLI T,-L.F6BT+1(FXP)
BLT T,F.DEV+L.F6BT-1(TT)
RENM0B: JUMPE AR1,RENM1A
] ;END OF IFN D20
POPI FXP,L.F6BT ;WHEN 1ST ARG IS FILE ARRAY, THEN RETURN THAT
SKIPA A,AR1
RENM1A: PUSHJ P,6BTNML ;OTHERWISE, RET VAL IS THE (NEW) NAMELIST
POPI FXP,L.F6BT
JRST CZECHI
IFN ITS,[
RENAM7: SETZ
SIXBIT \RENMWO\ ;RENAME WHILE OPEN
,,F.CHAN(TT) ;CHANNEL #
,,-1(FXP) ;NEW FILE NAME 1
400000,,(FXP) ;NEW FILE NAME 2
RENAM8: SETZ
SIXBIT \RENAME\ ;RENAME
,,-7(FXP) ;DEVICE NAME
,,-5(FXP) ;OLD FILE NAME 1
,,-4(FXP) ;OLD FILE NAME 2
,,-6(FXP) ;SNAME
,,-1(FXP) ;NEW FILE NAME 1
400000,,(FXP) ;NEW FILE NAME 2
] ;END OF IFN ITS
IFN D20,[
RENAM4: MOVE 1,2
RLJFN
JSP T,RLJLUZ
RENAM5: JUMPE AR1,RNAM5A
TLNE AR1,TTS.CL ;THE "CLOSED" BIT WAS TRANSFERRED
JRST RNAM5A
MOVEI 1,(T)
HRLI 1,(CO%NRJ)
CLOSF
IOJRST 0,RNAM5A
RNAM5A: MOVE 1,T
RLJFN
JSP T,RLJLUZ
] ;END OF IFN D20
IFN D10,[
RENAM4: SKIPA C,[NSDERR]
RENAM5: RELEASE TMPC,
] ;END OF IFN D10
RENAM6: PUSHJ P,CZECHI
RENAM9: PUSHJ P,6BTNML ;ERROR MESSAGE IS IN C
PUSHJ P,NCONS
PUSH P,A
PUSHJ P,6BTNML
POP P,B
PUSHJ P,CONS
MOVEI B,Q$RENAMEF
XCIOL: PUSHJ P,XCONS ;XCONS, THEN IOL
%IOL (C)
10$ NSDERR: SIXBIT \NO SUCH DEVICE!\
IFN ITS,[
RFNAME: SETZ
SIXBIT \RFNAME\ ;READ FILE NAMES
,,F.CHAN(TT) ;CHANNEL #
2000,,F.RDEV(TT) ;DEVICE NAME
2000,,F.RFN1(TT) ;FILE NAME 1
2000,,F.RFN2(TT) ;FILE NAME 2
402000,,F.RSNM(TT) ;SNAME
] ;END OF IFN ITS
CNAMEF: PUSHJ P,2MERGE ;LEAVES FIRST ARG IN AR1
JSP TT,XFILEP
JRST CNAME1
MOVE TT,TTSAR(AR1)
TLNN TT,TTS.CL ;FILE-ARRAY MUST BE CLOSED
JRST CNAME2
ADDI TT,L.F6BT
MOVEI F,L.F6BT ;COUNTER TO TRANSFER WORDS
CNAME3: MOVE T,(FXP)
MOVEM T,F.DEV-1(TT)
20$ POPI FXP,1
20% POP FXP,F.RDEV-1(TT)
SUBI TT,1
SOJG F,CNAME3
POPI FXP,L.F6BT
MOVEI A,(AR1)
POPJ P,
CNAME2: SKIPA C,[CNAER2]
CNAME1: MOVEI C,CNAER1
CNAMER: PUSHJ P,6BTNML ;ERROR MESSAGE IS IN C
PUSHJ P,NCONS
PUSH P,A
PUSHJ P,6BTNML
POP P,B
PUSHJ P,CONS
MOVEI B,QCNAMEF
PUSHJ P,XCONS ;XCONS, THEN IOL
%IOL (C)
CNAER1: SIXBIT/NOT FILE ARRAY!/
CNAER2: SIXBIT/FILE ARRAY NOT CLOSED!/
;$DELETEF $DELNS $DEL6 $DEL3 $DEL7 $DEL5 $DEL4 $DEL5 $DEL9 $DEL9A
SUBTTL DELETEF FUNCTION
;;; (DELETEF X) DELETES THE FILE X. (THAT SOUNDS LOGICAL...)
$DELETEF: ;SUBR 1
JSP TT,AFOSP ;SKIP IF FILE OR SFA
JRST $DEL3
IFN SFA,[
JRST $DELNS ;A FILE, NOT AN SFA
MOVEI B,Q$DELETE ;DELETE OPERATION
SETZ C, ;NO OP SPECIFIC ARG
JRST ISTCSH ;FAST INTERNAL SFA CALL
$DELNS: ] ;END IFN SFA
MOVE TT,TTSAR(A)
TLNE TT,TTS.CL ;SKIP IF OPEN
JRST $DEL3
HLLOS NOQUIT
IFN ITS,[
.CALL $DEL6 ;USE DELEWO FOR AN OPEN FILE
IOJRST 0,$DEL9A
PUSHJ P,JCLOSE
MOVE T,F.CHAN(TT) ;CHANNEL INTO T FOR CLOSE9
.CALL CLOSE9 ;ACTUALLY PERFORM THE CLOSE
.LOSE 1400
] ;END OF IFN ITS
IFN D10,[
MOVE F,F.CHAN(TT)
MOVE R,F.RPPN(TT)
LSH F,27
IOR F,[RENAME 0,T]
SETZB T,TT
XCT F
IOJRST 0,$DEL9A
PUSHJ P,JCLOSE
XOR F,[<CLOSE 0,40>#<RENAME 0,T>]
XCT F ;40 BIT MEANS AVOID SUPERSEDING A FILE
XOR F,[<RELEASE 0,0>#<CLOSE 0,40>]
XCT F
] ;END OF IFN D10
IFN D20,[
HRRZ 1,F.JFN(TT)
HRLI 1,(CO%NRJ) ;DON'T RELEASE JFN
PUSHJ P,JCLOSE
CLOSF
IOJRST 0,$DEL9A
TLZ 1,-1
DELF
IOJRST 0,$DEL9A
] ;END OF IFN D20
JRST CZECHI
IFN ITS,[
$DEL6: SETZ
SIXBIT \DELEWO\ ;DELETE WHILE OPEN
400000,,F.CHAN(TT) ;CHANNEL #
] ;END OF IFN ITS
$DEL3: PUSHJ P,FIL6BT
PUSHJ P,DMRGF ;MERGE ARG WITH DEFAULTS
IFN ITS,[
.CALL $DEL7
IOJRST 0,$DEL9
] ;END OF IFN ITS
IFN D10,[
MOVEI T,.IODMP
MOVE TT,-3(FXP) ;GET DEVICE NAME
SETZ D,
OPEN TMPC,T ;OPEN TEMP DUMP MODE CHANNEL
JRST $DEL4
MOVE T,-1(FXP) ;FILE NAME
HLLZ TT,(FXP) ;EXTENSION
SA$ CAMN TT,[SIXBIT \←←←\]
SA$ SETZ TT,
SETZ D,
MOVE R,-2(FXP) ;PPN
LOOKUP TMPC,T
IOJRST 0,$DEL5
SETZB T,TT ;ZERO FILE NAMES MEANS DELETE
MOVE R,-2(FXP) ;MUST SPECIFY CORRECT PPN
RENAME TMPC,T ;DELETE THE FILE
IOJRST 0,$DEL5
RELEASE TMPC, ;RELEASE TEMP CHANNEL
] ;END OF IFN D10
IFN D20,[
PUSHJ P,X6BTNSL ;GET NAMESTRING FOR FILE IN PNBUF
MOVE 1,[GJ%OLD+GJ%ACC+GJ%SHT+.GJLEG]
MOVE 2,PNBP
GTJFN ;GET A JFN FOR THE FILE
IOJRST 0,$DEL9
TLZ 1,-1
DELF ;DELETE IT
IOJRST 0,$DEL5
] ;END OF IFN D20
JRST 6BTNML
IFN ITS,[
$DEL7: SETZ
SIXBIT \DELETE\ ;DELETE FILE
,,-3(FXP) ;DEVICE NAME
,,-1(FXP) ;FILE NAME 1
,,0(FXP) ;FILE NAME 2
400000,,-2(FXP) ;SNAME
] ;END OF IFN ITS
IFN D20,[
$DEL5: RLJFN ;RELEASE THE TEMP JFN
JSP T,RLJLUZ
] ;END OF IFN D20
IFN D10,[
$DEL4: SKIPA C,[NSDERR]
$DEL5: RELEASE TMPC, ;RELEASE THE TEMP CHANNEL
] ;END OF IFN D10
$DEL9: PUSHJ P,6BTNML
$DEL9A: PUSHJ P,CZECHI
PUSHJ P,ACONS
MOVEI B,Q$DELETEF
JRST XCIOL
;CLOSE0 $CLOSE ICLOSE ICLOS6 CLOSE9 JCLOSE CLOSE4
SUBTTL CLOSE FUNCTION
;;; (CLOSE X) CLOSES THE FILE ARRAY X. THE ARRAY ITSELF
;;; IS *NOT* FLUSHED - MAY WANT TO RE-OPEN IT.
CLOSE0:
SFA% WTA [NOT FILE - CLOSE!]
SFA$ WTA [NOT FILE OR SFA - CLOSE!]
$CLOSE: JSP TT,AFOSP ;LEAVES OBJECT IN A
JRST CLOSE0 ;NOT A FILE
IFN SFA,[
JRST ICLOSE ;A FILE-ARRAY, DO INTERNAL STUFF
MOVEI B,Q$CLOSE ;CLOSE OPERATION
SETZ C, ;NO THIRD ARG
JRST ISTCSH ;SHORT INTERNAL SFA CALL
] ;END IFN SFA
ICLOSE: HLLOS NOQUIT
MOVE TT,TTSAR(A)
TLNE TT,TTS.CL
JRST ICLOS6
PUSHJ P,JCLOSE
IFN ITS,[
.CALL CLOSE9 ;CLOSE FILE
.LOSE 1400
] ;END OF IFN ITS
IFN D10,[
LSH T,27
SA$ IOR T,[CLOSE 0,0]
SA$ XCT T
SA$ XOR T,[<RELEASE 0,0>#<CLOSE 0,0>]
SA% IOR T,[RELEASE 0,0]
XCT T
] ;END OF IFN D10
IFN D20,[
HRRZ 1,F.JFN(TT)
CLOSF ;DOES AN IMPLICIT RLJFN
JFCL
] ;END OF IFN D20
SKIPA A,[TRUTH] ;RETURN T IF DID SOMETHING, ELSE NIL
ICLOS6: MOVEI A,NIL
JRST CZECHI
CLOSE9: SETZ
SIXBIT \CLOSE\ ;CLOSE CHANNEL
400000,,F.CHAN(TT) ;CHANNEL #
;;; FILE PRE-CLOSE CLEANUP - de-allocates channel and returns it in T,
;;; also returns TTSAR in TT
JCLOSE: MOVE TT,TTSAR(A)
TLNE TT,TTS.CL ;SKIP UNLESS ALREADY CLOSED
.LOSE
TLNE TT,TTS.IO ;SKIP UNLESS OUTPUT FILE ARRAY
PUSHJ P,IFORCE ;FORCE OUTPUT BUFFER
MOVE TT,TTSAR(A)
TLNE TT,TTS.TY
SKIPN T,FT.CNS(TT)
JRST CLOSE4
SETZM FT.CNS(TT) ;UNLINK TWO TTY'S WHICH
MOVE T,TTSAR(T) ; WERE TTYCONS'D TOGETHER
SETZM FT.CNS(T) ; IF ONE IS CLOSED
CLOSE4: HRRZ T,F.CHAN(TT)
MOVSI D,TTS.CL ;TURN ON "FILE CLOSED"
IORM D,TTSAR(A) ; BIT IN ARRAY SAR
SETZM CHNTB(T) ;CLEAR CHANNEL TABLE ENTRY
POPJ P,
;FORCE FORSF1 FORCE1 FORCE9 IFORCE IFORC1 FORCE6 IOTTTT SIOT
SUBTTL FORCE-OUTPUT
;;; (FORCE-OUTPUT X) FORCES THE OUTPUT BUFFER OF OUTPUT FILE ARRAY X.
FORCE:
IFN SFA,[
EXCH AR1,A
JSP TT,XFOSP ;AN SFA?
JRST FORSF1
JRST FORSF1
EXCH AR1,A
JSP T,QIOSAV
MOVEI B,QFORCE
SETZ C,
JRST ISTCSH
FORSF1: EXCH AR1,A
] ;END IFN SFA
PUSH P,AR1
MOVEI AR1,(A)
PUSHJ P,FORCE1
POP P,AR1
POPJ P,
FORCE1: PUSHJ P,OFILOK ;DOES A LOCKI
PUSHJ P,IFORCE
IFN ITS,[
.CALL FORCE9
CAIN D,%EBDDV ;"WRONG TYPE DEVICE" ERROR IS OKAY
CAIA
.VALUE ;ANY OTHER ERROR LOSES
] ;END OF IFN ITS
JRST UNLKTRUE
IFN ITS,[
FORCE9: SETZ
SIXBIT \FORCE\ ;FORCE OUTPUT BUFFER TO DEVICE
,,F.CHAN(TT) ;CHANNEL #
403000,,D ;ERROR #
] ;END OF IFN ITS
;;; INTERNAL OUTPUT BUFFER FORCE ROUTINE. EXPECTS USER
;;; INTERRUPTS OFF, AND FILE ARRAY TTSAR IN TT.
;;; CLOBBERS T, TT, D, AND F.
IFORCE: TLNE TT,TTS.CL
LERR [SIXBIT \CAN'T FORCE OUTPUT ON CLOSED FILE!\]
SKIPGE F,F.MODE(TT) .SEE FBT.CM ;CAN'T FORCE A CHARMODE FILE
POPJ P,
MOVE F,FB.BFL(TT)
IFN ITS,[
SUB F,FB.CNT(TT)
JUMPE F,IFORC1
MOVE D,F ;NUMBER OF BYTES TO TRANSFER
MOVE T,FB.IBP(TT) ;INITIAL BYTE POINTER
.CALL SIOT ;OUTPUT THE (PARTIAL) BUFFER
.LOSE 1400
IFORC1:
] ;END OF IFN ITS
IFN D10,[
MOVE T,F.CHAN(TT)
LSH T,27
IOR T,[OUT 0,0]
XCT T ;OUTPUT THE CURRENT BUFFER
CAIA
HALT ;? OUTPUT ERROR
] ;END OF IFN D10
IFN D20,[
SUB F,FB.CNT(TT)
JUMPE F,FORCE5
PUSHJ FXP,SAV3 ;PRESERVE ACS 1-3
MOVE 1,F.JFN(TT)
MOVE 2,FB.IBP(TT) ;INITIAL BYTE POINTER
MOVN 3,F ;NEGATIVE OF BYTE COUNT
SOUT ;OUTPUT (PARTIAL) BUFFER
ERJMP OIOERR
PUSHJ FXP,RST3
] ;END OF IFN D20
ADDM F,F.FPOS(TT) ;UPDATE FILE POSITION
IFN ITS+D20, FORCE5: JSP D,FORCE6 ;INITIALIZE POINTER AND COUNT
POPJ P,
IFN ITS+D20,[
FORCE6: MOVE T,FB.BFL(TT) ;ROUTINE TO INITIALIZE BYTE POINTER AND COUNT
MOVEM T,FB.CNT(TT)
MOVE T,FB.IBP(TT)
MOVEM T,FB.BP(TT)
JRST (D)
];END IFN ITS+D20
IFN ITS,[
IOTTTT: SETZ
SIXBIT \IOT\ ;I/O TRANSFER
,,F.CHAN(TT) ;CHANNEL #
400000,,T ;DATA POINTER (DATA?)
SIOT: SETZ
SIXBIT \SIOT\ ;STRING I/O TRANSFER
,,F.CHAN(TT) ;CHANNEL #
,,T ;BYTE POINTER
400000,,D ;BYTE COUNT
] ;END OF IFN ITS
;SFMD0 SFILEMODE SFMD0A SFMD1
SUBTTL STATUS FILEMODE
;;; (STATUS FILEMODE <FILE> ) RETURNS A LIST DESCRIBING
;;; THE FILE: NIL ==> FILE HAS BEEN CLOSED; OTHERWISE
;;; THE CAR OF THIS LIST IS A VALID OPTIONS
;;; LIST FOR THE OPEN FUNCTION. THE CDR OF THIS LIST
;;; CONTAINS INFORMATIVE ITEMS WHICH ARE NOT NECESSARILY
;;; USER-SETTABLE FEATURES ABOUT THE FILE.
;;; PRESENTLY SUCH GOODIES INCLUDE:
;;; RUBOUT AN OUTPUT TTY THAT CAN SELECTIVELY ERASE
;;; CURSORPOS AN OUTPUT TTY THAT CAN CURSORPOS WELL
;;; SAIL FOR AN OUTPUT TTY, HAS SAIL CHARACTER SET
;;; FILEPOS CAN FILEPOS CORRECTLY (RANDOM ACCESS)
;;; NON-FILE ARGUMENT CAUSES AN ERROR.
SFMD0: %WTA NFILE
SFILEMODE:
JSP TT,AFOSP ;MUST BE A FILE OR SFA
JRST SFMD0
IFN SFA,[
JRST SFMD0A ;IF FILE THEN HANDLE NORMALLY
SETZ C, ;IF WE GO TO THE SFA, NO THIRD ARG
MOVEI T,SO.MOD ;CAN THE SFA DO (STATUS FILEMODE)?
MOVEI TT,SR.WOM
TDNE T,@TTSAR(A) ;CAN IT DO THE OPERATION?
JRST ISTCAL ;YES, CALL THE SFA AND RETURN
MOVEI B,QWOP ;OTHERWISE, DO A WHICH-OPERATIONS
PUSHJ P,ISTCSH
PUSH P,A ;SAVE THE RESULTS
MOVEI A,QSFA
JSP T,%NCONS ;MAKE A LIST
POP P,B
JRST CONS ;RETURN ((SFA) {WHICH-OPERATIONS})
SFMD0A: ] ;END IFN SFA
LOCKI
MOVE TT,TTSAR(A) ;GET TTSAR BITS
TLNE TT,TTS.CL ;RETURN NIL IF THE FILE IS CLOSED
JRST UNLKFALSE
MOVE R,F.FLEN(TT) ;IF LENGTH > 0 THEN BLOCK MODE, ELSE SINGLE
MOVEI A,QBLOCK
SKIPGE F,F.MODE(TT) .SEE FBT.CM
MOVEI A,QSINGLE
UNLOCKI
PUSHJ P,NCONS
MOVEI B,QDSK ;TWO MAJOR TYPES - TTY OR DSK
TLNE TT,TTS.TY
MOVEI B,QTTY
PUSHJ P,XCONS
MOVEI B,Q$ASCII ;ASCII, IMAGE, OR FIXNUM
TLNE TT,TTS.IM
MOVEI B,QIMAGE
TLNN TT,TTS.IO
TLNN TT,TTS.TY
JRST SFMD1
TLNN F,FBT.FU ;INPUT TTY: FULL CHAR SET MEANS FIXNUM FILE
SFMD1: TLNE TT,TTS<BN>
MOVEI B,QFIXNUM
PUSHJ P,XCONS
MOVEI B,Q$IN ;INPUT, OUTPUT, OR APPEND MODE
TLNE TT,TTS<IO>
MOVEI B,Q$OUT
TLNE F,FBT<AP>
MOVEI B,QAPPEND
PUSHJ P,XCONS
MOVEI B,QECHO ;OTHER RANDOM MODE BITS - ECHO
TLNE F,FBT.EC
PUSHJ P,XCONS
MOVEI B,QSCROLL ;SCROLL
TLNE F,FBT.SC
PUSHJ P,XCONS
MOVEI C,(A)
SETZ A,
MOVEI B,QSAIL
TLNE F,FBT.SA ;SAIL MODE
PUSHJ P,XCONS
MOVEI B,QRUBOUT
TLNE F,FBT.SE ;RUBOUT-ABLE
PUSHJ P,XCONS
IFN USELESS*<ITS\D20>,[
MOVEI B,QCURSORPOS ;CURSORPOS-ABLE
TLNE F,FBT.CP
PUSHJ P,XCONS
] ;END OF IFN USELESS*<ITS\D20>
MOVEI B,QFILEPOS ;FILEPOS-ABLE
SKIPL R .SEE F.FLEN ;NEGATIVE => CAN'T FILEPOS
PUSHJ P,XCONS
MOVEI B,(C)
JRST XCONS
;LOAD LOAD5 LOAD6 LOAD7 LOAD7A LOAD8 LOAD1 ZZ LOAD3 LOAD2 LOAD4 $FASLP FASLP1 FASLP8 FASLP9 FASLP2 FASLP2 INCLUDE .INCLUD INCLU1 INCEOF
SUBTTL LOAD FUNCTION
;;; (LOAD FOO) LOADS THE FILE FOO. IT FIRST PROBEF'S TO
;;; ASCERTAIN THE EXISTENCE OF THE FILE, AND CHECKS THE FIRST
;;; WORD TO SEE WHETHER IT IS AN ASCII OR FASL FILE.
;;; IF NO SECOND FILE NAME IS GIVEN, "FASL" IS TRIED FIRST,
;;; AND THEN ">" IF NO FASL FILE EXISTS.
;;; IF A FASL FILE, IT GIVES THE FILE NAMES TO FASLOAD.
;;; IF AN ASCII FILE, IT IS OPENED, (INFILE ↑Q, *, +, -, INSTACK)
;;; BOUND TO (<THE FILE>, T, *, +, -, NIL), AND A READ-EVAL
;;; LOOP PERFORMED UNTIL END OF FILE OCCURS LEAVING INSTACK=NIL
;;; AND INFILE=T.
LOAD: JUMPE A,CPOPJ ;IF GIVEN NIL AS ARG, RETURN NIL
PUSHJ P,FIL6BT ;SUBR 1
MOVE F,-L.6EXT-L.6VRS+1(FXP)
PUSHJ P,DMRGF ;DMRGF SAVES F
LOCKI
CAME F,DFNWD
JUMPN F,LOAD3
MOVE TT,DFFNWD
MOVEM TT,<-L.6EXT-L.6VRS+1>-1(FXP) ;-1 for LOCKI word
IFN D20,[
MOVE TT,[ASCII \0\]
SKIPE <-L.6VRS+1>-1(FXP) ;VERSION NUMBER NULL?
CAMN T,<-L.6VRS+1>-1(FXP) ; OR EQUAL TO *? IF EITHER CASE,
MOVEM TT,<-L.6VRS+1>-1(FXP) ; THEN USE "0"
] ;END OF IFN D20
JSP T,FASLP1
JRST LOAD1 ;FILE NOT FOUND
JRST LOAD2 ;FASL FILE
LOAD5: UNLOCKI ;EXPR FILE FOUND
PUSHJ P,6BTNML
PUSH P,[LOAD6]
PUSH P,A
MOVNI T,1
JRST $EOPEN ;OPEN AS A FILE OBJECT
LOAD6: HRRZ B,VIPLUS ;WE WANT +, -, * TO WORK AS FOR TOP LEVEL,
HRRZ C,V. ; BUT NOT SCREW THE OUTSIDE WORLD
HRRZ AR1,VIDIFFERENCE
MOVEI AR2A,TRUTH
JSP T,SPECBIND
0 A,VINFILE
0 B,VIPLUS
0 C,V.
0 AR1,VIDIFFERENCE
0 AR2A,TAPRED
VINSTACK
JRST LOAD7A
LOAD7: PUSHJ P,TLEVAL ;USE THE EVAL PART OF THE TOP LEVEL
HRRZM A,V.
LOAD7A: PUSHJ P,TLREAD ;USE THE READ PART OF THE TOP LEVEL
JRST LOAD7
LOAD8: HRRZ B,VINFILE ;EOF TESTING
SKIPN VINSTACK
CAIE B,TRUTH
JRST LOAD7A
PUSHJ P,UNBIND
JRST TRUE
LOAD1:
IFN ITS+D10,[
IT$ MOVSI TT,(SIXBIT \>\) ;OTHERWISE TRY ">"
SA$ MOVSI TT,(SIXBIT \←←←\)
SA% 10$ MOVSI TT,(SIXBIT \LSP\) ;FOR D10, "LSP"
MOVEM TT,-1(FXP) ;REMEMBER ADJUSTMENT FOR LOCKI WORD
] ;END OF IFN ITS+D10
IFN D20,[
MOVE TT,[ASCIZ \LSP\]
ZZ==<-L.6EXT-L.6VRS+1>-1 ;REMEMBER: ADJUSTMENT FOR LOCKI WORD
MOVEM TT,ZZ(FXP)
SETZM ZZ+1(FXP)
MOVEI T,ZZ+2(FXP)
HRLI T,-1(T)
BLT T,ZZ+L.6EXT-1(FXP) ;ZERO OUT REMAINING WORDS
] ;END OF IFN D20
LOAD3: MOVEI A,QLOAD
JSP T,FASLP1
JRST LOAD4 ;LOSE COMPLETELY
JRST LOAD2 ;FASL FILE
JRST LOAD5 ;EXPR CODE
LOAD2: UNLOCKI ;FASL FILE - GO FASLOAD IT
PUSHJ P,6BTNML
HRRZ B,VDEFAULTF
JSP T,SPECBIND
0 B,VDEFAULTF ;DON'T LET FASLOAD CLOBBER DEFAULTF
PUSHJ P,FASLOAD
JRST UNBIND
LOAD4: IOJRST 0,.+1
PUSH P,A
UNLOCKI
PUSHJ P,6BTNML ;LOSEY LOSEY
PUSHJ P,NCONS
POP P,B
JRST XCIOL
;;; (FASLP <FILE>) TELLS WHETHER THE FILE IS A FASL FILE.
;;; ERROR IF FILE DOES NOT EXIST.
$FASLP: PUSHJ P,FIL6BT
PUSHJ P,DMRGF
MOVEI A,Q$FASLP
LOCKI
JSP T,FASLP1
JRST LOAD4
SKIPA A,[TRUTH]
MOVEI A,NIL
UNLOCKI
POPI FXP,L.F6BT ;POP CRUD OFF STACK
POPJ P,
;;; ROUTINE TO TEST A FILE FOR FASL-NESS.
;;; WARNING! MUST SAVE "A" - SEE "LOAD:", "LOAD3:" AND "$FASLP:"
;;; JSP T,FASLP1
;;; JRST NOTFOUND ;FILE NOT FOUND, OR OTHER ERROR
;;; JRST FASL ;FILE IS A FASL FILE
;;; ... ;FILE IS NOT A FASL FILE
;;; FXP MUST HOLD THE "SIXBIT" FILE NAMES, WITH A LOCKI WORD ABOVE THEM.
;;; USER INTERRUPTS MUST BE LOCKED OUT.
FASLP1:
IFN ITS,[
.CALL FASLP9 ;OPEN FILE ON TEMP CHANNEL
JRST (T)
.CALL FASLP8 ;RESTORE REFERENCE DATE
JFCL ; (ONLY WORKS FOR DISK CHANNELS - IGNORE FAILURE)
HRROI D,TT
.IOT TMPC,D ;READ FIRST WORD
.CLOSE TMPC,
JUMPL D,2(T) ;NOT A FASL FILE IF ZERO-LENGTH
TRZ TT,1
CAMN TT,[SIXBIT \*FASL*\]
JRST 1(T) ;FASL FILE IF FIRST WORD CHECKS
JRST 2(T)
FASLP8: SETZ
SIXBIT \RESRDT\ ;RESTORE REFERENCE DATE
401000,,TMPC ;CHANNEL #
FASLP9: SETZ
SIXBIT \OPEN\ ;OPEN FILE
5000,,6 ;IMAGE BLOCK INPUT
1000,,TMPC ;CHANNEL NUMBER
,,-4(FXP) ;DEVICE NAME
,,-2(FXP) ;FILE NAME 1
,,-1(FXP) ;FILE NAME 2
400000,,-3(FXP) ;SNAME
] ;END OF IFN ITS
IFN D10,[
PUSH P,T
MOVEI T,.IODMP
MOVE TT,-4(FXP)
SETZ D,
OPEN TMPC,T ;OPEN TEMP CHANNEL TO FILE
POPJ P,
MOVE T,-2(FXP) ;FILE NAME
HLLZ TT,-1(FXP) ;EXTENSION
SA$ CAMN TT,[SIXBIT \←←←\]
SA$ SETZ TT,
SETZ D,
MOVE R,-3(FXP) ;PPN
LOOKUP TMPC,T ;LOOK UP FILE NAMES
JRST FASLP2
SETZB TT,R
PUSH FXP,NIL ;USE A WORD ON FXP AS D10 CAN'T DO I/O TO AC'S
HRROI D,-1(FXP) ;D AND R ARE THE DUMP MODE COMMAND LIST
INPUT TMPC,D ;GET FIRST WORD OF FILE
SA% CLOSE TMPC,CL.ACS ;DON'T UPDATE ACCESS DATE
RELEASE TMPC,
POP FXP,TT ;GET THE WORD READ FROM THE FILE
POP P,R
SA$ WARN [RESTORE REF DATE FOR SAIL PROBEF?]
;FALLS THROUGH
] ;END OF IFN D10
IFN D20,[
PUSH FLP,(FXP) ;SAVE THE LOCKI WORD, BUT OFF FXP
POPI FXP,1
PUSH P,T
PUSHJ P,X6BTNS ;GET NAMESTRING IN PNBUF
PUSH FXP,(FLP) ;PUT LOCKI WORD BACK IN ITS PLACE
POPI FLP,1
POP P,R
PUSH P,A
PUSH P,B
MOVSI 1,(GJ%OLD+GJ%ACC+GJ%SHT) .SEE .GJDEF
MOVE 2,PNBP
GTJFN ;GET A JFN FOR THE FILE NAME
JRST RSTR2 ;JUST EXITS THRU R, RESTORING A AND B
MOVE 2,[440000,,OF%RD+OF%PDT] .SEE OF%BSZ OF%MOD
SETZ TT,
OPENF ;OPEN FILE, PRESERVING ACCESS DATE
JRST FASLP2
BIN ;GET ONE 36.-BIT BYTE
MOVE TT,2
CLOSF ;CLOSE THE FILE
JFCL ;IGNORE ERROR RETURN
SKIPA ;JFN HAS BEEN RELEASED BY THE CLOSE
FASLP2: RLJFN ;RELEASE THE JFN
JFCL
POP P,B
POP P,A
] ;END OF IFN D20
IFN D10+D20,[
TRZ TT,1
CAMN TT,[SIXBIT \*FASL*\]
JRST 1(R) ;FASL FILE IF FIRST WORD CHECKS
JRST 2(R)
] ;END OF IFN D10+D20
IFN D10,[
FASLP2: RELEASE TMPC,
POPJ P,
]
;;; (DEFUN INCLUDE FEXPR (X)
;;; ((LAMBDA (F)
;;; (EOFFN F '+INTERNAL-INCLUDE-EOFFN)
;;; (INPUSH F))
;;; (OPEN (CAR X))))
INCLUDE:
HLRZ A,(A) ;FSUBR
.INCLUD: ;SUBR
PUSH P,[INCLU1]
PUSH P,A
MOVNI T,1
JRST $EOPEN
INCLU1: MOVEI TT,FI.EOF
MOVEI B,QINCEOF
MOVEM B,@TTSAR(A)
JRST INPUSH
INCEOF==:FALSE ;INCLUDE'S EOF FUNCTION - SUBR 2
;
SUBTTL OPEN FUNCTION (INCLUDING SAIL EOPEN)
;;; (OPEN <FILE> <MODELIST>) OPENS A FILE AND RETURNS A
;;; CORRESPONDING FILE OBJECT. IT IS ACTUALLY AN LSUBR
;;; OF ZERO TO TWO ARGUMENTS. THE <FILE> DEFAULTS TO THE
;;; CURRENT DEFAULT FILE NAMES. THE <MODELIST> DEFAULTS
;;; TO NIL.
;;; IF <FILE> IS A NAMELIST OR NAMESTRING, A NEW FILE ARRAY
;;; IS CREATED. IF <FILE> IS A FILE ARRAY ALREADY, IT IS
;;; CLOSED AND RE-OPENED IN THE SPECIFIED MODE; ITS FORMER
;;; MODES SERVE AS THE DEFAULTS FOR THE <MODELIST>.
;;; THE <MODELIST> DETERMINES A LARGE NUMBER OF ATTRIBUTES
;;; FOR OPENING THE FILE. FOR EACH ATTRIBUTE THERE ARE
;;; TWO OR MORE MUTUALLY EXCLUSIVE VALUES WHICH MAY BE
;;; SPECIFIED AS FOLLOWS. VALUES MARKED BY A * ARE THOSE
;;; USED AS DEFAULTS WHEN THE <FILE> IS A NAMELIST OR
;;; NAMESTRING. IF THE <MODELIST> IS AN ATOM, IT IS THE
;;; SAME AS SPECIFYING THE LIST OF THAT ONE ATOM.
;;; DIRECTION:
;;; * IN INPUT FILE
;;; * READ SAME AS "IN"
;;; OUT OUTPUT FILE
;;; PRINT SAME AS "OUT"
;;; APPEND OUTPUT, APPENDED TO EXISTING FILE
;;; DATA MODE:
;;; * ASCII FILE IS A STREAM OF ASCII CHARACTERS.
;;; SYSTEM-DEPENDENT TRANSFORMATIONS MAY
;;; OCCUR, SUCH AS SUPPLYING LF AFTER CR,
;;; OR BEING CAREFUL WITH OUTPUT OF ↑P,
;;; OR MULTICS ESCAPE CONVENTIONS.
;;; FIXNUM FILE IS A STREAM OF FIXNUMS. THIS
;;; IS FOR DEALING WITH FILES THOUGHT OF
;;; AS "BINARY" RATHER THAN "CHARACTER".
;;; FOR TTY'S, THIS IS INTERPRETED AS
;;; "MORE-THAN-ASCII" OR "FULL CHARACTER
;;; SET" MODE, WHICH READS 9 BITS AT SAIL
;;; AND 12. ON ITS.
;;; IMAGE FILE IS A STREAM OF ASCII CHARACTERS.
;;; ABSOLUTELY NO TRANSFORMATIONS ARE MADE.
;;; DEVICE TYPE:
;;; * DSK STANDARD KIND OF FILE.
;;; CLA (ITS ONLY) LIKE DSK, BUT REQUIRES BLOCK MODE,
;;; AND GOBBLES THE FIRST TWO WORDS, INSTALLING
;;; THEM IN THE TRUENAME. USEFUL PRIMARILY FOR
;;; A CLI-MESSAGE INTERRUPT FUNCTION.
;;; TTY CONSOLE. IN PARTICULAR, ONLY TTY INPUT
;;; FILES HAVE INTERRUPT CHARACTER FUNCTIONS
;;; ASSOCIATED WITH THEM.
;;; BUFFERING MODE:
;;; * BLOCK DATA IS BUFFERED.
;;; SINGLE DATA IS UNBUFFERED.
;;; PRINTING AREA:
;;; ECHO (ITS ONLY) OPEN TTY IN ECHO AREA
;;; SOME OF THESE VALUES ARE OF COURSE SYSTEM-DEPENDENT.
;;; YOUR LOCAL LISP SYSTEM WILL ATTEMPT TO DO THE RIGHT THING,
;;; HOWEVER, IN ANY CASE.
;;; IF THE OPTIONS LIST IS INVALID IN ANY WAY, OPEN MAY EITHER
;;; GIVE A WRNG-TYPE-ARGS ERROR, OR BLITHELY ASSUME A CORRECTED
;;; VALUE FOR AN ATTRIBUTE. IN GENERAL, ERRORS SHOULD OCCUR
;;; ONLY FOR TRULY CONFLICTING SPECIFICATIONS. ON THE OTHER
;;; HAND, SPECIFYING BLOCK MODE FOR A DEVICE THAT THE SYSTEM
;;; WANTS TO HANDLE ONLY IN CHARACTER MODE WILL JUST GO AHEAD
;;; AND USE CHARACTER MODE. IN GENERAL, ONE SHOULD USE
;;; (STATUS FILEMODE) TO SEE HOW THE FILE WAS ACTUALLY OPENED.
;$OPEN $OPNNS OPEN0J OPEN1A OPEN1C OPN1F1 OPEN1F OPEN1G OPEN1K OPEN1H OPEN1Z
SA% $EOPEN:
$OPEN: MOVEI D,Q$OPEN ;LSUBR (0 . 2)
CAMGE T,XC-2
JRST WNALOSE
SETZB A,B ;BOTH ARGUMENTS DEFAULT TO NIL
CAMN T,XC-2
POP P,B
SKIPE T
POP P,A
IFN SFA,[
JSP TT,AFOSP ;WERE WE HANDED AN SFA AS FIRST ARG?
JFCL
JRST $OPNNS ;NOPE, CONTINUE AS USUAL
MOVEI C,(B) ;ARG TO SFA IS THE LIST GIVEN TO OPEN
MOVEI B,Q$OPEN ;OPERATION
JRST ISTCSH ;SHORT INTERNAL CALL
$OPNNS: ] ;END IFN SFA
;THE TWO ARGUMENTS ARE NOW IN A AND B.
;WE NOW PARSE THE OPTIONS LIST. F WILL HOLD OPTION VALUES,
; AND D WILL INDICATE WHICH WERE SPECIFIED EXPLICITLY BY THE USER.
OPEN0J: PUSH P,T ;SAVE NUMBER OF ARGS ON P (NOT FXP!)
SETZB D,F
JSP TT,AFILEP ;IS THE FIRST ARGUMENT A FILE OBJECT?
JRST OPEN1A
MOVEI TT,F.MODE
MOVE F,@TTSAR(A) ;IF SO, USE ITS MODE AS THE DEFAULTS
IFN ITS\D20,[
SKIPE B ;MAKE CHUCK RICH HAPPY - DON'T LET "ECHO" CARRY
TLZ F,FBT.EC+FBT.CP+FBT.SC ; OVER IF A NON-NULL OPTIONS LIST WAS GIVEN
] ;END OF ITS\D20
OPEN1A: JUMPE B,OPEN1Y ;JUMP OUT IF NO OPTIONS SUPPLIED
MOVEI C,(B)
SKOTTN B,LS
JRST OPEN1C
MOVSI AR2A,(B) ;IF A SINGLE, ATOMIC OPTION WAS GIVEN, AR2A
MOVEI C,AR2A ; IS A FAKE CONS CELL SO IT LOOKS LIKE A LIST
OPEN1C: JUMPE C,OPEN1L ;JUMP OUT IF LAST OPTION PROCESSED
HLRZ AR1,(C)
OPN1F1: JUMPE AR1,OPEN1G ;IGNORE NIL AS A KEYWORD
MOVSI TT,-LOPMDS
OPEN1F: HRRZ R,OPMDS(TT) ;COMPARE GIVEN OPTION AGAINST VALID ONES
CAIN AR1,(R)
JRST OPEN1K ;JUMP ON MATCH
AOBJN TT,OPEN1F
EXCH A,AR1 ;ERRONEOUS KEYWORD INTO AR1
WTA [IS ILLEGAL KEYWORD - OPEN!]
EXCH A,AR1
OPEN1G: HRRZ C,(C) ;CDR DOWN LIST UNTIL ALL DONE
JRST OPEN1C
OPEN1K: TDNN D,OPMDS(TT) ;SEE IF THERE IS A CONFLICT
JRST OPEN1Z
OPEN1H: EXCH A,B
WTA [ILLEGAL OPTIONS LIST - OPEN!]
EXCH A,B
JRST OPEN0J
OPEN1Z: HLRZ R,OPMDS(TT)
TLO D,(R)
TLZ F,(R)
TRZ F,(R)
IOR F,OPBITS(TT)
JRST OPEN1G
;OPMDS LOPMDS OPBITS
;;; LEFT HALF IS SET OF MODE BITS WHICH THE OPTION IN THE RIGHT
;;; HALF WILL CONFLICT WITH IF ANY ONE ELSE SELECTS THEM.
OPMDS: FBT.AP+1,,Q$IN
FBT.AP+1,,QOREAD
FBT.AP+1,,Q$OUT
FBT.AP+1,,Q%PRINT
FBT.AP+1,,QAPPEND
000014,,Q$ASCII
000014,,QFIXNUM
000014,,QIMAGE
000002,,QDSK
IT$ FBT.CA+2,,QCLA
000002,,QTTY
FBT.CM,,QBLOCK
FBT.CM,,QSINGLE
0,,QNODEFAULT
IT$ FBT.EC,,QECHO
IT$ FBT.SC,,QSCROLL
LOPMDS==.-OPMDS
;;; MODE BITS ACTUALLY TO BE SET FOR AN OPTION IN THE OPMDS TABLE.
OPBITS: 0 ;IN
0 ;READ
1 ;OUT
1 ;PRINT
FBT.AP,,1 ;APPEND
0 ;ASCII
4 ;FIXNUM
10 ;IMAGE
0 ;DSK
IT$ FBT.CA,,0 ;CLA
2 ;TTY
0 ;BLOCK
FBT.CM,, ;SINGLE
FBT.ND,, ;NODEFAULT
IT$ FBT.EC,, ;ECHO
IT$ FBT.SC,, ;SCROLL
TBLCHK OPBITS,LOPMDS
;OPEN1L OPEN1Y OPEN1S OPEN1M OPEN1N OPEN1P OPEN1R OPEN1Q
;STATE OF THE WORLD:
; FIRST ARG TO OPEN IN A
; SECOND ARG IN B
; D CONTAINS BITS FOR ACTUALLY SPECIFIED OPTIONS IN LEFT HALF
; F CONTAINS BITS FOR OPTIONS
.SEE FBT.CM ;AND FRIENDS
; 1.4-1.3 0 => ASCII, 1 => FIXNUM, 2 => IMAGE
; 1.2 0 => DSK, 1 => TTY
; 1.1 0 => IN, 1 => OUT
; BITS 1.4-1.1 ARE USED TO INDEX VARIOUS TABLES LATER
; ACTUAL NUMBER OF ARGS ON P
;WE NOW EMBARK ON DEFAULTING AND MAKING CONSISTENT THE VARIOUS MODES
OPEN1L: TLNE D,FBT.CM ;SKIP IF SINGLE VS. BLOCK WAS UNSPECIFIED
JRST OPEN1Y
TRNE F,2 ;SKIP UNLESS TTY
TLO F,FBT.CM ;FOR TTY, DEFAULT TO SINGLE, NOT BLOCK, MODE
OPEN1Y:
IFN ITS\D20,[
TRC F,3
TRCE F,3
TLZ F,FBT.EC+FBT.SC ;ECHO AND SCROLL MEANINGFUL ONLY FOR TTY OUTPUT
] ;END OF ITS\D20
TRNN F,2 ;SKIP IF TTY
JRST OPEN1S
TLZ F,FBT.AP ;CAN'T APPEND TO A TTY
TRNN F,1
TLO F,FBT.CM ;CAN'T DO BLOCK TTY INPUT
TRNE F,4 ;FIXNUM TTY I/O USES FULL CHAR SET
TLO F,FBT.FU
;NOW WORRY ABOUT FILE NAMES AND ALLOCATING A FILE OBJECT
OPEN1S: PUSH P,A
PUSH P,B
PUSH FXP,F
CAIE A,TRUTH ;T MEANS TTY FILE ARRAY...
JRST OPEN1M
TRNN F,1
SKIPA A,V%TYI ;TTY INPUT IF MODE BITS SAY INPUT
HRRZ A,V%TYO ; AND OUTPUT OTHERWISE
OPEN1M: PUSH P,A
PUSHJ P,FIL6BT ;GET FILE NAME SPECS
MOVE F,-L.F6BT(FXP) ;GET MODE BITS
TLZN F,FBT.ND ;MERGE WITH DEFAULT NAMES?
PUSHJ P,DMRGF ;MERGE IN DEFAULT NAMES (SAVES F)
HRLZI F,FBT.ND
ANDCAM F,-L.F6BT(FXP) ;TURN OFF FBT.ND BIT IN SAVED FLAGS
MOVE A,(P) ;GET (POSSIBLY MUNGED FOR T) FIRST ARG
JSP TT,AFILEP ;SKIP IF WE GOT A REAL LIVE SAR
JRST OPEN1N
PUSHJ P,ICLOSE ;CLOSE IT IF NECESSARY
;;; WARN [SHOULD WE RELEASE THE JFN AT THIS POINT?]
MOVE A,(P)
MOVE D,-3(P) ;IF ONLY ONE ARG TO OPEN, AND
AOJE D,OPEN1Q ; THAT A SAR, RE-USE THE ARRAY
MOVE F,-L.F6BT(FXP)
MOVEI TT,F.MODE
XOR F,@TTSAR(A)
TDNE F,[FBT.CM,,17]
JRST OPEN1P
PUSHJ P,OPNCLR ;IF TWO ARGS, BUT SAME MODE,
JRST OPEN1Q ; CLEAR ARRAY, THAN RE-USE
;WE MUST ALLOCATE A FRESH ARRAY
OPEN1N: MOVSI A,-1 ;ARRANGE TO GET A FRESH SAR
;WE HAVE A SAR, BUT MUST ALLOCATE A NEW ARRAY BODY
OPEN1P: MOVE F,-L.F6BT(FXP) ;GET MODE BITS AGAIN
;DETERMINE SIZE OF NEW ARRAY
IFN ITS+D20,[
HLRZ TT,OPEN9A(F) ;FOR ITS AND D20, DESIRABLE SIZES ARE IN A TABLE
SKIPGE F .SEE FBT.CM
HRRZ TT,OPEN9A(F)
] ;END OF IFN ITS+D20
IFN D10,[
;FOR D10, WE MUST ASK THE OPERATING SYSTEM FOR THE PROPER BUFFER SIZE
MOVE TT,-3(FXP) ;GET DEVICE NAME
CAMN TT,[SIXBIT \PTY\]
JRST .+3
CAME TT,[SIXBIT \TTY\]
TRZ F,2 ;? NOT A TTY UNLESS IT IS *THE* TTY
TRNN F,2
TLZA F,FBT.CM ;ONLY THE TTY CAN BE SINGLE MODE,
TLO F,FBT.CM ; AND THE TTY MUST BE SINGLE MODE!
SA$ TRNE F,2 ;FOR SAIL, *THE* TTY SHOULD DEFAULT TO LINEMODE
SA$ TLO F,FBT.LN
MOVEM F,-4(FXP) ;SAVE BACK MODE BITS
PUSHN FXP,1 ;PUSH A SLOT FOR BUFFER SIZE DATA
JUMPL F,OPEN1R .SEE FBT.CM
IFE SAIL,[
HLRZ T,OPEN9C(F) ;GET DESIRED I/O MODE
MOVEI D,T
DEVSIZ D, ;ON SUCCESS, GET <NUMBER OF BUFFERS,,BUFFER SIZE>
SETO D,
SKIPG D
MOVE D,[2,,3+LIOBUF] ;ON FAILURE, USE 2 BUFFERS AT LIOBFS WORDS APIECE
HLRZ TT,D
CAIGE TT,NIOBFS
] ;END IFE SAIL
IFN SAIL,[
MOVE D,TT ;DEVICE NAME IN D
BUFLEN D, ;GET BUFFER SIZE
SKIPN D ;NO WAY!! (BUT BETTER CHECK ANYWAY)
MOVEI D,LIOBUF+1 ;DEFAULT
ADDI D,2 ;WE NEED ACTUAL SIZE OF BUFFER, NOT SIZE-2
] ;END IFN SAIL
HRLI D,NIOBFS ;HOWEVER, WE MUST USE AT LEAST NIOBFS BUFFERS
MOVEM D,(FXP) ;SAVE THIS DATA
HLRZ TT,D
IMULI D,(TT) ;GET TOTAL SPACE OCCUPIED BY BUFFERS
HLRZ TT,OPEN9A(F)
ADDI TT,(D) ;ADD TO SIZE OF REST OF FILE ARRAY
CAIA
OPEN1R: HRRZ TT,OPEN9A(F) ;FOR CHARACTER MODE, TABLE HAS TOTAL ARRAY SIZE
] ;END OF IFN D10
PUSHJ P,MKLSAR ;MAKE AN ARRAY - SIZE IN TT, SAR (IF ANY) IN A
10$ POP FXP,D
OPEN1Q: LOCKI ;LOCK OUT USER INTERRUPTS
;FALLS THROUGH
;OPEN1T
;FALLS IN
;STATE OF THE WORLD:
; USER INTERRUPTS LOCKED OUT
; SAR FOR FILE ARRAY IN A
; FOR D10, BUFFER SIZE INFORMATION IN D
; P: FIRST ARGUMENT, OR TTY SAR IF ARGUMENT WAS T
; SECOND ARGUMENT
; FIRST ARGUMENT
; (NEGATIVE OF) ACTUAL NUMBER OF ARGS
; FXP: LOCKI WORD
; FILE NAMES IN "SIXBIT" FORMAT (L.F6BT WORDS)
; MODE BITS
MOVSI TT,TTS.IM+TTS.BN+TTS.TY+TTS.IO
ANDCAM TT,TTSAR(A)
MOVE F,-1-L.F6BT(FXP) ;GET MODE BITS
HLLZ TT,OPEN9B(F)
IORB TT,TTSAR(A) ;SET CLOSED BIT AND FILE TYPE BITS
IFN D10,[
JUMPL F,OPEN1T .SEE FBT.CM
HLRZM D,FB.NBF(TT) ;STORE NUMBER OF BUFFERS
SUBI D,3
HRRZM D,FB.BWS(TT) ;STORE BUFFER DATA SIZE IN WORDS
OPEN1T:
] ;END OF IFN D10
MOVSI TT,AS.FIL
IORB TT,ASAR(A) ;NOW CAN TURN ON FILE ARRAY BIT
MOVEI T,-F.GC
HRLM T,-1(TT) ;SET UP GC AOBJN POINTER
MOVEM A,(P) ;SAVE THE FILE ARRAY SAR
PUSHJ P,ALCHAN ;ALLOCATE A CHANNEL
JRST OPNALZ ;LOSE IF NO FREE CHANNELS
MOVE TT,TTSAR(A)
HRRZM F,F.CHAN(TT) ;SAVE THE CHANNEL NUMBER IN THE FILE OBJECT
POP FXP,T ;BEWARE THE LOCKI WORD!
MOVEI D,F.DEV(TT)
HRLI D,-L.F6BT+1(FXP)
BLT D,F.DEV+L.F6BT-1(TT) ;COPY FILE NAMES INTO FILE OBJECT
POPI FXP,L.F6BT ;FLUSH THEM FROM THE STACK
EXCH T,(FXP) ;PUT LOCKI WORD ON STACK,
PUSH FXP,T ;WITH MODE BITS ABOVE IT
;FALLS THROUGH
;OPEN3 OPEN3C SOPEN3C OPEN3D OPN3D1 OPEN3E OPEN3F OPEN3M OPEN3N OPEN3D OPEN3E
;FALLS IN
;STATE OF THE WORLD:
; USER INTERRUPTS LOCKED OUT
; TTSAR OF FILE ARRAY IN TT
; P: SAR FOR FILE ARRAY
; SECOND ARGUMENT TO OPEN
; FIRST ARGUMENT
; -<# OF ACTUAL ARGS>
; FXP: MODE BITS (THEY OFFICIALLY LIVE HERE, NOT IN T)
; LOCKI WORD
;PDLS MUST STAY THIS WAY FROM NOW ON FOR THE SAKE OF IOJRST'S.
.SEE OPENLZ
OPEN3: MOVE T,(FXP) ;GET MODE BITS
;NOW WE ACTUALLY TRY TO OPEN THE FILE
IFN ITS,[
MOVE D,OPEN9C(T)
TLNE T,FBT.AP ;APPEND MODE =>
TRO D,100000 ; ITS WRITE-OVER MODE
TLNE T,FBT.EC ;MAYBE OPEN AN OUTPUT TTY
TRO D,%TJPP2 ; IN THE ECHO AREA (PIECE OF PAPER #2)
.CALL OPENUP
IOJRST 4,OPNLZ0
.CALL RCHST ;READ BACK THE REAL AND TRUE NAMES
.LOSE 1400
] ;END OF IFN ITS
IFN D10,[
JUMPL T,OPEN3M .SEE FBT.CM ;NEED NOT ALLOCATE A CHANNEL FOR *THE* TTY
MOVE F,F.CHAN(TT)
SA$ MOVEI R,(F)
MOVEI D,(F)
IMULI D,3
ADDI D,BFHD0 ;COMPUTE ADDRESS OF BUFFER HEADER
MOVEM D,FB.HED(TT) ;REMEMBER BUFFER HEADER ADR
SETZM (D) ;CLEAR BUFFER POINTER (TO FORCE NEW BUFFERS)
SETZM 1(D) ;CLEAR OLD BYTE POINTER
SETZM 2(D) ;CLEAR BYTE COUNT
TRNE T,1
MOVSS D ;IF OUTPUT BUFFER, PUT ADDRESS IN LEFT HALF
PUSH FXP,TT ;SAVE THE TTSAR
MOVE T,OPEN9C(T) ;GET THE I/O MODE FROM THE TABLE
MOVE TT,F.DEV(TT)
LSH F,27
IOR F,[OPEN 0,T]
;HERE
XCT F ;OPEN THE FILE
JRST OPNAND
SA$ SHOWIT R,
MOVE R,-1(FXP) ;GET MODE BITS
XOR F,[<INBUF>#<OPEN>]
TRNE R,1
XOR F,[<OUTBUF>#<INBUF>]
MOVE TT,(FXP) ;GET BACK TTSAR
HRR F,FB.NBF(TT) ;GET NUMBER OF BUFFERS IN RH OF UUO
MOVEI TT,FB.BUF(TT)
EXCH TT,.JBFF ;.JBFF IS THE ORIGIN FOR ALLOCATING BUFFERS
XCT F ;TELL THE MONITOR TO ALLOCATE BUFFERS
MOVEM TT,.JBFF ;RESTORE OLD VALUE OF .JBFF
AND F,[0 17,] ;ISOLATE CHANNEL NUMBER AGAIN
IOR F,[LOOKUP 0,T]
MOVE TT,(FXP) ;GET TTSAR BACK IN TT
TRNE R,1 ;WE NEED TO PERFORM A LOOKUP FOR
SA$ TLNE R,FBT.AP ; EITHER "IN" OR "APPEND" MODE
SA$ CAIA
JRST OPEN3C
MOVE T,F.FN1(TT)
MOVE R,F.PPN(TT)
HLLZ TT,F.FN2(TT)
SA$ CAMN TT,[SIXBIT \←←←\]
SA$ SETZ TT,
SETZ D,
XCT F ;PERFORM THE LOOKUP
IOJRST 4,OPNLZ1 ;LOSEY LOSEY
OPEN3C: MOVE D,-1(FXP) ;GET MODE BITS
TRNN D,1 ;NEED TO PERFORM AN ENTER FOR
JRST OPEN3D ; EITHER "OUT" OR "APPEND" MODE
SA$ TLNN D,FBT.AP ;APPEND MODE MEANS READ-ALTER, DO LOOKUP FIRST
XOR F,[<ENTER 0,T>#<LOOKUP 0,T>]
MOVE TT,(FXP) ;GET TTSAR
MOVE T,F.FN1(TT)
MOVE R,F.PPN(TT)
HLLZ TT,F.FN2(TT)
SA$ CAMN TT,[SIXBIT \←←←\]
SA$ SETZ TT,
SETZ D,
XCT F ;DO THE ENTER (OR POSSIBLY LOOKUP FOR SAIL)
IOJRST 4,OPNLZ1 ;LOSEY LOSEY
IFN SAIL,[
MOVE D,-1(FXP) ;GET THOSE MODE BITS ONCE MORE
TLNN D,FBT.AP ;APPEND MODE MEANS READ-ALTER
JRST SOPEN3C ;NORMAL CASE SO JUMP AHEAD
XOR F,[<ENTER 0,T>#<LOOKUP 0,T>] ;MUMBLE
MOVE TT,(FXP) ;GET TTSAR
MOVE T,F.FN1(TT)
PUSH FXP,R ;SAVE SIZE INFO
MOVE R,F.PPN(TT)
HLLZ TT,F.FN2(TT)
CAMN TT,[SIXBIT \←←←\]
SETZ TT,
SETZ D,
XCT F ;PERFORM THE ENTER
IOJRST 4,OPNLZS ;LOSEY LOSEY
XOR F,[<OUTPUT 0,>#<ENTER 0,T>]
XCT F ;SET UP BUFFER HEADER BYTE POINTER AND COUNT
XOR F,[<UGETF 0,T>#<OUTPUT 0,>] ;NOW THE UGETF, HEH, HEH
XCT F
POP FXP,R ;RESTORE SIZE INFO
JRST OPEN3D ;GO, GO, GO
SOPEN3C:
] ;END IFN SAIL
XOR F,[<OUT 0,>#<ENTER 0,T>]
XCT F ;SET UP BUFFER HEADER BYTE POINTER AND COUNT
;AS A RESULT OF THE LOOKUP OR ENTER, THE SIZE INFORMATION IS IN R
OPEN3D: MOVE D,TT
;HERE
POP FXP,TT
HLLZM D,F.RFN2(TT) ;SAVE AWAY THE REAL, TRUE FILE NAMES
MOVEM T,F.RFN1(TT)
MOVE D,F.CHAN(TT) ;GET CHANNEL FOR DEVCHR
DEVCHR D, ;DEVICE CHRACTERISTICS
TLNE D,(DV.DIR) ;IF NON-DIRECTORY ZERO TRUENAMES
JRST OPN3D1
SETZM F.RFN2(TT)
SETZM F.RFN1(TT)
OPN3D1: MOVE D,F.CHAN(TT)
SA% DEVNAM D, ;GET REAL NAME OF DEVICE
SA$ PNAME D,
MOVE D,F.DEV(TT) ;USE GIVEN DEVICE NAME ON FAILURE
MOVEM D,F.RDEV(TT)
MOVE F,F.CHAN(TT) ;TRY TO DETERMINE REAL PPN
SA% DEVPPN F,
SA% CAIA
SA% JRST OPEN3F
SA% TRZ D,770000
CAMN D,[SIXBIT \SYS\]
JRST OPEN3E
SA% GETPPN F, ;IF ALL ELSE FAILS, ASSUME YOUR OWN PPN
SA% JFCL ;CAN'T REALLY FAIL - THIS JFCL IS FOR ULTRA SAFETY
SA$ SKIPE F,F.PPN(TT) ;IF PPN WAS SPECIFIED
SA$ JRST OPEN3F ;USE IT AS TRUE PPN
SA$ SETZ F,
SA$ DSKPPN F, ;FOR SAIL, USE THE DSKPPN (ALIAS)
JRST OPEN3F
OPEN3E:
SA% MOVE F,[%LDSYS]
SA% GETTAB R,
SA% MOVE F,R70+1 ;ASSUME SYS: IS 1,,1 IF GETTAB FAILS
SA$ MOVE F,[SIXBIT \ 1 3\] ;IT'S [1,3] ON SAIL
OPEN3F: MOVEM F,F.RPPN(TT)
JRST OPEN3N
OPEN3M: MOVE D,F.DEV(TT) ;FOR THE TTY, JUST COPY THE DEVICE NAME
MOVEM D,F.RDEV(TT)
OPEN3N:
] ;END OF IFN D10
IFN D20,[
TLNE T,FBT.EC+FBT.SC
LERR [SIXBIT \ECHO AREAS AND SCROLL MODE NOT YET IMPLEMENTED FOR TWENEX!\]
;; HERE WITH MODE BITS IN T
HRRZS T ;GET ONLY OPEN9C TABLE INDEX (OPEN MODE)
CAILE T,3 ;ONLY CHECK FOR TTY IF STANDARD MODE
JRST OPEN3D
MOVE T,F.DEV(TT)
CAME T,[ASCII \TTY\] ;SKIP IF OPENING *THE* TTY
JRST OPEN3D
MOVEI 1,.PRIIN ;CONSIDER USING THE PRIMARY JFN
TLNE TT,TTS.IO ; OF THE APPROPRIATE DIRECTION
MOVEI 1,.PRIOU
MOVEI 3,0 ;NO JFN FOR TTY
; GTSTS ;MAKE SURE IT IS OPEN
; JUMPGE 2,OPEN3D .SEE GS%OPN
; MOVSI D,(GS%RDF+GS%NAM) ;MAKE SURE IT CAN DO THE KIND OF I/O WE WANT
; TLNE TT,TTS.IO
; MOVSI D,(GS%WRF+GS%NAM)
; TDC 2,D
; TDCN 2,D
MOVE T,(FXP) ;RESTORE FLAG BITS
JRST OPEN3E
;HERE TO ALLOCATE A FRESH JFN AND OPEN THE FILE
OPEN3D: PUSH FXP,TT ;SAVE THE TTSAR
MOVEI T,F.DEV(TT)
HRLI T,-L.F6BT
PUSH FXP,(T) ;COPY THE GIVEN DEVICE NAMES ONTO THE STACK
AOBJN T,.-1
PUSHJ P,6BTNSL ;CONVERT TO A NAMESTRING IN PNBUF
POP FXP,TT ;GET TTSAR
MOVE T,(FXP) ;RESTORE MODE BITS IN T
MOVSI 1,(GJ%ACC+GJ%SHT) .SEE .GJDEF
TRNE T,1
TLNE T,FBT.AP
TLOA 1,(GJ%OLD) ;FOR INPUT OR APPEND, WE WANT AN EXISTING FILE
TLO 1,(GJ%FOU+GJ%NEW) ;FOR OUTPUT, A NON-EXISTENT FILE
MOVE 2,PNBP
GTJFN ;GET A JFN
IOJRST 4,OPNLZ0
MOVE 3,1 ;SAVE JFN
OPEN3E: MOVE 2,OPEN9C(T) ;GET OPEN MODE
TLNE T,FBT.AP ;APPEND MODE, SET APPEND, READ BITS, CLR WRITE
TRC 2,OF%APP+OF%WR+OF%RD
OPENF ;OPEN THE FILE
JRST OPNLZR
HRRZM 1,F.JFN(TT) ;SAVE THE JFN IN THE FILE OBJECT
] ;END OF IFN D20
;FALLS THROUGH
;OPEN3G OPEN3P OPEN3K OPEN3L OPN3LA OPN3LB OPN3LC OPEN3J OPN3JA OPEN3Q OPEN3H OPEN3V OPEN3Z
;FALLS IN
10$ MOVE T,(FXP) ;FOR D10, FLAGS IN T MIGHT HAVE BEEN DESTROYED
JUMPL T,OPEN3G .SEE FBT.CM
MOVE D,OPEN9D(T) ;SOME INITIALIZATION FOR BLOCK MODE FILES
HRRZM D,FB.BYT(TT) ;SET UP BYTE SIZE
IFN ITS+D20,[
HRRI D,FB.BUF-1(TT)
MOVEM D,FB.IBP(TT) ;SET UP INITIAL BUFFER POINTER
HRRZ D,OPEN9B(T)
] ;END OF IFN ITS+D20
10$ MOVE D,FB.BWS(TT)
IMUL D,FB.BYT(TT) ;SET UP BUFFER LENGTH (IN BYTES)
MOVEM D,FB.BFL(TT)
OPEN3G: SETZM F.FPOS(TT) ;FILEPOS=0 (UNTIL FURTHER NOTICE)
;NOW DETERMINE THE SIZE OF THE FILE, AND SET THE ACCESS POINTER (IF APPLICABLE)
;MODE BITS ARE IN T, TTSAR IS IN TT; FOR D10, FILE SIZE INFO IN R;
;FOR D20, JFN IS IN 1
IFN ITS,[
SKIPL F.FLEN(TT) ;THIS WAS SET BY RCHST BEFORE; -1 = NOT RANDOM
JRST OPEN3P ; ACCESS
TLZ T,FBT.AP ;CAN'T APPEND IF NOT RANDOMLY ACCESSIBLE
JRST OPEN3Q
OPEN3P: HRLZI D,1 ;ASSUME 1000000 FOR FAILING FILLEN (USR DEVICE)
.CALL FILLEN ;DETERMINE LENGTH OF FILE
MOVEM D,F.FLEN(TT)
TLNN T,FBT.AP
JRST OPEN3Q
MOVE D,F.FLEN(TT) ;FOR APPEND MODE, SET THE ACCESS
MOVEM D,F.FPOS(TT) ; POINTER TO THE END OF THE FILE
.CALL ACCESS
.LOSE 1400
] ;END OF IFN ITS
IFN D10,[
JUMPL T,OPEN3Q ;DON'T DO ANY OF THIS FOR TTY
MOVE D,F.CHAN(TT)
DEVCHR D,
TLNE D,(DV.DIR)
JRST OPEN3K
SA$ TLZ T,FBT.AP ;ASSUME A NON-DIRECTORY DEVICE CAN'T APPEND
SETOM F.FLEN(TT) ; OR PERFORM RANDOM ACCESS
JRST OPEN3Q
;FILE SIZE INFORMATION IS IN R
OPEN3K:
SA% HLRE R,R ;FOR TOPS-10/CMU, THE LEFT HALF OF R
SA% SKIPL R ; IS A WORD COUNT IF NEGATIVE AND A BLOCK COUNT
SA% IMULI R,200 ; IF POSITIVE
SA$ MOVSS R ;SAIL JUST HAS SWAPPED NEGATIVE WORD COUNT
MOVMS R
IMUL R,FB.BYT(TT)
MOVEM R,F.FLEN(TT) ;STORE FILE LENGTH
SA% ;SHOULD FALL THRU TO OPEN3Q
IFN SAIL,[
TLNN T,FBT.AP
JRST OPEN3Q
MOVEM R,F.FPOS(TT) ;FOR APPEND MODE, SET POINTER TO EOF
MOVE F,F.CHAN(TT)
LSH F,27
IOR F,[UGETF 0,R] ;THIS UUO WILL CLOBBER R
;SA% IOR F,[USETI 0,-1]
XCT F ;SET MONITOR'S POINTER TO EOF
;HACK UP ON SAIL'S RECORD OFFSET FEATURE
SETZM FB.ROF(TT) ;ASSUME NO RECORD OFFSET
TLNN D,200000 ;SKIP IF DSK/UDP (DEVCHR RESULT IS STILL IN D)
JRST OPEN3Q
MOVEM T,(FXP)
PUSH FXP,TT
XOR F,[<MTAPE 0,T>#<UGETF 0,R>]
MOVE T,[SIXBIT \GODMOD\]
MOVEI TT,20 ;SIXBIT \GODMOD\ ? 20 => GET RECORD OFFSET IN D
XCT F
POP FXP,TT
MOVE T,(FXP) ;CONVERT RECORD OFFSET TO A BYTE OFFSET
SUBI D,1 ; FROM THE LOGICAL ORIGIN OF THE FILE
IMUL D,FB.BFL(TT)
MOVNM D,FB.ROF(TT) ;STORE AS A NEGATIVE OFFSET IN BYTES
] ;END OF IFN SAIL
] ;END OF IFN D10
IFN D20,[
SIZEF ;GET SIZE OF FILE
JRST OPN3JA ; NOT A SIZEABLE FILE?
MOVE 2,[2,,.FBBYV]
MOVEI 3,D
GTFDB ;R GETS LENGTH IN "FILE-BYTES"
LDB C,[300600,,D] ; C GETS "FILE-BYTE" SIZE (IN BITS)
MOVEI 2,36.
IDIVI 2,(C)
MOVE D,2 ;D HAS # OF "FILE-BYTES" PER WORD
TLNN T,FBT.AP
JRST OPEN3L
SETO 2,
SFPTR ;SET FILE POSITION TO END FOR APPENDING
JRST OPEN3J
RFPTR ;READ BACK THE ACTUAL POSITION
IOJRST 4,OPENLZ
MOVE R,2
;R HAS FILEN IN "FILE-BYTES", D HAS # OF "FILE-BYTES" PER WORD
OPEN3L: TRNE T,4
JRST OPN3LB ;FIXNUM MODE - 7-BIT-BYTE FILEN TO WORD COUNT
OPN3LA: CAIN D,5 ;ASCII MODE FILE ARRAY - CHECK IF
JRST OPN3LC ; "FILE-BYTE" SIZE IS ALREAD 7 BITS
IMULI R,5 ; IF NOT, CONVERT COUNT TO 7-BIT-BYTE COUNT
OPN3LB: CAIN D,1
JRST OPN3LC
ADDI R,-1(D)
IDIVI R,(D)
OPN3LC: MOVEM R,F.FLEN(TT) ;STORE THE CALCULATED LENGTH-OF-FILE
TLNE T,FBT.AP
MOVEM R,F.FPOS(TT) ;SET FILE POSITION TO END (FOR APPEND MODE)
JRST OPEN3Q
OPEN3J: CAIE 1,SFPTX2 ;ILLEGAL TO RESET POINTER FOR THIS FILE?
IOJRST 4,OPENLZ
OPN3JA: TLZ T,FBT.AP ;IF SO, JUST SAY WE CAN'T APPEND
SETOM F.FLEN(TT)
] ;END OF IFN D20
OPEN3Q: MOVEM T,(FXP) ;SAVE BACK POSSIBLY ALTERED MODE BITS
IFN ITS,[
TLNN T,FBT.CA ;FOR THE CLA DEVICE,
JRST OPEN3H ; GOBBLE DOWN THE FIRST TWO WORDS,
MOVEI T,F.RFN1(TT) ; WHICH ARE THE SIXBIT FOR THE
HRLI T,444400 ; UNAME-JNAME OF THE SENDER, AND
MOVEI D,2 ; USE THEM FOR THE TRUENAMES
.CALL SIOT ; OF THE FILE ARRAY
IOJRST 4,OPENLZ
MOVE T,(FXP) ;RESTORE MODE BITS
OPEN3H:
] ;END OF IFN ITS
TRNE T,1
JRST OPEN3V
HRRZ D,DEOFFN ;FOR INPUT, GET THE DEFAULT EOFFN
MOVEM D,FI.EOF(TT)
SETZM FI.BBC(TT)
; SETZM FI.BBF(TT) ;NOT IMPLEMENTED YET
JRST @OPEN3Z(T) ;DISPATCH TO APPROPRIATE PLACE
OPEN3V: HRRZ D,DENDPAGEFN ;FOR OUTPUT, GET THE DEFAULT ENDPAGEFN
MOVEM D,FO.EOP(TT)
MOVE D,DPAGEL ;DEFAULT PAGEL
MOVEM D,FO.PGL(TT)
MOVE D,DLINEL ;DEFAULT LINEL
MOVEM D,FO.LNL(TT)
SETZM FB.BVC(TT)
JRST @OPEN3Z(T) ;DISPATCH TO APPROPRIATE PLACE
OPEN3Z: OPNAI1 ;ASCII DSK INPUT
OPNAO1 ;ASCII DSK OUTPUT
OPNTI1 ;ASCII TTY INPUT
OPNTO1 ;ASCII TTY OUTPUT
OPNBI1 ;FIXNUM DSK INPUT
OPNBO1 ;FIXNUM DSK OUTPUT
OPNTI1 ;FIXNUM TTY INPUT
OPNTO1 ;FIXNUM TTY OUTPUT
OPNAI1 ;IMAGE DSK INPUT
OPNAO1 ;IMAGE DSK OUTPUT
OPNTI1 ;IMAGE TTY INPUT
OPNTO1 ;IMAGE TTY OUTPUT
;OPNBO1 OPNAO1 OPNBI1 OPNAI1 OPNA6 OPNTI1
OPNBO1:
OPNAO1: JUMPL T,OPNAT3 .SEE FBT.CM
MOVE D,FB.BFL(TT)
MOVEM D,FB.BVC(TT)
JRST OPNA6
OPNBI1:
OPNAI1: SETZM FB.BVC(TT)
OPNA6:
IFN ITS+D20,[
JUMPL T,OPNAT3 .SEE FBT.CM
MOVE D,FB.IBP(TT) ;INITIALIZE BUFFER BYTE POINTER
HRRZ R,OPEN9B(T)
TRNN T,1
ADDI D,(R) ;FOR AN INPUT BUFFER, FB.BP MUST BE ADJUSTED;
MOVEM D,FB.BP(TT) ; THE FIRST "EMPTY" BUFFER ISN'T A REAL ONE
MOVE D,FB.BFL(TT)
TRNN T,1
SETZ D,
MOVEM D,FB.CNT(TT)
] ;END OF IFN ITS+D20
JRST OPNAT3
OPNTI1:
10$ JUMPGE T,OPNAI1 .SEE FBT.CM ;ONLY *THE* TTY HAS THESE HACKS
SETZM TI.BFN(TT)
SETZM FT.CNS(TT)
IFN ITS,[
MOVE D,[STTYW1]
MOVEM D,TI.ST1(TT)
MOVE D,[STTYW2]
MOVEM D,TI.ST2(TT)
.CALL TTYGET
IOJRST 4,OPENLZ
;TURN OFF AUTO-INT, SUPER-IMAGE
TLZ F,%TSINT+%TSSII
TRNE T,10 ;TTY IMAGE INPUT =>
TLO F,%TSSII ; ITS SUPER-IMAGE INPUT
.CALL TTYSET
IOJRST 4,OPENLZ
] ;END OF IFN ITS
IFN SAIL,[
MOVEI D,[SACTW1 ? SACTW2 ? SACTW3 ? SACTW4]
HRLI D,TI.ST1(T)
SETACT D
MOVSS D
BLT D,TI.ST4(T)
SETO D,
GETLIN D
AOSN D ;IF NOT -1 THEN OK TO USE CHARACTERISTICS
SETZ D, ; ELSE CAN MAKE NO ASSUMPTIONS ABOUT TTY
TLNE D,460000 ;CHECK DISLIN, DMLIN, DDDLIN
TLOA T,FBT.FU
TLZ T,FBT.FU
MOVEM T,(FXP)
] ;END OF IFN SAIL
IFN D20,[
MOVE 2,CCOCW1
MOVEM 2,TI.ST1(TT)
MOVE 3,CCOCW1
MOVEM 3,TI.ST2(TT)
MOVE 1,F.JFN(TT)
SFCOC ;SET CCOC WORDS
MOVEI 2,TT%WKF+TT%WKN+TT%WKP+TT%ECO+<.TTASC←6> .SEE TT%DAM
TRNE T,10
XORI 2,<.TTBIN#.TTASC>←6 .SEE TT%DAM
SFMOD
] ;END OF IFN D20
JRST OPNAT3
;OPNTO1 OPNTO5 OPNTO6
OPNTO1:
10$ JUMPGE T,OPNAO1 .SEE FBT.CM ;ONLT *THE* TTY HAS THESE HACKS!
SETZM FT.CNS(TT)
IFN ITS,[
.CALL CNSGET ;SET FO.RPL, FO.LNL, AND GET TTYOPT IN D
IOJRST 4,OPENLZ
MOVSI R,200000 ;INFINITE PAGEL INITIALLY
MOVEM R,FO.PGL(TT)
SOS FO.LNL(TT)
TLZ T,FBT.SA+FBT.CP+FBT.SE
TLNE D,%TOSA1 ;SKIP UNLESS WE HAVE SAIL CHARS
TLO T,FBT.SA ;SET SAIL BIT
TLNE D,%TOMVU ;IF WE CAN MOVE BACK, ASSUME WE
TLO T,FBT.CP ; ARE A DISPLAY TERMINAL (THIS IS OK ACCORDING
; TO ITSTTY)
TLNE D,%TOERS ;REMEMBER THE SELECTIVE ERASE BIT
TLO T,FBT.SE .SEE RUB1CH
MOVEM T,(FXP)
TLNN T,FBT.EC
JRST OPNTO5
.CALL SCML ;FOR ECHO AREA, SET NUMBER OF ECHO LINES TO 5
.LOSE 1400
OPNTO5: .CALL TTYGET
.LOSE 1400
TLNE F,%TSROL ;TURN ON SCROLL MODE IF TTY DEFAULTLY SCROLLS
TLO T,FBT.SC
MOVEM T,(FXP)
TLZ F,%TSFCO
TLNE T,FBT.FU
TLO F,%TSFCO
TLNE T,FBT.SC ;IF SCROLL MODE SET SCROLLING
TLO F,%TSROL
.CALL TTYSAC
.LOSE 1400
PUSHJ FXP,CLRO4 ;INITIALIZE LINENUM AND CHARPOS
JRST OPNA6
] ;END OF IFN ITS
IFN D10,[
MOVSI D,200000 ;INFINITY (???)
EXCH D,FO.PGL(TT)
MOVEM D,FO.RPL(TT)
SETZM AT.CHS(TT) ;SIGH
SETZM AT.LNN(TT)
IFE SAIL,[
SETO R,
TRMNO. R, ;GET UNIVERSAL I/O INDEX FOR TERMINAL
JRST OPNTO6
MOVEI D,.TOWID
MOVE F,[2,,D] ;2-WD BLOCK: <.TOWID> ? <TERMINAL INDEX>
TRMOP. F, ;TRY DETERMINING WIDTH OF TERMINAL
OPNTO6: MOVEI F,111 ;DEFAULT WIDTH IS 73.
SUBI F,1 ;REDUCE BY 1 SO NO WRAP-AROUND HAPPENS
MOVEM F,FO.LNL(TT)
JRST OPNA6
] ;END OF IFE SAIL
;IFN SAIL, FALLS THROUGH TO OPNAT3
] ;END OF IFN D10
IFN D20,[
MOVE 1,F.JFN(TT)
RFMOD ;READ JFN MODE WORD FOR TERMINAL
LDB D,[.BP TT%WID,2]
SUBI D,1
MOVEM D,FO.LNL(TT) ;SET LINEL
LDB D,[.BP TT%LEN,2]
MOVEM D,FO.RPL(TT)
TRNN 1,TT%PGM
MOVSI D,200000 ;FOR NON-PAGED MODE, USE INFINITY
MOVEM D,FO.PGL(TT)
PUSHJ FXP,CLRO4 ;INITIALIZE LINENUM AND CHARPOS
JRST OPNA6
] ;END OF IFN D20
;TTYGET TTYSET SCML CNSGET OPNAT3 OPNAT5 OPEN4
IFN ITS,[
TTYGET: SETZ
SIXBIT \TTYGET\ ;GET TTYST1, TTYST2, TTYSTS
,,F.CHAN(TT) ;TTY CHANNEL #
2000,,D ;TTYST1
2000,,R ;TTYST2
402000,,F ;TTYSTS
TTYSET: SETZ
SIXBIT \TTYSET\ ;SET TTYST1, TTYST2, TTYSTS
,,F.CHAN(TT) ;TTY CHANNEL #
,,TI.ST1(TT) ;TTYST1
,,TI.ST2(TT) ;TTYST2
400000,,F ;TTYSTS
SCML: SETZ
SIXBIT \SCML\ ;SET NUMBER OF COMMAND LINES
,,F.CHAN(TT) ;TTY CHANNEL #
401000,,5 ;NUMBER OF LINES
CNSGET: SETZ
SIXBIT \CNSGET\ ;GET CONSOLE PARAMETERS
,,F.CHAN(TT) ;TTY CHANNEL #
2000,,FO.RPL(TT) ;VERTICAL SCREEN SIZE
2000,,FO.LNL(TT) ;HORIZONTAL SCREEN SIZE
2000,,D ;TCTYP (THROW AWAY)
2000,,D ;TTYCOM (THROW AWAY)
402000,,D ;TTYOPT
;TTYTYP NOT GOTTEN
] ;END OF IFN ITS
OPNAT3: TRNE T,2
JRST OPNAT5
SETZM AT.CHS(TT)
SETZM AT.LNN(TT)
OPNAT5: MOVEI D,1
MOVEM D,AT.PGN(TT)
OPEN4: POP FXP,F.MODE(TT)
POP P,A ;SAR FOR FILE ARRAY - RETURNED
MOVEI TT,-1
SETZM @TTSAR(A) ;ILLEGAL FOR LOSER TO ACCESS AS ARRAY
MOVSI TT,TTS<CL>
ANDCAM TT,TTSAR(A) ;UNCLOSE IT
POPI P,3 ;FLUSH 2 ARGS AND # OF ARGS
20$ SETZB 2,3 ;MAKE SURE AC'S CONTAIN NO JUNK
UNLKPOPJ ;WE HAVE WON!
;OPNLZS OPNLZR OPNAND OPNLZ1 OPNALZ OPENLZ OPNLZ0 OPNLZ1 OPNLZ3 OPNLZ2
;;; VARIOUS ERROR HANDLERS - ARRIVE WITH A MESSAGE IN C.
;; BASIC LOSER IS AT "OPNLZ0:"
IFN SAIL,[
OPNLZS: POPI FXP,2
JRST OPNLZ0
] ;END IFN SAIL
IFN D20,[
OPNLZR: MOVE 1,3
RLJFN
JFCL
IOJRST 4,OPNLZ0
] ;END OF IFN D20
IFN D10,[
OPNAND: MOVEI C,NSDERR ;NO SUCH DEVICE
OPNLZ1: POPI FXP,1
JRST OPNLZ0
] ;END OF IFN D10
OPNALZ: MOVEI C,[SIXBIT \ALL I/O CHANNELS ALREADY IN USE!\]
POP FXP,-L.F6BT-1(FXP) ;FAKE OUT CORRECT PDL CONDITIONS
POPI FXP,L.F6BT-1
JRST OPNLZ1
OPENLZ: ;CLOSE THE LOSING CHANNEL FIRST
IFN ITS,[
.CALL CLOSE9 ;REMEMBER, TT HAS TTSAR
.LOSE 1400
] ;END OF IFN ITS
IFN D10,[
MOVE F,F.CHAN(TT)
LSH F,27
IOR F,[RELEASE 0,0]
XCT F
] ;END OF IFN D10
IFN D20,[
HRRZ 1,F.JFN(TT)
CLOSF
HALT
] ;END OF IFN D20
OPNLZ0: MOVE F,F.CHAN(TT) ;THEN DEALLOCATE CHANNEL
SETZM CHNTB(F)
;HERE
OPNLZ1: POP P,AR1 ;FILE OBJECT SAR
POP P,A ;SECOND ARG
POP P,B ;FIRST ARG
POP P,T ;ARG COUNT
JUMPN T,OPNLZ3
MOVEI A,(AR1)
PUSHJ P,NAMELIST
JRST OPNLZ2
OPNLZ3: PUSHJ P,ACONS
EXCH A,B
PUSHJ P,ACONS
CAMN T,XC-2
HRRM B,(A)
OPNLZ2: MOVEI B,Q$OPEN
POPI FXP,1
UNLOCKI
JRST XCIOL
;OPENUP FILLEN ACCESS RCHST
IFN ITS,[
OPENUP: SETZ
SIXBIT \OPEN\ ;OPEN FILE
5000,,(D) ;I/O MODE BITS
,,F.CHAN(TT) ;CHANNEL #
,,F.DEV(TT) ;DEVICE NAME
,,F.FN1(TT) ;FILE NAME 1
,,F.FN2(TT) ;FILE NAME 2
400000,,F.SNM(TT) ;SNAME
FILLEN: SETZ
SIXBIT \FILLEN\ ;GET FILE LENGTH (IN WORDS)
,,F.CHAN(TT) ;CHANNEL #
402000,,F.FLEN(TT) ;PUT RESULT IN F.FLEN OF THE FILE OBJECT
ACCESS: SETZ
SIXBIT \ACCESS\ ;SET FILE ACCESS POINTER
,,F.CHAN(TT) ;CHANNEL #
400000,,F.FPOS(TT) ;POSITION
RCHST: SETZ
SIXBIT \RCHST\ ;READ CHANNEL STATUS
,,F.CHAN(TT) ;CHANNEL #
2000,,F.RDEV(TT) ;DEVICE NAME
2000,,F.RFN1(TT) ;FILE NAME 1
2000,,F.RFN2(TT) ;FILE NAME 2
2000,,F.RSNM(TT) ;SNAME
402000,,F.FLEN(TT) ;ACCESS POINTER
] ;END OF IFN ITS
;OPEN9A OPEN9B OPEN9D
;;; TABLES FOR OPEN FUNCTION
;;; ALL TABLES ARE INDEXED BY THE RIGHT HALF OF THE MODE WORD.
IT$ RBFSIZ==:200 ;RANDOM BUFFER SIZE
20$ RBFSIZ==:200
10$ RBFSIZ==:0
;;; SIZES FOR FILE ARRAYS: <BLOCKMODE SIZE>,,<CHARMODE SIZE>
;;; FOR D10, THIS IS THE SIZE EXCLUSIVE OF THE BUFFER; FOR ITS AND D20, INCLUSIVE.
;;; SIZES ARE IN WORDS.
OPEN9A: FB.BUF+RBFSIZ,,FB.BUF ;ASCII DSK INPUT
FB.BUF+RBFSIZ,,FB.BUF ;ASCII DSK OUTPUT
,,FB.BUF+NASCII/2 ;ASCII TTY INPUT
FB.BUF+RBFSIZ,,FB.BUF ;ASCII TTY OUTPUT
FB.BUF+RBFSIZ,,FB.BUF ;FIXNUM DSK INPUT
FB.BUF+RBFSIZ,,FB.BUF ;FIXNUM DSK OUTPUT
,,FB.BUF+NASCII/2 ;FIXNUM TTY INPUT
FB.BUF+RBFSIZ,,FB.BUF ;FIXNUM TTY OUTPUT
FB.BUF+RBFSIZ,,FB.BUF ;IMAGE DSK INPUT
FB.BUF+RBFSIZ,,FB.BUF ;IMAGE DSK OUTPUT
,,FB.BUF+NASCII/2 ;IMAGE TTY INPUT
FB.BUF+RBFSIZ,,FB.BUF ;IMAGE TTY OUTPUT
;;; <BITS FOR LEFT HALF OF TTSAR>,,<BLOCK MODE BUFFER SIZE>
;;; THE RIGHT HALF IS NOT REALLY USED FOR D10.
OPEN9B:
IRP X,,[A,X,I]J,,[,+BN,+IM] ;ASCII/FIXNUM/IMAGE
IRP Y,,[D,T]K,,[,+TY] ;DSK/TTY
IRP Z,,[I,O]L,,[,+IO] ;IN/OUT
IFSE X!!Y!!Z,IDI, LDGTW5: .SEE LDGTWD ;CROCK
TTS<CL!J!!K!!L>,,RBFSIZ
TERMIN
TERMIN
TERMIN
;;; <LEFT HALF FOR FB.IBP>,,<BYTES PER WORD>
;;; RELEVANT ONLY FOR BLOCK MODE FILES. ONLY THE RIGHT HALF IS USED FOR D10.
OPEN9D: 010700,,5 ;ASCII DSK INPUT
010700,,5 ;ASCII DSK OUTPUT
0 ;ASCII TTY INPUT (IRRELEVANT)
010700,,5 ;ASCII TTY OUTPUT
004400,,1 ;FIXNUM DSK INPUT
004400,,1 ;FIXNUM DSK OUTPUT
0 ;FIXNUM TTY INPUT (IRRELEVANT)
IT$ 001400,,3 ;FIXNUM TTY OUTPUT
10$ SA% 010700,,5
10$ SA$ 001100,,4
20$ 010700,,5
010700,,5 ;IMAGE DSK INPUT
010700,,5 ;IMAGE DSK OUTPUT
0 ;IMAGE TTY INPUT (IRRELEVANT)
10% 041000,,4 ;IMAGE TTY OUTPUT
10$ SA% 010700,,5
10$ SA$ 001100,,4 ? WARN [IMAGE TTY OUTPUT?]
;OPEN9C $EOPEN $EOPN1 $EOPN2 $EOPN3 $EOPN6 $EOPN5 $EOPN7 $EOPN8 $EOPN9 $EOPN4
;;; OPEN9C CONTAINS THE OPEN MODE WORD. FOR D10, THE MODE IS ALWAYS
;;; BLOCK MODE IF THIS TABLE IS USED. FOR D20, THERE IS NO DIFFERENCE
;;; IN THIS TABLE FOR BLOCK VERSUS SINGLE MODE.
OPEN9C:
IFN ITS,[
;;; RECALL THE MEANINGS OF THE FOLLOWING BITS IN ITS:
;;; 1.3 0 => ASCII, 1 => IMAGE
;;; 1.2 0 => UNIT (CHARACTER) MODE, 1 => BLOCK MODE
;;; 1.1 0 => INPUT, 1 => OUTPUT
;;; ITS BLOCK MODE IS NOT USED FOR BUFFERED FILES; RATHER, SIOT IS USED.
0 ;ASCII DSK INPUT
1 ;ASCII DSK OUTPUT
0 ;ASCII TTY INPUT
%TJDIS+1 ;ASCII TTY OUTPUT (DISPLAY IF POSSIBLE)
4 ;FIXNUM DSK INPUT
5 ;FIXNUM DSK OUTPUT
%TIFUL+0 ;FIXNUM TTY INPUT (>7 BITS ON IMLACS AND TVS)
%TJDIS+1 ;FIXNUM TTY OUTPUT
0 ;IMAGE DSK INPUT
1 ;IMAGE DSK OUTPUT
0 ;IMAGE TTY INPUT (SUPER-IMAGE INPUT)
%TJSIO+1 ;IMAGE TTY OUTPUT (SUPER-IMAGE OUTPUT)
] ;END OF IFN ITS
IFN D10,[
.IOASC ;ASCII DSK INPUT
.IOASC ;ASCII DSK OUTPUT
.IOASC ;ASCII TTY INPUT
.IOASC ;ASCII TTY OUTPUT
.IOBIN ;FIXNUM DSK INPUT
.IOBIN ;FIXNUM DSK OUTPUT
.IOASC ;FIXNUM TTY INPUT
.IOASC ;FIXNUM TTY OUTPUT
.IOASC ;IMAGE DSK INPUT
.IOASC ;IMAGE DSK OUTPUT
.IOIMG ;IMAGE TTY INPUT
.IOIMG ;IMAGE TTY OUTPUT
] ;END OF IFN D10
IFN D20,[
.SEE OF%BSZ OF%MOD
070000,,OF%RD ;ASCII DSK INPUT
070000,,OF%WR ;ASCII DSK OUTPUT
070000,,OF%RD ;ASCII TTY INPUT
070000,,OF%WR ;ASCII TTY OUTPUT
440000,,OF%RD ;FIXNUM DSK INPUT
440000,,OF%WR ;FIXNUM DSK OUTPUT
440000,,OF%RD ;FIXNUM TTY INPUT
440000,,OF%WR ;FIXNUM TTY OUTPUT
074000,,OF%RD ;IMAGE DSK INPUT
074000,,OF%WR ;IMAGE DSK OUTPUT
104000,,OF%RD ;IMAGE TTY INPUT
104000,,OF%WR ;IMAGE TTY OUTPUT
] ;END OF IFN D20
IFN SAIL,[
;EOPEN FOR SAIL -- HANDLE 'E' FILES
;;; DO AN OPEN, THEN, IF THE FILE IS OPEN IN NON-IMAGE NON-TTY ASCII MODE SKIP
;;; OVER E'S COMMENT BY DOING SUCCESIVE IN'S
$EOPEN: MOVEI TT,(P) ;MUST CALCULATE WHERE RETURN ADR IS
ADD TT,T ;SUBTRACT NUMBER OF ARGS GIVEN
PUSH FXP,(TT) ;REMEMBER USER'S RETURN ADR
MOVEI R,$EOPN1 ;NEW RETURN ADR
MOVEM R,(TT)
JRST $OPEN ;NOW OPEN THE FILE
$EOPN1: MOVEI TT,F.MODE ;GET MODE OF FILE
HRRZ TT,@TTSAR(A)
SKIPE TT ;ASCII, DSK, INPUT?
POPJ FXP, ;NOPE, JUST RETURN
PUSH P,A ;REMEMBER FILE ARRAY
PUSH FXP,[440700,,[ASCIZ \COMMENT ⊗\]]
$EOPN2: ILDB T,(FXP) ;GET NEXT CHARACTER TO LOOK FOR
JUMPE T,$EOPN5 ;LOOKS LIKE WE FOUND AN 'E' FILE, SKIP INDEX
PUSH P,[$EOPN3] ;RETURN ADR
PUSH P,-1(P) ;THE FILE ARRAY TO READ FROM
MOVNI T,1 ;ONE ARG
JRST %TYI+1 ;TYI ONE CHARACTER FROM THE FILE (NCALL)
$EOPN3: JUMPL TT,$EOPN4 ;EOF -- ERROR!
LDB T,(FXP) ;GET THE CURRENT CHARACTER
CAIN T,(TT) ;MATCH?
JRST $EOPN2 ;YES, KEEP SCANNING THE FILE
PUSH P,[$EOPN6] ;NOPE, FILEPOS TO BOF
PUSH P,-1(P) ;FILE ARRAY
PUSH P,CIN0 ;ZERO - LOGICAL BOF
MOVNI T,2 ;TWO ARGS -- SET FILEPOS
JRST FILEPOS
$EOPN6: POPI FXP,1 ;BYTE POINTER
POP P,A ;FILE ARRAY RETURNED IN A
POPJ FXP, ;RETURN TO USER
;HERE WHEN FOUND AN 'E' FILE, SKIP TO AFTER ↑L AFTER NEXT ↑V
$EOPN5: PUSH P,[$EOPN7] ;RETURN ADR
PUSH P,-1(P) ;THE FILE ARRAY TO READ FROM
MOVNI T,1 ;ONE ARG
JRST %TYI+1 ;TYI ONE CHARACTER FROM THE FILE (NCALL)
$EOPN7: JUMPL TT,$EOPN4 ;EOF -- ERROR!
CAIE TT,↑V ;FOUND ↑V?
JRST $EOPN5 ;NOPE, KEEP ON LOOPING
$EOPN8: PUSH P,[$EOPN9] ;RETURN ADR
PUSH P,-1(P) ;THE FILE ARRAY TO READ FROM
MOVNI T,1 ;ONE ARG
JRST %TYI+1 ;TYI ONE CHARACTER FROM THE FILE (NCALL)
$EOPN9: JUMPL TT,$EOPN4 ;EOF -- ERROR!
CAIE TT,↑L ;FOUND ↑L?
JRST $EOPN8 ;NOPE, KEEP ON LOOPING
POPI FXP,1 ;GET RID OF BYTE POINTER
POP P,A ;RETURN FILE ARRAY
POPJ FXP, ;TO USER
$EOPN4: POP P,A ;FILE ARRAY -- EOF, WE LOST
FAC [EOF READING A FILE WHICH LOOKED LIKE AN 'E' FILE - EOPEN!]
] ;END IFN SAIL
;DEFAULTF SSCRFILE ENDPAGEFN EOFFN EOFFN0 EOFFNZ EOFFN2 EOFFN5 EOFFNY EOFFN7
SUBTTL DEFAULTF, ENDPAGEFN, EOFFN
;;; (DEFAULTF X) SETS THE DEFAULT NAMELIST TO X.
;;; X IS MERGEF'D WITH THE OLD NAMELIST FIRST.
;;; IT FOLLOWS THAT (DEFAULTF NIL) = (NAMELIST NIL).
DEFAULTF:
PUSHJ P,FIL6BT
PUSHJ P,DMRGF
PUSHJ P,6BTNML
MOVEM A,VDEFAULTF
POPJ P,
SSCRFILE==DEFAULTF
;;; (EOFFN F) GETS INPUT FILE F'S END-OF-FILE FUNCTION.
;;; (EOFFN F X) SETS THE FUNCTION TO BE X.
;;; (ENDPAGEFN F) GETS OUTPUT FILE F'S END-OF-PAGE FUNCTION.
;;; (ENDPAGEFN F X) SETS IT TO BE X.
ENDPAGEFN:
JSP TT,LWNACK ;LSUBR (1 . 2)
LA12,,QENDPAGEFN
MOVEI TT,ATOFOK
MOVEI B,DENDPAGEFN
MOVEI C,QENDPAGEFN
JRST EOFFN0
EOFFN: JSP TT,LWNACK ;LSUBR (1 . 2)
LA12,,QEOFFN
MOVEI TT,IFILOK
MOVEI B,DEOFFN
MOVEI C,QEOFFN
EOFFN0: AOJN T,EOFFN5
POP P,AR1
JUMPE AR1,EOFFN2
IFN SFA,[
PUSH FXP,TT
JSP TT,XFOSP ;SFA?
JRST EOFFNZ
JRST EOFFNZ ;NOPE
POPI FXP,1
MOVEI A,(AR1) ;CALL THE SFA, AND RETURN ITS ANSWER
HRRZI B,(C) ;THE OPERATION -- EOFFN OR ENDPAGEFUN
SETZ C, ;WE WANT THE SFA TO RETURN A VALUE
JRST ISTCSH ;SHORT INTERNAL CALL
EOFFNZ: POP FXP,TT
] ;END IFN SFA
PUSHJ P,(TT)
MOVEI TT,FI.EOF .SEE FO.EOP
HRRZ A,@TTSAR(AR1)
UNLKPOPJ
EOFFN2: HRRZ A,(B)
POPJ P,
EOFFN5: POP P,A
POP P,AR1
JUMPE AR1,EOFFN7
IFN SFA,[
PUSH FXP,TT
JSP TT,XFOSP ;CHECK IF WE HAVE AN SFA
JRST EOFFNY
JRST EOFFNY ;NOPE
POPI FXP,1
JSP T,%NCONS ;LISTIFY IT SO IT IS IDENTIFIABLE AS AN ARG
MOVEI B,(C) ;THE OPERATION
MOVEI C,(A) ;AS THE ARG TO THE SFA
MOVEI A,(AR1) ;THE SFA ITSELF
JRST ISTCSH ;DO THE SHORT INTERNAL CALL
EOFFNY: POP FXP,TT ;UNDO PUSHES
] ;END IFN SFA
PUSHJ P,(TT)
MOVE TT,TTSAR(AR1)
HRRZM A,FI.EOF(TT) .SEE FO.EOP
UNLKPOPJ
EOFFN7: HRRZM A,(B)
POPJ P,
;$LISTEN $LSTN3 $LSTNS $LSTN4 $LSTN6 $LSTN5 LISTEN
SUBTTL LISTEN FUNCTION
;;; (LISTEN X) LISTENS TO THE SPECIFIED TTY X.
$LISTEN:
SKIPA F,CFIX1 ;LSUBR (0 . 1) NCALLABLE
MOVEI F,CPOPJ
HRRZ AR1,V%TYI
JUMPE T,$LSTN3
MOVEI D,Q$LISTEN
AOJN T,S1WNAL
POP P,AR1 ;FILE ARRAY SPECIFIED
$LSTN3:
IFN SFA,[
JSP TT,XFOSP ;FILE OR SFA?
JRST $LSTNS
JRST $LSTNS ;NOT AN SFA
JSP T,QIOSAV
MOVEI A,(AR1) ;SFA IN A
MOVEI B,Q$LISTEN ;OPERATION
SETZ C, ;NO THIRD ARG
PUSHJ P,ISTCSH ;SHORT INTERNAL SFA INVOCATION
MOVE TT,(A) ;BE PREPARED IF NCALL'ED
POPJ P,
$LSTNS: ] ;END IFN SFA
PUSHJ P,TIFLOK ;IT BETTER BE TTY INPUT
IFN ITS,[
.CALL LISTEN ;SO LISTEN ALREADY
SETZ R, ;ON FAILURE, JUST ASSUME 0
] ;END OF IFN ITS
IFN D10,[
SKIPL T,F.MODE(TT) .SEE FBT.CM
SA$ JRST $LSTN4 ? WARN [REALLY OUGHT TO BE SMARTER]
SA% JRST $LSTN5
IFE SAIL,[
TLNE T,FBT.LN
SKIPA D,[SKPINL]
MOVSI D,(SKPINC)
] ;END OF IFE SAIL
IFN SAIL,[
MOVE D,[SNEAKS R,]
JRST $LSTN6
$LSTN4: MOVE D,F.CHAN(TT)
LSH D,27
IOR D,[TTYSKP 0,]
] ;END OF IFN SAIL
$LSTN6: XCT D
$LSTN5: TDZA R,R
MOVEI R,1
] ;END OF IFN D10
IFN D20,[
HRRZ 1,F.JFN(TT)
SIBE ;SKIP IF INPUT BUFFER EMPTY
SKIPA R,2 ;NUMBER OF WAITING CHARS IN 2
SETZ R,
] ;END OF IFN D20
MOVEI TT,FI.BBC
MOVE A,@TTSAR(AR1) ;ALSO COUNT IN ANY BUFFERED
TLZE A,-1 ; UP CHARACTERS PENDING
AOS R
JSP T,LNG1A
ADD TT,R
UNLOCKI
JRST (F)
IFN ITS,[
LISTEN: SETZ
SIXBIT \LISTEN\ ;LISTEN AT A TTY, ALREADY
,,F.CHAN(TT) ;TTY CHANNEL #
402000,,R ;NUMBER OF TYPED-AHEAD CHARS
] ;END OF IFN ITS
;LINEL PAGEL CHARPOS LINENUM PAGENUM FLFWNA FLNSFL FLFROB FLFRFL FLFRF1 FLFRB1 FLFB1A FLFRB3 FLFRB5 FLFRB6 FLFRB8 FLFRB7
SUBTTL LINEL, PAGEL, CHARPOS, LINENUM, PAGENUM
;;; VARIOUS FUNCTIONS TO GET AND SET A FILE'S LINEL, PAGEL,
;;; CHARPOS, LINENUM, AND PAGENUM.
LINEL: SKIPA D,CFIX1
MOVEI D,CPOPJ
JSP F,FLFROB ;LSUBR (1 . 2)
FO.LNL,,QLINEL
DLINEL,,ATOFOK
PAGEL: SKIPA D,CFIX1
MOVEI D,CPOPJ
JSP F,FLFROB ;LSUBR (1 . 2)
FO.PGL,,QPAGEL
DPAGEL,,ATOFOK
CHARPOS:
SKIPA D,CFIX1
MOVEI D,CPOPJ
JSP F,FLFROB ;LSUBR (1 . 2)
AT.CHS,,QCHARPOS
0,,ATOFOK
LINENUM:
SKIPA D,CFIX1
MOVEI D,CPOPJ
JSP F,FLFROB ;LSUBR (1 . 2)
AT.LNN,,QLINEN
0,,ATFLOK
PAGENUM:
SKIPA D,CFIX1
MOVEI D,CPOPJ
JSP F,FLFROB ;LSUBR (1 . 2)
AT.PGN,,QPAGENUM
0,,ATFLOK
IFN SFA,[
FLFWNA: HRRZ D,(F) ;FUNCTION NAME
JRST WNALOSE ;WNA ERROR
FLNSFL: EXCH AR1,A
WTA [NOT SFA OR FILE!]
] ;END IFN SFA
FLFROB:
IFN SFA,[
CAME T,XC-1 ;WRONG NUMBER OF ARGS?
CAMN T,XC-2
SKIPA
JRST FLFWNA
MOVEI TT,(P) ;TOP OF STACK CONTAINS FILE ARG?
CAMN T,XC-2 ;UNLESS TWO ARGS
MOVEI TT,-1(P)
MOVE A,(TT) ;GET THE ARG
CAIN A,TRUTH
MOVE A,V%TYO
MOVEM A,(TT) ;RE-STORE IT INCASE IT HAS BEEN ALTERED
JUMPE A,FLFRF1 ;IF NIL THEN HANDLE SPECIALLY
EXCH A,AR1
JSP TT,XFOSP
JRST FLNSFL ;NOT AN SFA OR FILE
JRST FLFRFL
AOSE T ;HAVE TWO ARGS?
POP P,AR1 ;YES, IT WILL BECOME SECOND ARG TO SFA
EXCH AR2A,(P) ;SAVE AR2A ON STACK, GET SFA
PUSH P,A ;SAVE OLD AR1
PUSH P,C
PUSH P,B
MOVEI A,(AR2A) ;SFA INTO A
HRRZ B,(F) ;OPERATION NAME INTO B
MOVEI C,(AR1) ;THIRD ARG
PUSHJ P,ISTCSH
POP P,B
POP P,C
POP P,AR1
POP P,AR2A
JSP T,FXNV1 ;MAKE SURE RESULT IS A FIXNUM
POPJ P,
FLFRFL: EXCH A,AR1
FLFRF1: ] ;END IFN SFA
AOJN T,FLFRB5
PUSH P,AR1
MOVE AR1,-1(P)
MOVEM D,-1(P)
JUMPE AR1,FLFRB3
FLFRB1: HRRZ TT,1(F)
PUSHJ P,(TT)
HLRZ TT,(F)
MOVM TT,@TTSAR(AR1) .SEE STERPRI ;LINEL MAY BE NEGATIVE
UNLOCKI
FLFB1A: POP P,AR1
POPJ P,
FLFRB3: HLRZ TT,1(F)
JUMPE TT,FLFRB1
MOVE TT,(TT)
JRST FLFB1A
FLFRB5: POP P,A
JSP T,FXNV1
PUSH P,AR1
MOVE AR1,-1(P)
MOVEM D,-1(P)
MOVE D,TT
JUMPE AR1,FLFRB7
FLFRB6: HRRZ TT,1(F)
PUSHJ P,(TT)
HLRZ TT,(F)
MOVMS D
EXCH D,@TTSAR(AR1)
SKIPGE D
MOVNS @TTSAR(AR1)
UNLOCKI
FLFRB8: MOVE TT,D
JRST FLFB1A
FLFRB7: HLRZ TT,1(F)
JUMPE TT,FLFRB6
MOVMM D,(TT)
JRST FLFRB8
;$IN $INNOS $INTST $IN2 $IN1 $IN3 INB6 $IN4 $IN5M $IN7 INB4 $IN8 INSIOT IB4
SUBTTL IN
;;; (IN X) INPUTS ONE FIXNUM FROM THE BINARY FILE X AND
;;; RETURNS IT.
$IN: PUSH P,CFIX1 ;SUBR 1 - NCALLABLE - ACS 1
PUSH P,AR1
IFN SFA,[
JSP TT,AFOSP ;FILE OR SFA OR NOT?
JFCL ;NOT, LET OTHER CODE GIVE ERROR
JRST $INNOS ;NOT SFA, PROCEED
POP P,AR1
PUSHJ FXP,SAV5M1 ;SAVE ALL BUT A
MOVEI B,Q$IN ;IN OPERATION
SETZ C, ;NO THIRD ARG
PUSHJ P,ISTCSH ;SHORT +INTERNAL-SFA-CALL
PUSHJ FXP,RST5M1
MOVE T,CFIX1
CAMN T,(P) ;NCALL'ED?
POPI P,1 ;YUP, WILL RETURN ARGS IN BOTH A AND TT
JSP T,FXNV1 ;INSURE A FIXNUM
POPJ P, ;RETURN
$INNOS: ] ;END IFN SFA
MOVEI AR1,(A)
PUSHJ P,XIFLOK ;LOCKI, and put TTSAR in TT
IFN ITS+D20,[
MOVEI R,(TT) ;SAVE A COPY OF TTSAR
SKIPL F.MODE(TT) .SEE FBT.CM
JRST $IN2
;FOR ITS AND D20, HANDLE SINGLE MODE FILES
IFN ITS,[
PUSH FXP,[%TIACT] ;ASSUME A TTY
TLNN TT,TTS.TY ;A TTY?
SETZM (FXP) ;NO, SO NO FLAG BITS
MOVE T,[444400,,TT] ;READ ONE 36.-BIT BYTE INTO TT
MOVEI D,1
.CALL INSIOT
.LOSE 1400
POPI FXP,1
JUMPN D,$IN7 ;IF WE GOT NO WORD, ASSUME EOF
] ;END OF IFN ITS
IFN D20,[
PUSH P,2 ;PRESERVE AC'S
HRRZ 1,F.JFN(TT)
BIN ;READ ONE 36.-BIT BYTE INTO TT
ERJMP $INTST
MOVE TT,2
POP P,2
] ;END OF IFN D20
AOS F.FPOS(R)
JRST $IN1
IFN D20,[
$INTST: PUSH FXP,2
GTSTS
TLNN 2,(GS%EOF)
JRST IIOERR
POP FXP,TT
POP P,2
JRST $IN7
] ;END OF IFN D20
] ;END OF IFN ITS+D20
IFN D10,[
SKIPGE F.MODE(TT) .SEE FBT.CM
LERR [SIXBIT \SINGLE MODE BINARY NOT AVAILABLE - IN!\]
] ;END OF IFN D10
$IN2:
10$ HRRZ D,FB.HED(TT)
10% SOSGE FB.CNT(TT) ;ARE THERE ANY BYTES LEFT?
10$ SOSGE 2(D)
JRST $IN3 ;NO, GO GET ANOTHER BUFFER FULL
10% ILDB TT,FB.BP(TT) ;YES, GOBBLE DOWN THE NEXT BYTE
10$ ILDB TT,1(D)
$IN1: POP P,AR1
UNLKPOPJ
;GET THE NEXT INPUT BUFFER
$IN3:
MOVE F,FB.BVC(TT)
ADDM F,F.FPOS(TT) ;UPDATE FILE POSITION
IFN D20\ITS,[
MOVE T,FB.IBP(TT)
MOVEM T,FB.BP(TT) ;REINITIALIZE BYTE POINTER
MOVE D,FB.BFL(TT) ;GET BUFFER LENGTH INTO D
] ;END OF IFN D10\ITS
IFN ITS,[
MOVE R,D ;GET NEXT BUFFER-LOAD
.CALL SIOT
.LOSE 1400
SUBB R,D ;GET COUNT OF BYTES OBTAINED
] ;END OF IFN ITS
IFN D20,[
PUSH P,B
PUSH P,C
HRRZ 1,F.JFN(TT)
MOVE 2,T
MOVN 3,D
SIN ;GET NEXT BUFFER-LOAD
ADD D,3 ;GET COUNT OF BYTES OBTAINED
POP P,C
POP P,B
]
IFN D10,[
HRRZ F,F.CHAN(TT)
LSH F,27
IFE SAIL,[
TLNN TT,TTS.BM
JRST INB6 ;$DEV5R
HRRZ D,FB.HED(TT) ;MAYBE BUFFER HAS BEEN RELOCATED? THEN FOR
MOVSI R,(BF.IOU)
ANDCAB R,@(D) ;TURNS OFF BUFFER-IN-USE BIT AND ADVANCES BUFFER
SKIPGE (R) ;BF.IOU MUST BE BIT 4.9 FOR THIS TO WORK
JRST INB4 ;$DEV5S
MOVSI F,TTS.BM
ANDCAM F,TTSAR(AR1) ;TURN OFF "BUFFER-MOVED" BIT, BUT LEAVE BUF ADDR IN F
MOVE F,F.CHAN(TT) ;$DEV5Q:
LSH F,27
HRR F,R
] ;END OF IFE SAIL
INB6: TLO F,(IN 0,) ;$DEV5R:
XCT F ;GET NEXT INPUT BUFFER
JRST $IN4 ;SUCCESS
XOR F,[<STATO 0,IO.EOF>#<IN 0,>]
XCT F ;SKIP IF EOF
JRST IIOERR ;HALT FOR OTHER LOSS
$IN4: MOVE D,FB.HED(TT)
MOVE D,2(D) ;GET, FROM HEADER, NUMBER OF BYTES READ
] ;END OF IFN D10
$IN5M: MOVEM D,FB.BVC(TT) ;STORE "VALID COUNT" - # OF OF BYTES OBTAINED
IFN D20\ITS, MOVEM D,FB.CNT(TT)
JUMPN D,$IN2 ;EXIT IF WE GOT ANY (ELSE EOF?)
IFN D20,[
PUSH P,B
GTSTS ;GET FILE STATUS
TLNN 2,(GS%EOF) ;SKIP ON EOF
JRST IIOERR ;HALT FOR OTHER LOSS
POP P,B
] ;END OF IFN D20
$IN7: MOVEI A,(AR1) ;NO DATA WORDS - EOF
HRRZ T,FI.EOF(TT)
UNLOCKI
POP P,AR1
JUMPE T,$IN8
JCALLF 1,(T) ;CALL USER EOF FUNCTION
IFN D10*<1-SAIL>,[
INB4: HRRZ F,FB.HED(TT)
HRRZM R,(F) ;STORE CURRENT BUFFER ADDR IN CONTROL BLOCK
TLZ R,-1
ADD R,[4400,,1]
MOVEM R,1(F) ;CONSTRUCT NEW BP FOR BUFFER
MOVE D,(R)
MOVEM D,2(F) ;STORE NEW BYTE COUNT INITO BUFFERCONTROL-BLOCK
JRST $IN5M
] ;END OF D10*<1-SAIL>
$IN8: PUSH P,B ;NO USER EOF FUNCTION
PUSHJ P,NCONS
MOVEI B,Q$IN
PUSHJ P,XCONS
POP P,B
IOL [EOF - IN!] ;SIGNAL ERROR
IFN ITS,[
INSIOT: SETZ
SIXBIT \SIOT\ ;STRING I/O TRANSFER
,,F.CHAN(TT) ;CHANNEL #
,,T ;BYTE POINTER
,,D ;BYTE COUNT
404000,,(FXP)
] ;END IFN ITS
IFN D10*<1-SAIL>,[
IB4: HRRZ D,FB.HED(TT)
HRRZM R,(D) ;STORE CURRENT BUFFER ADDR IN CONTROL BLOCK
TLZ R,-1
ADD R,[4400,,1]
MOVEM R,1(D) ;CONSTRUCT NEW BP FOR BUFFER
MOVE R,(R)
MOVEM R,2(D) ;STORE NEW BYTE COUNT INITO BUFFERCONTROL-BLOCK
MOVEM R,FB.BVC(F) ;STORE "VALID COUNT" - # OF OF BYTES OBTAINED
JRST $IN2
] ;END OF IFE D10*<1-SAIL>
;$OUT $OUTNS $OUT3 $OUT2 $OUT1
SUBTTL OUT
;;; (OUT X N) OUTPUTS THE FIXNUM N TO THE FILE X. RETURNS T.
$OUT: PUSH P,AR1 ;SUBR 2 - ACS 1
IFN SFA,[
JSP TT,AFOSP ;FILE OR SFA OR NOT?
JFCL ;NOT, LET OTHER CODE GIVE ERROR
JRST $OUTNS ;NOT SFA, PROCEED
POP P,AR1
JSP T,QIOSAV
MOVEI C,(B) ;ARG IS FIXNUM TO OUTPUT
MOVEI B,Q$OUT ;OUT OPERATION
JRST ISTCSH ;SHORT +INTERNAL-SFA-CALL
$OUTNS: ] ;END IFN SFA
JSP T,FXNV2
MOVEI AR1,(A)
PUSHJ P,XOFLOK
SKIPL F.MODE(TT) .SEE FBT.CM
JRST $OUT2
;OUTPUT ONE BYTE TO A SINGLE MODE BINARY FILE
10$ LERR [SIXBIT \SINGLE MODE BINARY NOT AVAILABLE - OUT!\]
IFN ITS,[
MOVE R,D
MOVEI D,1
MOVE T,[444400,,R]
.CALL SIOT
.LOSE 1400
] ;END OF IFN ITS
IFN D20,[
PUSH P,B
HRRZ 1,F.JFN(TT)
MOVE 2,D
BOUT
ERJMP OIOERR
POP P,B
] ;END OF IFN D20
IFN ITS+D20,[
AOS F.FPOS(TT)
JRST $OUT1
] ;END OF IFN ITS+D20
$OUT3: PUSH FXP,D
10% SETZM FB.CNT(TT) ;DOING OWN BUFFERED I/O, -1 IN FB.CNT IS N.G.
PUSHJ P,IFORCE ;FORCE OUT CURRENT OUTPUT BUFFER
POP FXP,D
$OUT2:
10$ HRRZ R,FB.HED(TT)
10% SOSGE FB.CNT(TT) ;SEE IF THERE IS ROOM FOR ANOTHER BYTE
10$ SOSGE 2(R)
JRST $OUT3 ;NO, GO OUTPUT THIS BUFFER FIRST
10% IDPB D,FB.BP(TT) ;STICK BYTE IN BUFFER
10$ IDPB D,1(R)
$OUT1: POP P,AR1
JRST UNLKTRUE
;FILEPOS FPOS0E FPOS0B FPOS0C FPOS0D FPOS0 FPOS0A FPOS1 FP1SF1 FPOS1A FPOS1C FPOS2
SUBTTL FILEPOS, LENGTHF
;;; FILEPOS FUNCTION
;;; (FILEPOS F) RETURNS CURRENT FILE POSITION
;;; (FILEPOS F N) SETQ FILEPOS TO X
;;; FOR ASCII FILES, THE POSITION IS MEASURED IN CHARACTERS;
;;; FOR FIXNUM FILES, IN FIXNUMS (WORDS). ZERO IS THE
;;; BEGINNING OF THE FILE. ERROR IF FILE IS NOT RANDOMLY
;;; ACCESSIBLE.
FILEPOS:
AOJE T,FPOS1 ;ONE ARG => GET
AOJE T,FPOS5 ;TWO ARGS => SET
MOVEI D,QFILEPOS ;ARGH! ARGH! ARGH! ...
JRST S2WNALOSE
IFN D20,[
FPOS0E: POP P,B
JRST FPOS0D
] ;END OF IFN D20
FPOS0B: SKIPA C,FPOS0
FPOS0C: MOVEI C,[SIXBIT \ILLEGAL ACCESS POINTER!\]
FPOS0D: MOVEI A,(B) ;COME HERE FOR TWO-ARG CASE,
PUSHJ P,NCONS ; MESSAGE IN C
JRST FPOS0A
FPOS0: MOVEI C,[SIXBIT \FILE NOT RANDOMLY ACCESSIBLE!\]
SETZ A, ;HERE FOR ONE-ARG ERROR, MESSAGE IN C
FPOS0A: MOVEI B,(AR1)
PUSHJ P,XCONS
MOVEI B,QFILEPOS
UNLOCKI
JRST XCIOL
;ONE-ARGUMENT CASE: GET FILE POSITION
FPOS1: POP P,AR1 ;ARG IS FILE
IFN SFA,[
JSP TT,XFOSP ;DO WE HAVE AN SFA?
JRST FP1SF1 ;NOPE
JRST FP1SF1 ;NOPE
MOVEI A,(AR1) ;YES, CALL THE STREAM
MOVEI B,QFILEPOS
SETZ C, ;NO ARGS
JRST ISTCSH
FP1SF1: ] ;END IFN SFA
PUSHJ P,FILOK ;DOES LOCKI
SKIPGE F.FLEN(TT)
JRST FPOS0 ;ERROR IF NOT RANDOMLY ACCESSIBLE
SKIPGE D,F.FPOS(TT)
JRST FPOS1A
10$ MOVE R,FB.HED(TT)
ADD D,FB.BVC(TT)
10% SUB D,FB.CNT(TT) ;FOR BUFFERED FILES, ADJUST FOR COUNT
10$ SUB D,2(R)
FPOS1A: TLNN TT,TTS<IO>
SKIPN B,FI.BBC(TT)
JRST FPOS2
TLZE B,-1 ;ALLOW FOR ANY BUFFERED BACK CHARS
SUBI D,1
FPOS1C: JUMPE B,FPOS2
HRRZ B,(B)
SA% SKIPLE D
SA$ CAMLE D,FB.ROF(TT) ;FOR SAIL, MAY BE AS LOW AS RECORD OFFSET
SOJA D,FPOS1C
FPOS2: MOVE TT,D ;RETURN POSITION AS FIXNUM
UNLOCKI
JRST FIX1
;FPOS5 FP5SF1 FPOS5A FPOS6 FPOSZ FPOS6C FPOS6B FPOS6A FPOS7 $LENWT $LENGTHF $LENFL
;TWO-ARGUMENT CASE: SET FILE POSITION
FPOS5: POP P,B ;SECOND ARG IS T, NIL, OR FIXNUM
POP P,AR1 ;FIRST IS FILE
IFN SFA,[
JSP TT,XFOSP ;DO WE HAVE AN SFA?
JRST FP5SF1 ;NOPE, CONTINUE
JRST FP5SF1 ;NOPE
MOVEI A,(B) ;LISTIFY THE ARG
JSP T,%NCONS
MOVEI C,(A) ;PASS IT AS THE ARG TO THE SFA
MOVEI A,(AR1) ;THE SFA
MOVEI B,QFILEPOS ;FILEPOS OPERATION
JRST ISTCSH
FP5SF1: ] ;END IFN SFA
SETZ D,
JUMPE B,FPOS5A ;NIL MEANS ABSOLUTE BEGINNING OF FILE
CAIE B,TRUTH ;T MEANS END OF FILE
JSP T,FXNV2 ;OTHERWISE A FIXNUM POSITION
FPOS5A: PUSHJ P,FILOK ;DOES LOCKI, SAVES D
10$ TLNN TT,TTS.IO ;OUTPUT LOSES FOR D10
SKIPGE F.FLEN(TT) ;NOT RANDOMLY ACCESSIBLE?
JRST FPOS0C
SA% JUMPL D,FPOS0C ;FOR NON-SAIL, NEGATIVE POSITION ILLEGAL
SA$ CAMGE D,FB.ROF(TT) ;FOR SAIL, MAY BE DOWN TO RECORD OFFSET
SA$ JRST FPOS0C
IFN ITS+D20,[
TLNN TT,TTS.IO
JRST FPOS6
PUSH FXP,D
PUSHJ P,IFORCE ;FORCE OUTPUT BUFFER
POP FXP,D
MOVE R,F.FPOS(TT) ;CALCULATE PRESENT FILE POSITION
SKIPL F.MODE(TT)
ADD R,FB.BVC(TT)
SKIPL F.MODE(TT)
SUB R,FB.CNT(TT)
CAMLE R,F.FLEN(TT) ;ADJUST LENGTH UPWARD IF NECESSARY
MOVEM R,F.FLEN(TT)
FPOS6:
] ;END OF IFN ITS+D20
CAMLE D,F.FLEN(TT)
JRST FPOS0C ;LOSE IF SPECIFIED POSITION GREATER THAN LENGTH
SA$ CAIN B,NIL ;R IS BY DEFAULT 0, BUT FOR SAIL
SA$ MOVE D,FB.ROF(TT) ; NIL MEANS USE THE RECORD OFFSET
CAIN B,TRUTH
MOVE D,F.FLEN(TT)
IFE D10,[
TLNE TT,TTS.IO ;DETERMINE IF BYTE WE DESIRE IS IN THE BUFFER
JRST FPOSZ ; IF AN INPUT FILE
MOVE R,F.FPOS(TT) ;POSITION OF FIRST BYTE IN BUFFER
CAMGE D,R ;IF TARGET TOO SMALL THEN MUST DO I/O
JRST FPOSZ
ADD R,FB.BVC(TT) ;ADD IN NUMBER OF BYTES IN THE BUFFER
CAML D,R ;IF TARGET TOO LARGE THEN ALSO MUST DO I/O
JRST FPOSZ
MOVE R,F.FPOS(TT) ;IN RANGE, GET POS OF FIRST BYTE IN BUFFER
SUBM D,R ;MAKE R INTO BYTE OFFSET INTO BUFFER
MOVE D,FB.IBP(TT) ;RESTORE BYTE POINTER
MOVEM D,FB.BP(TT)
MOVE D,FB.BVC(TT) ;GET VALID NUMBER OF BYTES IN BUFFER
SUBI D,(R) ;NUMBER OF BYTES REMAINING
MOVEM D,FB.CNT(TT) ; IS THE NEW COUNT
SKIPE R
IBP FB.BP(TT) ;SKIP APPROPRIATE NUMBER OF BYTES
SOJG R,.-1
SETZM FI.BBC(TT) ;CLEAR BUFFERED BACK CHARACTER
JRST UNLKTRUE
FPOSZ:
] ;END IFE D10
MOVEM D,F.FPOS(TT)
IFN ITS,[
.CALL ACCESS ;SET FILE POSITION
IOJRST 0,FPOS0D ;JUMP ON FAILURE
] ;END OF IFN ITS
IFN D20,[
PUSH P,B
CAME D,F.FLEN(TT) ;BE ULTRA CAUTIOUS
SKIPA 2,D
SETO 2,
HRRZ 1,F.JFN(TT)
SFPTR ;SET FILE POINTER
IOJRST 0,FPOS0E
POP P,B
] ;END OF IFN D20
IFN D10,[
IDIV D,FB.BFL(TT) ;DIVIDE FILE POSITION BY BUFFER LENGTH
MOVE T,F.CHAN(TT)
LSH T,27
TLO T,(USETI 0,0)
HRRI T,1(D) ;BLOCKS ARE NUMBERED 1-ORIGIN
XCT T ;POSITION FILE TO CORRECT BLOCK
IMUL D,FB.BFL(TT) ;CALCUALTE F.FPOS
MOVEM D,F.FPOS(TT)
MOVE T,FB.HED(TT)
SETZM 2(T) ;ZERO THE REMAINING BYTE COUNT
HRLZI D,400000 ;NOW WE HAVE TO ZERO ALL USE BITS
FPOS6C: HRRZ T,(T) ;GET POINTER TO NEXT BUFFER
SKIPL (T) ;THIS ONE IN USE?
JRST FPOS6B ;NOPE, SO WE ARE DONE
XORM D,(T) ;CLEAR THE USE BIT
JRST FPOS6C ;AND LOOP OVER ALL BUFFERS
FPOS6B:
] ;END OF IFN D10
10% TLNE TT,TTS.IO
10% JRST FPOS6A
SETZM FB.BVC(TT)
SETZM FI.BBC(TT)
; SETZM FI.BBF(TT) ;NOT IMPLEMENTED YET
FPOS6A:
IFN ITS+D20,[
SKIPGE F.MODE(TT)
JRST UNLKTRUE ;THAT'S ALL FOR SINGLE MODE FILES
TLNE TT,TTS.IO
JRST FPOS7 ;JUMP FOR OUTPUT FILES
] ;END OF IFN ITS+D20
MOVE T,TT
10$ PUSH FXP,R ;R HAS DESIRED BYTE WITHIN BLOCK
PUSHJ P,$DEVBUF ;GET NEW INPUT BUFFER
JFCL ;IGNORE EOF
10% JRST UNLKTRUE
IFN D10,[
POP FXP,R
MOVE TT,FB.HED(T)
MOVN D,R
ADDM D,2(TT) ;DECREASE COUNT BY NUMBER OF SKIPPED BYTES
SKIPE R
IBP 1(TT) ;SKIP APPROPRIATE NUMBER OF BYTES
SOJG R,.-1
] ;END OF IFN D10
JRST UNLKTRUE
IFN ITS+D20,[
FPOS7: JSP D,FORCE6 ;INITIALIZE OUTPUT POINTERS
JRST UNLKTRUE
] ;END OF IFN ITS+D20
;;; LENGTHF -- SUBR, 1 ARG, NCALLABLE
;;; RETURNS THE LENGTH OF AN OPEN FILE
$LENWT: EXCH A,AR1
SFA% WTA [NOT A FILE - LENGTHF!]
SFA$ WTA [NOT A FILE OR SFA - LENGTHF!]
$LENGTHF:
PUSH P,CFIX1 ;STANDARD ENTRY, RETURN FIXNUM
;ALTERNATE ENTRY, RETURN NUMBER IN TT
EXCH A,AR1 ;FILE/SFA INTO AR1
JSP TT,XFOSP ;MUST BE EITHER
JRST $LENWT
IFN SFA,[
JRST $LENFL
EXCH AR1,A
JSP T,QIOSAV
MOVEI B,Q$LENGTHF
SETZ C,
PUSHJ P,ISTCSH ;SHORT INTERNAL SFA CALL
MOVE T,CFIX1
CAMN T,(P) ;WE WILL RETURN RESULTS IN A AND TT, SO NO NEED TO RECONS
POPI P,1
JSP T,FXNV1
POPJ P,
$LENFL: ] ;END IFN SFA
EXCH A,AR1
MOVEI TT,F.FLEN ;GET FILE LENGTH
MOVE TT,@TTSAR(A)
POPJ P, ;RETURNS TO CFIX1 OR CPOPJ
;CNPCHK VAROPT
SUBTTL CONTROL-P CODES AND TTY INITIALIZATION
;;; PUSH A ↑P CODE INTO A TTY FILE ARRAY IN AR1.
;;; THE CHARACTER TO FOLLOW THE ↑P IS IN D.
;;; IF THE CHARACTER IS "H, "I, OR "V, THEN THE SECOND
;;; CHARACTER IS IN THE LEFT HALF OF D.
;;; CHARPOS, LINENUM, AND PAGEL ARE CORRECTLY UPDATED.
;;; I/O LOSSES DUE TO INTERRUPTS BETWEEN ↑P AND THE
;;; NEXT CHARACTER ARE SCRUPULOUSLY AVOIDED.
;;; CLOBBERS T, TT, D, AND F. SAVES R (SEE RUB1C3).
;CNPCHK DOES A .5LOCKI. THEN SKIPS IF CAPABILITY EXITS.
CNPCHK: .5LKTOPOPJ .SEE INTTYR
.SEE CRSRP7
HLLOS NOQUIT
IFE ITS\D20, POPJ FLP,
IFN ITS\D20,[
20$ SKIPN VTS20P
20$ POPJ FLP,
MOVE T,TTSAR(AR1)
IT$ .CALL VAROPT ;GET TTYOPT INTO TT
IT$ POPJ FLP, ;OH WELL, ASSUME NOTHING IS LEGAL
IFN D20,[
WARN [HOW TO GET TTY OPTIONS BITS INTO TT FOR CNPCOD?]
PUSH P,A
HRRZ 1,F.CHAN(T)
RTCHR
SETZ TT,
TLNE A,TC%BS ;CONVERT TO ITS %TO... CODES
TLO TT,%TOMVB
TLNE A,TC%MOV
TLO TT,%TOMVU+%TOMVB
TLNE A,TC%CLR
TLO TT,%TOERS
TLNE A,TC%LID
TLO TT,%TOLID
TLNE A,TC%CID
TLO TT,%TOCID
POP P,A
] ;END OF IFN D20
XCT CNPOK-"A(D) ;IS THIS FUNCTION DOABLE?
POPJ FLP, ;WOULD HAVE NO AFFECT ANYWAY SO JUST RETURN
AOS (FLP)
POPJ FLP,
IFN ITS,[
VAROPT: SETZ
SIXBIT \TTYVAR\
,,F.CHAN(T) ;CHANNEL
[SIXBIT \TTYOPT\] ;READ THE TTYOPT VARIABLE
402000,,TT ;RETURN RESULT INTO TT
] ;END OF IFN ITS
] ;END OF IFN ITS\D20
;CNPCOD CNPCUR CNPCD1 CNPCD2 CNPC9
CNPCOD: PUSHJ FLP,CNPCHK ;DOES A .5LOCKI. THEN SKIPS IF CAPABILITY EXITS
JRST CZECHI ; BUT IF NOT EXISTS, THEN JUST FAILS TO SKIP
CNPCUR: MOVE TT,F.MODE(T)
PUSH FXP,D
JUMPL TT,CNPCD1 .SEE FBT.CM
IFE ITS\D20, LERR [SIXBIT \LOSE ON BUFFERED FILES - CNPCOD!\]
IFN ITS\D20,[
MOVE TT,FB.CNT(T)
SUBI TT,3
JUMPGE TT,CNPCD1
MOVE TT,T ;IF THERE ISN'T ROOM IN THE CURRENT BUFFER
PUSHJ P,IFORCE ; FOR THE WHOLE ↑P CODE SEQUENCE, FORCE
MOVE T,TTSAR(AR1) ; OUT THE BUFFER TO AVOID TIMING ERRORS
] ;END OF IFN ITS\D20
CNPCD1:
IFE ITS\D20, JRST CZECHI
IFN ITS\D20,[
SETZM ATO.LC(T) ;IF USING ↑P CODES, THEN FORGET WE DID LF
MOVEI TT,↑P ;OUTPUT A ↑P
PUSHJ P,TYOF6
HRRZ TT,(FXP) ;OUTPUT THE CHARACTER
PUSHJ P,TYOF6
HLRZ TT,(FXP)
JUMPE TT,CNPCD2
TRZ TT,400000 ;OUTPUT ANY ADDITIONAL MAGIC ARGUMENT
PUSHJ P,TYOF6
CNPCD2: POP FXP,TT
XCT CNPC9-"A(TT) ;ACCOUNT FOR THE EFFECTS OF THE ↑P CODE
IT$ .LOSE
20$ HALTF
CNPC9: JRST CNP.A ;A ADVANCE TO FRESH LINE
JRST CNP.B ;B MOVE BACK 1, WRAPAROUND
JRST CNP.C ;C CLEAR SCREEN
JRST CNP.D ;D MOVE DOWN, WRAPAROUND
JRST CZECHI ;E CLEAR TO EOF
JRST CNP.F ;F MOVE FORWARD 1, WRAPAROUND
JFCL
JRST CNP.H ;H SET HORIZONTAL POSITION
JRST CNP.I ;I NEXT CHARACTER IS ONE-POSITION PRINTING CHAR
JFCL
JRST CZECHI ;K KILL CHARACTER UNDER CURSOR
JRST CZECHI ;L CLEAR TO END OF LINE
JRST CNP.M ;M GO INTO **MORE** STATE, THEN HOME UP
JRST CZECHI ;N GO INTO **MORE** STATE
JFCL
JRST CZECHI ;P OUTPUT A ↑P
JRST CZECHI ;Q OUTPUT A ↑C
JRST CZECHI ;R RESTORE CURSOR POSITION
JRST CZECHI ;S SAVE CURSOR POSITION
JRST CNP.T ;T TOP OF SCREEN (HOME UP)
JRST CNP.U ;U MOVE UP, WRAPPING AROUND
JRST CNP.V ;V SET VERTICAL POSITION
JFCL
JRST CNP.X ;X BACKSPACE AND ERASE ONE CHAR
JFCL
JRST CNP.Z ;Z HOME DOWN
JRST CNP.IL ;[ INSERT LINE ;BEWARE THE BRACKETS!
JRST CNP.DL ;\ DELETE LINE
JRST CZECHI ;] SAME AS L (OBSOLETE)
JRST CZECHI ;↑ INSERT CHARACTER
JRST CZECHI ;← DELETE CHARACTER
;CNPOK RCPOS RCPS1 RSTCUR RSTCU3
;; TABLE OF INSTRUCTIONS TO DETERMINE IF A ↑P CODE IS DOABLE ON THE TERMINAL
;; AND RCPOS: AND RSTCUR:
CNPOK: SKIPA ;A OK ON ALL TTY'S
TLNN TT,%TOMVB ;B ON TTY'S THAT CAN DO IT DIRECTLY
SKIPA ;C THIS HAS SOME AFFECT ON ALL TTY'S
SKIPA ;D
TLNN TT,%TOERS ;E REQUIRES %TOERS
SKIPA ;F
JFCL
SKIPA ;H
TLNN TT,%TOMVU ;I
JFCL
TLNN TT,%TOMVU ;K ASSUME ONLY ON DISPLAY TERMINALS
TLNN TT,%TOERS ;L
SKIPA ;M
SKIPA ;N
JFCL
SKIPA ;P
SKIPA ;Q
TLNN TT,%TOMVU ;R MAKE SAME ASSUMPTION AS K AND S
TLNN TT,%TOMVU ;S
TLNN TT,%TOMVU ;T WHEREAS C IS MEANINGFUL FOR NON-DISPLAYS, I
; DO NOT FEEL THIS IS
TLNN TT,%TOMVU ;U
TLNN TT,%TOMVU ;V
JFCL
;X TTY'S THAT CAN BACKSPACE AND DON'T OVERSTRIKE
; OR THAT CAN ERASE
PUSHJ P,[TLNN TT,%TOMVB ;MUST BE ABLE TO BACK-UP
POPJ P,
TLNN TT,%TOERS ;IF CAN ERASE IS OK
TLNN TT,%TOOVR ;OR IF DOESN'T OVERSTRIKE
AOS (P)
POPJ P,]
JFCL
TLNN TT,%TOMVU ;Z SAME CRITERIA AS ↑PT
TLNN TT,%TOLID ;[
TLNN TT,%TOLID ;\
TLNN TT,%TOERS ;] SAME AS ↑PL
TLNN TT,%TOCID ;↑
TLNN TT,%TOCID ;←
;; WARN [CURSORPOS S AND R SHOULD SAVE AND RESTORE POSITION INFO FOR TTY]
RCPOS:
IFN ITS,[
;Channel number in TT, file array in AR1, Read cursorpos into D
.CALL RCPS1 ;GET CURRENT CURSOR POSITION
.LOSE 1400
POPJ FLP,
RCPS1: SETZ
SIXBIT \RCPOS\ ;READ CURSOR POSITION
,,@TTSAR(AR1) ;TTY CHANNEL #
2000,,D ;MAIN PROGRAM CURSORPOS
402000,,R ;ECHO AREA CURSORPOS
] ;END OF IFN ITS
IFN D20,[
PUSHJ FXP,SAV3 ;PRESERVE LOW THREE AC'S
MOVEI TT,F.JFN
HRRZ 1,@TTSAR(AR1)
RFPOS
MOVE D,2
PUSHJ FXP,RST3
] ;END OF IFN D20
POPJ FLP,
IFN ITS\D20,[
RSTCUR: ;RESTORE SAVED CURSOR POSITION
HLLZ D,-3(FXP) ;FOR ITS, USE ↑P CODES TO SET
HRRI D,"V-10 ; CURSOR POSITION
PUSHJ P,RSTCU3
HRLZ D,-3(FXP)
HRRI D,"H-10
RSTCU3: ADD D,R70+10
JRST CNPCOD
] ;END OF IFN ITS\D20
;CNP.X CNP.B CNP.M CNP.C CNP.T CNP.IL CNP.DL CNP.A CNP.D CNP.F CNP.H CNP.H1 CNP.I CNP.Z CNP.U CNP.V CNPBBL CNPBL CNPL CNPU CNPF CLRSRN
;;; STILL WITHIN AN IFN ITS\D20
CNP.X: ;SAME AS ↑P K ↑P B
CNP.B: MOVE D,FO.LNL(T) ;MOVE BACKWARDS
SUBI D,1
SOSGE AT.CHS(T) ;WRAP AROUND IF AT LEFT MARGIN
MOVEM D,AT.CHS(T)
JRST CZECHI
CNP.M: ;DOES **MORE**, THEN HOMES UP
CNP.C: AOS AT.PGN(T) ;CLEAR SCREEN - AOS PAGENUM
CNP.T: SETZM AT.LNN(T) ;HOME UP - CLEAR LINENUM AND CHARPOS
CNP.IL: ;INSERT LINE - CLEAR CHARPOS
CNP.DL: ;DELETE LINE - CLEAR CHARPOS
SETZM AT.CHS(T)
JRST CZECHI
CNP.A: SKIPN AT.CHS(T) ;CRLF, UNLESS AT START OF LINE
JRST CZECHI
SETZM AT.CHS(T) ;CLEAR CHARPOS, THEN INCR LINENUM
CNP.D: AOS D,AT.LNN(T) ;MOVE DOWN
CAML D,FO.PGL(T) ;WRAP AROUND OFF BOTTOM TO TOP
SETZM AT.LNN(T)
JRST CZECHI
CNP.F: AOS D,AT.CHS(T) ;MOVE FORWARD - WRAP AROUND
CAML D,FO.LNL(T) ; OFF END TO LEFT MARGIN
SETZM AT.CHS(T)
JRST CZECHI
CNP.H: HLRZ D,TT ;SET HORIZONTAL POSITION
TRZ D,400000 ;CLEAR LISP'S FLAG (IF PRESENT)
SUBI D,7 ;ACCOUNT FOR ITS'S 8
SKIPGE FO.LNL(T) ;IF NEGATIVE, THEN ASSUME C(D) IS ACTUAL HPOS
JRST CNP.H1
CAMLE D,FO.LNL(T) ;PUT ON RIGHT MARGIN IF TOO BIG
∩A5∨-
A⊂Y
≡]1≥_Q($~∃π≥@]⊂bt%'+¬∩↓λXb~(∪≠∨-∃~AλY¬(]π⊃LQ(R~(∪∃%'PAπ5
⊃∩~∀4∃π≥ 9∩tββ=&Aβ(9π⊃&QPR∩∩w9∨(A%∃β→→2↓)⊃
AI∪∂⊃(↓)⊃∪≥≤XA¬+PAπ→∨M
~∀∪)%'(A
5βπ⊃$~∀~∃
≥ ]4h∪')i~Aβ(9→≥≤QPR∩∩w!∨≠
A⊃∨/≤@!∂≡A+@A
%∨4A)∨ ∧R~∃π9 ]*t%≠∨-
↓λY
≡9%!_QPR∩w≠=-
A+@~∀∪'U¬∩Aλ0b∩∩w]%β A¬%∨+≥⊂A
%∨4A)∨ ↓)≡A¬=))∨~4∀∪'∨M∂
AβP]→≥≤!(R∩∩lA+'∪9∞@E%∃β_DAAβ∂
A1∃∂) ~∀αA5∨-~↓λYβ(9→≥≤QPR~∀∪)%'(A
5βπ⊃$~∀
∃
≥ ],h∪⊃→%hAλY)P∩∩w'∃(A-I)∪πβ0A!∨'%)∪∨≤4∀∪'+ ∩AλX\∩∩w∪_A)∨≡↓→β%∂∀XA!+PA∨≤A ∨))∨4~∀βπ¬≠→
A⊂Y
≡]I!_Q($~∀αA5∨-
A⊂Y
≡]I!_Q($~∀∪'U¬∩Aλ0b~∀∪5∨-~↓λYβ(9→≥≤QPR~∀∪)%'(A
5π⊃$~∀~∀4∀~∀vlrA-βI∪∨+&↓%∨+)%≥&A→∨$A!I∪∃)∪9∞A= ↓π∨ L~∀~∃
≥!¬¬0t∪≠∨Y∩Aλ0A∧~∀%!+'⊃(A Yπ9!π∨λ4∃π≥! _t∪≠=-∩A⊂XE∧~(∪!+'!∀A Y
≥!π∨⊂~∃π≥A_t∪≠=-∩A⊂XE_~(∪∃%'PAπ≥!
∨λ~∀4∃π≥!Tt∪≠∨Y∩Aλ0A*~∀%∃%'(↓π∃!π=λ~∀~)π⊂~B3P&6>4*%α⊃b∩_4(LRJNQ∧~:B∞| 4(∀T~2JN∀qh&6⎇2⊗%α"aα4PJ*JN"α∞*B≤z⊂4(hRt$%\*:⊃α|1α&~rα&RNd!I@4Ph(4(1n>∧rRRe∧zB:Qαα>B:# α>Bu!F¬α⎇α:QI∧~>B:#⊂4(4SYmmα∀zVR&t)α~>∩α>B⊗tJ:≥α-↓αR"*α&:&$Jε1α%"eα~Lb∃αε∃∩εfMph)mmZαN.&¬→α>9¬~V∞∞-~M↓"4
&2M∧J→αRDJMα*|⊃α:⊗4*Iα"!αR"*αRReJp4(4TzB:R%Ih4*L29α&%→2l4PI:NV≤*Qαmu∩RRebbRt%\:⊗Q↓u"Reα-~⊗Iα4
J&ε∀b∀4(M"2:∃¬!1⊗R∃:εP$KZ&→α≥*B⊗JLzIαN-!↓⊗R∃:εQ1∧JQα∞-∩Rε&tbd4(Jα*JN"α>B:#$%m∧
:R&≤JBεR-→α>V∩α>B⊗tJ:≥α%"e↓5∧b⊗Q≡~α>
2L:∀4(M"2:∃¬!1⊗R∀r>P$KZ⊗2N*α∩>9=!α>B,qα&→¬:∃α∩|q≡QαD
Z∃α$B∃αR%H4(%¬α>B)¬↓04*⎇α:QAPH4*tHIn⊗:"α>→αL29α&%_4)m[Y↓IA J↑εJrαnN"⎇*2⊃α<)α:>"α>B⊗rαRRe∧J→α∩-"ε∞",!1α>∩α∞"⊗≤Y↓:B∀J&9}hh(&ε⎇→↓"AHh(&"∃∩iα¬e1⊗Rfxh(&6⎇2⊗%α%!2~=t*>@4PJBVNBαA2α%"NεID $4(MαVN!¬↓2n>∧rQFtHIn>B,qαVA¬"Reα⎇*RBV"αεJJ
H4(&¬*N!ααb∧4(Lj>Z:JαQ1DhP&*J≥!↓∩>∧*84(hR>B:# h&6⎇2⊗%α
⊃E1"
H4(&∧zAαAdλ4(&lzZ⊗%¬"Q2~zr⊗>@hP&6>4*5α¬dαRRN
⊃"εI
H4(&lzZ⊗%¬"Q2~zr2:0hP&6>4)αRQdαRRN
⊃"εI
H4(&lzZ⊗5¬"Q2∩dJ:⊗0HInN⊗"αVAα$*~εVe!α2&t*1α~∀z5α&tJR&εbα*> ∧~>:N|b∀4(Lj>Z⊗JαRQ24y:B≡`h(&6⎇2∃αR"bαRR≤
I"ε∪ $4(Lj>Z⊗jαRQ2%αε≡⊗`H%nN-!αVA∧"⊗~ε,bQαB:⊗1↓⊂h(&B-~!αAeZ>B:#
εt4PJBVNBαA2ε∪λ4(&lzZ:%¬!1D4PJ*JN"αNRRM"fB∀hR>B:#
¬h&lzZ⊗5∧ 2ZR%H$%nLr&Rεb&j∃α∩RRe∩αR=↓E~RεR-→αRRM"fB∃Hh(&"∃∩iα¬e1⊗RfHh(&6⎇2⊗%α%!2R%t∩~84PJBVNBαA2α%"NεID $4*L29α&%→.⊃IαZNε&bbl4(Lj>Z⊗JαRQ2$I:NQλh(&B-~!α~E↓2αR%~εI"
H4(&lzZ⊗%¬"Q2RJrNQHhP&BV≤Aα~bαbαRR≤
I"¬Hh*&~*α&RMeX4(&lzZ⊗%¬"Q2RJrNQLhP&BV≤Aα~bαbαRR≤
I"¬Hh(&6⎇2⊗%α%!2R%u~QP4PJBVNBα~bAdαRRN
⊃"¬$hRt$%\*:⊃α|1α&~*α&RLhRt$%\*:⊃α|1α&~rα&RM\!IA.≤
&04PJBVNBαA2∞⎇α:QHHIn>B,qαVA¬"ReαLrBVQ∧
JJεHh(&B-~!αAe1⊗RfHh(&6⎇2:%α"aD4(LRJNQα">B⊗ph*>Bu!Ih4TJ~9αM"M.⊃∪↓.NεLa2l4TJQ∀&∧zAα~E↓2P4TJQ∀&∧zAα~E↓2_4PJB>A∧2bA2⊂H%n
-:εJ∃¬""* It≤\∀
t⎇∀D⊃PPM zα∧5
¬D H+Q⊂K\YhB∧|d ∀4r ~E~\F&α]≤→→@hPα3∪h9r#"A→3uQ$
∃∃
Jp4Jλ∃#"B* tλ∀¬J∩+PHiJ∃∃¬⊃"R1Id∩5∀e8L
j8231"B3)zQ3(λE∃∩+J:*∃
E#"B)YuQ3$
K∃∩%JuJ
J
#"I~ "3)zQ3(λe∃∩+J:j∃
E#"R*D"33jh3(∃¬J∩+TjF
∃∃¬⊃"R5∧A+Pp)Iλ∃∃⊗Tuβ!)5 α$¬S∪thT-ε↓ Tp$A33uHY(∃β
I+Tuε∃∃∃
!QTp)↓~q5⊂(:λ∃β!)1S@λFL⊗aQ@2∀J+H ⊗⊃↔%#'
**∀FB∧fgk⊃P→⊗*∩TεST⊃(TT)
MOVE 3,TI(
'(HQ)(R4∀∪'
≠ε~∀%⊃%%4bP∩→tR~9"%!$4(M∩~6> h(&&⎇⊃↓I2$I0∃≥F5¬%"⊃Q LE*+"β
HedT4e
E"HQ!∃≤4Yx@hPα4q*KPHEFc"W!⊃,¬bg⊃⊂#c⊂∩c'⊂"_εE.BDXEND GF IFN ITS ↔λH`W'β%_~(M*:2>≤Z$4λLBJJ@$λ∩e2X¬⊗)⊃ B2
*T¬⊂!+∩`∀YM
PUSHJ P,S@'Q)3π∨9&∩`.≤z2MααI∧,@(⊂
'Qbj$"T⊂ iP⊂dπN@'=→
4T~6B: ε#@!4∪t $∀∪j UC!↓ ¬β≥af)∩dε CLRI3 CLRINd~∀4U~V
R$`&∞HX∃∩l→j¬-αβλ⊂iHα`i-Lπ ⊗R¬*P (αC"G]]P∀⊂βH βH[∪≥¬*QαaJα≤@⊃04J4⊂3V$
⊃3Q →β#P$SαPU@(αp4)@4ε`≥H!j`∩REH
)→dA∨:eIα,hhT:α VE BOR↓))2OLXλ (αC"Hd∧RIN8∧∪!-~!αAd
ID⊃↔5≥0T@⊂F@
MLπ ~⊗JαεIEbB¬$Q!P@)1S@⊂∀c V-CE JSP TT11~>≥$%@88
\zh⊂∪≠y⊂6p↑q2P ! SFA
λ JFCD ; not fi@1JA←DααN~¬bα0≤4→ItZε↑.'1 B(∧∧λ⊂p)_ ∧D]H⊂⊂#$S V⊂ &all @QQe@?αX m↓α@
JRSD↓∞ %)~40Kαhλ∧∧λ⊃{d∞α2v , phe SFA @!←nL~):~(hP&BVα9∧R¬¬I∀4LIy0HKαs0)8(⊂ jT ¬ ARGQMENT @∪&↓β⊂→αLrBVQ∧2& $QQ M∧β∪Q$
∃∃
Jhπ ∀Y
∩AA+'"Rα~bAd~2J%_I`≤Ldλ∩¬%K∃B∧≤β⊃0*$∩5∀d 3P∃*A ¬∧e∀)j⊂∩∪h¬T1
λ∧∩*≤bJ%Mβ!P@)1S@⊂∩h∧S,[
∩]
β→1∧~2J&pπ⊂HK8∧Q*85λ∃
K(∩3J
5λ⊂*D⊂5∀d ⊃0"S∧@
,LOSE 1400
P~∩$p∞⊗: ∧∧`8H∩1I@⊂$j)CE$c'λ ∧10,Xε~∀∪5≠ ~∃∧!2 :$*P∩EJA⊂hPα0p)Yβ⊂",Xπ'∪1 ∪ ⊃αβJE%MKQP@Jλ9E∀∀i⊃PE@ ∧D]QdεD OF @∪
8A⊃Eh ∀Li`λλFL⊗aQ@∧h*Td⊂(⊗⊂FA∧d∀)(
1,B.JFL∧Q)(αH4(_8dL∀a⊃⊂K\9HT
∩λi∀d(∩3J
5λ⊂JXQQ4AQ@∧h'T⊂(⊗ CE(
8π≥λαα0≤2 _d`$⊃D↓Q@∧ibU-&P#∩TεBBC(TT) 8ππ2,
Iα
,2~εJ,!6
ε≤Yα∞λ~%_h'1∃≤-K)R∧4∃h$∧J⊃∃¬⊃,¬af⊃`i⊂!∃c#"i⊃b∩a PeP#'T&iFEαh'h%λ!(λ@,
~∃%
≤A∪Q&Y6~)β⊂∩JLqehε≤*Rh∀PJN&B∀JQαr∀*N⊗R`H%nJ-~⊗@" ∃t`4⊂r⊂)iQ3β!↓-εελePr⊂)E∃∃α!↔pr⊂)iQ3λ∧⊃"W"!↔q3Q∧ qH∩(iH∩5
1"@;CLROQT CLROSF CLRISF CLRO3 CLRO4 CLRO4 RC@OS1
;;; (CLEAR-OUTPUT X) CLEARS ANY OUTPUT NOT ACTUALLY ON
3;; THE OQTPUT DEVICE YET ≤@↓π+%%∃≥)→2↓∨∃→2↓
)∪-
↓
∨$AQ)2O&8~∀~∃
→%∨+Pt∪!+M⊂A Y¬$b∩∩m'+¬$b~∀∪5∨-∩↓β$bX!αR~∀4∃∪
≤↓'
αYl~∀∪∃M A)(11
∨'@∩∩wπ!KGVA→←dA[¬sEJA∧A'
α4∀∩@A)
π_∩$∩vA]=hAMS1JA←d↓'
αX↓∨
∪→=⊗AKeIf~∀∩@@Aπ¬∪αα∩l@@A
%→
XA→CYXAQQe←k≥P~∀∩@@@@↓∃%'(↓π⊂∩J⎇~_%mα↓↓↓α>yβS↔d¬Bπ&T¬≤4∀λ
}kC"KT∞q;LD∩1SD
qP+↓QA"B*
4r∩D
∪qI→⊃rc!!5∪∪HT∃∃β
J∀o∃↔B".j9r4λ _H∃∃⊃"B4
Zr∩Hλk∀⊂iJSlc!!2TTjD ∪u*F#"C!)1SH
8P+⊗aQPs∀IzqNB*9r4⊂$
⊗tiuSpsQ,psλX4K3jZ∀⊃5↓QPs∀I~qNB$∧∪3uHY(∃β
9kR0iA.hλλ9⊃04EY3T∃*A"B4hZ⊗H⊂eA"".h≡Yh≠ld
#!!4∃4i H∀ ~u⊂p)A".|≡|h≥
(_],=h≥≠d∞~→(
8P#"A~∪tλ
¬⊂4L!⊃.p;LD≤Y=∞↑YKλ∞][≠xm=;Yh↑_kC!!4∪t $∀β!+.h⊃-lλ∩1Id∀qP%A"C"H9∀Slg!"R1Id∩5∀eKc"B%hp3∪∧λs∀R)g"".j(4q5∧λr⊂3Ih3β"A∀S∪j8(%εεβ"PiJSm∞A∃Pp3 D∀Pt zl""'~Q4q*D⊂r⊂**∪thλ→Qλ∪ →Q3β!!(S Zq(&Fβ"A→∪∪λ
E⊃KS)x⊃*∃
E#"B*I∪Q(
E⊃PU¬h0c"A∀∪3uHT⊃∀A⊃,qSj$⊃0r t⊂εgb⊃V⊂*iQP"ad∪P
ODE CURSORPOS
HLRZMD,AT.LNN(TT)
HRRZM D,AT,CHS(TT)
] ;EN@ OF IFN ITS
IFN D10,[
MOVE D,F.DEV(TT)
CAMN D,[SIXBIT \TTY\]
CLRBFO
] ;END OF IFN D10
IFN D20,[
PUSH P,A
HRRZ 1,F.JFN(TT)
CFOBF ;CLEAR FILE OUTPUT BUFFEB
CAIA
CLRO4: PUCH P,A
PUSH P,B
↓HRRZ 1F.JFN(TT)
RFPOS 9READ FILE POSITION
HLRZM 2AT.LNN(TT) ;SDORE LINANUM
↓HRRZM 2,AT.CHS(DT) ;CTORE CHARPOS
POP P,B
POP P,A
] ;END OF IFN D20 α10% PUSH FHP,T
10
β)1→≤Aλαb~
Qt~4$%\J→α
dz≤Z Yt$*D
$-≤ZAPC∧Q∩∧U:∧∧"diz$≤+a⊃∪J∧β∩4j∧⊂U1Hh4H∀ y3U⊃**c"L&∧ 4∪j∧⊃R∀¬Jβ"B* t∩Hλk∀β!!"R1Id∩5∀eKc"TH~∪tl'!4q5!"B4i≠⊂R5∧∀Pt zwα"'i"`bλ!ji)Si⊂('Tdj$gS∧E∧Pλ⊂⊂⊂⊂⊗#↔!R g∀*∃∀D]aR g'"S⊂⊃FEαP⊂→__∩⊗"αD]f`Re⊂!jT)gi⊂∀'idj∩ecεEαZ_→__⊂,R 0↔
⊃≡AπU%'∨$↓!∨'∪Q∪↔~):∩∩w∃→λA∨_A∪
≤↓∪!&~(_w))e≠↔$AQ)3≠≡LA))35~bA%"f6=⊂αRRflz`$(hQemm¬~Rε:$
J⊃↓RR6.J*Q)αB∀zε⊗N≤zH4(hRRRflzIh&¬*N" ¬↓2NR%J∞.:_IfNV∃⊃↓D∀PJ*V6∧)α¬2≥α>B(HIfNR%J∞>:~α2⊗~ αεJ≥∧J9αε∪λ4(ε¬*N!ααbεIDhP&BV≤AαA2λh(&N-"iα¬`H$%nα(U≤-D d|LjHU∃∃Z
B¬≥H~E-_Q!∃¬-9 "¬αIitLUHZ%∃-
A∪J¬9t∧LUHZ%∃-
@∧D~*2¬<→IB¬$→8R∧,hhT≥Q!∀E∃+$∧
∪∃ES
E¬⊃PPM:J%"∧~&∩e]9≠∧∀MDB
~49T⎇∀T42
~≠KPKZ4 ∃~¬~Yu$*λ9∧
⊂Q*E%LYv3PM
Z4B¬¬K5%%→Ys
hQ!∃¬-9∧¬αe&vhP~
U≤B
¬Bk∩
¬⊂hPα33jIR(∃¬FA"B)*Tu⊂∃,dh"QeUPFB**,fSXY∧h∃id⊂(-j*,SeY.FB∧h*iR⊂(⊗⊗LT(∀FB∧fgk∪$P*,1
CAILE TT,40
↓ CAIN TT,177
↓ JRST %TYI+1 ;SWALLOU S@!¬π
A∨HA%+¬=+(~∀%!∨!∩↓ Xd~)))3≠<dtβπ¬∪
A PY=&∩$w ∨≤α:Qα&<r>J∃¬rL4(Jα∞ε&rαRQ1≠_$%n⎇⊃↓rεe!x4(J↓α*J≥!αRRLj>h∀PJεε&<)αRQc!@$%\~> - HU$,K∀∧L<iz$*∧9ye%∀yD∧≤D~*0hP∀ %∃≥D
E%LYv0HKt
4
"
x∃∀r:4LD
E%LYz#⎇hQ*E%LY{#PM z∧J¬¬F⊂hP~ uᬬH∃∪λQ)∃"(~ u∧R
¬@hT_ib∧MJ5EXh!→T⎇4TλBe[⊗¬Bb∀Q⊂K\yt¬$zλ(T<Lii∀d: xb∧d→hPhP~
U≤D$
αd≤jλ4| Q!∃¬-9 "¬αH9e∧`⊃↔4≤DX~"¬$tλTtλ∪qD ∩3Q!Q@2∀II(⊂4F∃
Lεεα"'_S⊂1d
∪h∃λZT∀R$¬∃∩∩*4∩4hλ_u∃0)D⊃R3λT⊂4TH≠*#"A→TTu∧
⊃4Tε⊃".q t∀q3)∃23UλZSP3∧
⊃4T
)#"W!⊃.q3HD∪qH _SH∩*Jc"C!!"@↓Gtu⊂j(0(∀jHtQ3D
u∪0*9h∀uλ:Q-λ
:⊂tQ&T∀u⊂j(-H∀jHtQ,d
u⊂tHVH∀pj(0Th
:⊂tQ&∀∀u∩iiuλ∀jIsSs∧
u⊂p)F(⊂uλ83∪λ ~u⊂p)D∩4uλ8,λ∩*:⊂tr∧ 4u⊂h⊗(∩4jHp,H
:∀⊂Q(D∀u∀jItH∀jHq5λ
:⊃∩4jt∀u⊃ →pH∀jH∩4l$
u⊃∩*6H∀u
;4sλ
:∀Ts D∀u⊃hZ⊃λ∀jHq5∃$
u⊃t h(⊂uλxU3H
:⊃usiT∀q⊃jyl(∀jHuslD
u∀u xλ∀u
:∪u(
:∀q∃&∀∀q∀j P(∀jJqU3D
u∀uiv(∀u
:ss#!!"R1Id∀qP%Kc"TjXU∃∪∧
qP(λj3Pu →qTh¬ 3U⊃*)P3λλ→Qλ∃*84J#!!"Nh¬
qP+(:Q05λT∂≠sE<yP⊂H7y⊂)Y0Vs:[1z4w[∨εE≥BP⊂⊂⊂λ⊂≡0v[zw:⊗[s⊗v'Xpr⊗z\ry⊗y]7y0sY←εE≥BP⊂⊂⊂λ⊂≡89~w:70[r[∀FB)j!i⊃`X
SKOTT A(LS\SY
JRST STCRE1
;H@%
↓)≡AπIβ)
↓αA
\A'
αhA'
α5
+≥πQ∪⊂≡→∧J9α¬bα2&Nαα~&Bu*5α&pα$*≥"∞J⊗sP&N.⎇"Qα d2`$%\2&b:αYR∧
4
4,≤βsQ∧λ4QoaQ@(∩J*uλ∀jHtQ,A⊃,sSjλ+λ⊃**StC!!4∃4i∧∀⊂!Q@∧h*Td⊂(⊗⊂εE∧h∃id⊂(!FE∧Sgk"P∃*⊗∀!
DD]cQj⊂*$⊃P""g⊃j$⊂'Q⊂*$"H*ibiλ i"`CE`b⊃$P**≡)i↔∪"g∃→∂∃XD]U'P$g∀ji"P⊃bj*$S#P"g∪jcd∩ f#+Si")FB∧f)dλ**⊗⊗LD@]j∩"g⊂!SdεVERT TO NUMBER OF WORDS
↓MOTSA A,-1 8π∃+'PA≥⊂A)⊃
↓'β$~(∪!+'!∀A Y5↔→'βH∩∩w∂∃(AαA≥ε[!%=)π ∃λAβ%Iβ2~∀%!∨ A@Yε~∀%→∨π↔$∩∩∩w≥∨∪≥∞↓)≡A⊃¬π⊗A/%)⊂A)!
Aβ%Iβ2
∀%≠↔-
↓)(Y)Q'β$Q∧R∩g↓=∪⊂~R-⊃αR=¬""*λ~%∀
∀λD
$∀λ∃∀,⊃Q M∧z∧¬αd!⊃⊂K\HYd=$∧ t2¬IλR¬-8Z"∧$~H∩∧
(X⊂hP→Yu$
ABD∩⊃Q LlzhTj¬EJ5∩uXIBE%E⊃∪M∀YXTl∀X ∧d,hzDB∧xd¬-≤Z$∧$
H⊃PPLYλ4B∧∃E¬αHα".j(4u∪j((⊃U)hu∩3iD⊂3Q∧
p5Q$
p4@λ_∀C"A→∀S∩$λ+
⊂h→⊃λeE".p$λp3∪∧λU3PjI3s@λyq4h →H⊂
gf`i%Qb⊗c)∪d¬ CLOP
MOVEM A,SR.CAL(TT) ;STORE THE AALL IJSTRUCTIONλ
∀∪!%%5~↓αY'∧9
+≤QQ(R∩wM)∨%
↓)⊃
A→+≥π$J6(4PJ"JJTiα
2≥⊃2B~
BRQ$KZNR>∀)αR"*αBJ&u"0∀XQPPM)zB¬"EP!⊃,s⊃)hβj$ MF ESER AREA IN T
SKIPGE T 9CGNVERT INTO NUMBER OF WORDS NAEDED ∀∩↓β ∩↓(Xb~(∪β $A(Y'HY→≤5'$]
5_∩w≥U≠¬∧↓∨A'e')~↓+∨% LA≠β%-λ~∀%≠∨-≥$A$XQPR∩∩w9+≠¬HA∨A]∨% &↓)≡A≠¬%⊗~∀%⊃%→5$A$XQHR∩∩w%_A→→(A⊃β1~∀∪!%%∩AHY'$]→≠_Q)PR∩w↓=∪∃)HA)≡A→∪%'(↓≠β%↔∃λA→∨
β)∪∨8A∪≤AI⊂~∀∪!%%4A⊂YQ $∩∩g∂∃(A'βH~∀β≠=-~AHXZbQ⊂R∩∩wM)∨%
↓∂εA≠¬%↔∪≥≤Aβ∨¬)≤A!∨%≥)$4∀∪⊃%11∩A%!2εMu~~∧$KZRVJpαR"∃∧
JJεJα& 5It∧rλ∧qH⊃"B2)zS(∃
E⊂
∀¬⊃ .u
ZSH∪id∀qP$λR5λ →H⊃∩λT∀p4AQ@53IIprr!⊃".p)I∪uh →β*"i∀*h")H c`dSα
;THE FOH →∨]∪⊂~≥∧~6∩∃¬~&&Vd
R⊗MPh!l%E~~¬6≤
21↓dr⊗NK∃T≥∀X~D,"Z8dr∧ztDL9¬Tm∧X(∃$Lyj2∧t→E⊂hP→
%∃Rλ∃BEα⊃⊃∪@8R4TjD⊂4Qd
∪h∀hh(∩4d
qP+)xRPu∧ 5∀q)HA"B)YuQ2$λK∀5i@h∧D]Ud adeh"i⊂j ONS
SETZ C, ;NO THIRD ARG
MOVEI TT,SR.CAL 3CALL INSTRUCTIONSLOT
XCT @TTSAR(A) ;DO CALL INDIREC@)12A)⊃I∨ ⊗≡@αRRN
⊂4(εU*6B∃∧ 2NR≥∩∃L$KZR"∃¬~~¬α≤
9∞Q∧"=αεuJR"&t91α
-!α↑"Jα↑.J∃I998hP&N.⎇"Qα¬dbL$%\∩⊗RR-⊃α"ε4)α≡>%"⊗)α
α2&N ααε∞Xh(%αU∩NQα≤~J⊗
_H%n
!αN~
α&→α$J∩9≡"α≡⊗Q∧∩ε∞
∧ α2&≥!∧4*≥"6εN[P&N⊗%Qα→0HH%n→∧
∞∞VlbεR⊗~α.:><qαNf≥"⊗ * z∧-∀~I∀lu4 T
≤1Q%≥$:(S#P→Yu$
λ!EJ@4q∩iis
:∩sSjK(λ
`Sa%'∀'dg*⊃i⊂'k⊃i⊂%g∪hπF OP@%βQ∪↔:_h(&"e∩aα bB¬$∧KZ≤
$ ∃~¬IλR∧⎇λZ$
$α3sAQTq⊂j(-*B)
TVH
Eλ∀@∀BDYeg∪ic⊂'T ¬RATIK@∨≤4⊂∪πβ%
A(X!R$KZ6εR≤A|4(Jα*JN αNR∞∀)P$%\r>B∃bα.⊗⊗αα2>>∧J24PJ"JJRαQ2HHIf≡⊗"αB>&u"⊗H4PJ"22RαRQ1E⊃$$%\:⊗Aαl
N,4PJεε&bαQ2N$Z:>QY a8%\b⊗~Q∧Bε2→¬2ε"V+x4(∀ T⎇5:4¬% ⊃↔4t⎇λUB∧
8:Tl,D
u∀|hqP@MHIt
∧eJE H↔8∀≥YYD
$T
DDM4 u∧4P5 →pπ⊂ S ⊂"l∩h∧ LOOP
STCRE6: AO@¬∃≤AHY')πI
b$KZ∞ <hI∀e,T D|@t∩3Ht∃3U →λ⊂3 D⊃∪sjλαb⊂'UjεE∧R))-⊂⊂V⊂λA 3CDR DOWL THE WHICH-OPERATIOLS LIST
JUMPN A,STCRE4 ;DON'T JUMP IF D@∨≤α:Qα"
2∃αRxh*NR≥∩∃MhMα>Aααb∧$∧KZB>&u"⊗Iα$yαNε⊂h(&6⎇2⊗%α%!2NIu:>$$KZB>&u!αR=∧Z:>↑pα6B⊗∀
R&>u→α6ε≤X4(εlzR⊗5∧12αR%~εI"
H%nNαIu∀* →b∧
*(∃Hh!~∧⎇∧$
α`H⊃↔5$DYd¬∀-JZ$r¬8~ hPQ*5$≥(V#PL[λ4B∧%H⊂HK85∧∩Jλx∃~∧izB∧
λi∃DuYQPPMzH∩¬\i~%≥"λ~$:∧ FAC [P∂β&↓%)+I≥⊗⊃∧2J>5¬:"&∞Bj>B⊗∀
R&>u→α
V αN">,b⊃α"
2∃α
,*0∩∧∀ DM≥D¬Rjα
8d
l8∧Q(~⊃(7!Q@εE)U!i"XN∧c aH-a`f∪"b⊂+Rh λ SFA, NOPλA∪5!→β≠∃_
R⊗ ↓5%αα8d
l8∧Q(~⊃(7!Q@εEεB≥ic H'h"i⊂j ON-INTERNAL @¬∪(A
_∞JJ-~B>~$
:∞∃¬"ε
2(h"NR\r6AhhQf $∧λ$M¬1Q%≤Ziz∧rbJ∀Dm∧YaPE≤βkPiIhε⊗(I!`OSE
SO,REN0Y"I%∃_
ε6,04*Nzr∩ε1bbE∩∩,b⊗@$XaPE≤βkU
*λε⊗(Ih∧EBPRI~∃M≡U!$β 12E-αID∀U~=*RLI12E-"f$∀U~=*Vu!12F,rRf$hRN=:$JA12
"f&B,*,4*≤y2&9bbE∩&ph"NuhT`8K∀(Yβc#'βE)gW∃,gV⊗∀Rj,gCE)gW∀)'V⊗∀Rh)'CE)gW⊃'jV⊗∀c'i!QFE)gKαRED,QOREAD
SO(
% 0XY"KIβ →%→∀∀U~5*B∃!12E-αJ&: h"Nuj¬∀~β∀$Z∀Pc!↓αA≥i∩⊂!$j∀FE)gK&gb,,QFILEH∨ ∀~∃'≡9!∨&X1#
∪→∃!∨&~)'⊗]∪
_XI#
→%∪≤4⊃'=tz≤@λε⊗(Pd∧ROUT ∃'<Y∨+(αa2E∩⎇*P (*:D\tyGSkReZ5$\βSu↓⊃,¬f"S πTH↓_∞→ααH∀∧dQQ hPβ"Ng]P∀)Q Va`S&⊂⊂≤Sd¬B[← QKGhx@q←a∃`πSL¬vs@Hλ∞ %xp eBαkπK≥p¬⊂hU8¬⊂h→α_]∧UβP αAm'⊃∨+1λA¬
↓β⊂→αα8d
∧βpRHXuλ%T∀qP%Xp3∪∧≠ εE)U!`f&∞α SKOTT A1'α$KZ6FN ∧∧∧(⊂3Dλ4TP+∀⊂∧"`Q ¬R
@∃%M(A'$~ε #⊃Q LE)K$J¬J@λ~iP c⊂D@ ;NMP∞Aπ!π-∧20≥∩λ∧qH∃3Q4j1"B5λISH∃
E⊂4p*%⊂*#!↓(∩TJ:α⊂!j⊂βAL1 ;AN↓β%%βdA¬+λαα2>Q∧ αJ⊗aαN~λh ⊂LYzd,Jλ¬∃¬JtKPh→β"B+λuλ⊂
J∀p4Eλ*""'dg#'RbP ∀HE SFA
∪!=!∀Aα`4(Q'4L@U⊃4I@ f⊂)Q P!`S&⊂ BIPλA∪9 ∪πβQ_
: zα∧Ld
Bb¬8h∩l@pRQ(h∧ IN AR10~∀`-¬""&J εεJ≥¬"0~¬8h∩∧Ldλ2`$λ⊂ "U*i')H+ f*QP ∂F SFA IL∧Aα\αA∩⊗α:D`:T∧iP⊂d∧@_~(p
αε≥→0⊂@ ¬$iU!`f≥αe##'H*⊂ISTCA0 ;@≠+M(A"
2∃αyhR∧∀~@λ
85β"A→α"`∩R [SIX@¬∪(ApW∪≥$*J:εbjN~¬l~ε $βλ⊂h→α ED W@∪) A≥≡A= A&pεQε@KQP@)4p
!PX≥∧d∀)(
B,STKNLπ ⊃"αJBHKαqq*D∀pfPαO@_AI!%M⊂~RLr≥αzλU∀
I→t`!α@
MLπ ~⊗Jα¬ "α⊂4F∃ ∧D]Tc P#Qh∧S ITSELF AS FIRS@(ββ%∞~(∪⊂⊗>4*%αR ¬E≥∩h¬siQ ∧]aR ¬CK↓
∨$A1∂β_↓_∞A↓h¬R¬-8T¬ 9⊂∧adλ'h⊂&Pi`
P ≥8A(@2¬"RNε⊂¬∧
H↔9T\T
5-∀T
DDM4 ∀`*⊃0 '⊂d∧ OP IS DLπβ¬→∀~∀%∧RJNQ∧JN@$8⊂!QL¬bg∃ ¬R HERE FLπ$@OM⊃∨%(α9α&:αHU∀t→D∧83∪λ
Su∪hdπL, A(λA∧αaαε: ∧∧4∀q5∧
4λ⊂i@i)"aU&,FE∩ij!iR≥ MOT¬⊗%¬"Q2Nα H`f∧DNβEP⊃
+ ∩∃¬""*λ8∀dbλ¬∪d
⊂∧"P∀c FEαl!`∀@TTSAR(A)
λ∧∪!∨A∀A X$∩∩`.α(U%-)`
$zλ8∀ddX∧@~@dj$4 ¬S@+1(A&pε∧4!Q$M≥H8∪Pα4∃*9λ⊂λ⊗⊗βIS@)
αe 4HI`≥∀X¬∃*)H⊂1λJQ0 iCE PUSH @ 1α∩%\b&NRL2eα→Z∧`:U⊂3JD⊂∧g#∪β
∀∪A+'!¬↓2λQ!∃¬-9λ
¬⊂c"A→αgk'∩P*⊗→BDX3 ARGS
λ∧∪∃%M(A2M~P$↔8D`4⊂∧j!
IST@παdt4⊂
4_4¬@85∃⊃)Z∃λ∃ @P NVLπ↔
AM
αA∨8Aβ≤AU_
NVα
∧`:U⊃1∧ t⊃4H~α ON ~Zα↓.&:αHU∀t→EU≤4∃X4@⊂ε⊂nCE
λ∧vv@X∧αE≤h~αβ@≠xZL\⎇∂@∀H)"`∀URNS T IF <ob`∃Kα≠Q`2 ~2∧d
44
DλTe≤T dL@β"TjJ∀Q1π∧e)hλ**⊗ Q'i`∀B]ad"PβK IF A FIL@
A∨HA'
α4⊂λ%αU∩N@"λh∀e≤Q⊃∪@9β"dj∩ ¬R, R@)+I_ αi→@hPα(λ *Tp
1 f)bBDXFIL@
XAI ∩Vα)b∧P3∀hQ ¬∧Pλ⊂
RST TRUE ∩wM
αXAI ∩Vα)b¬%*XPhPβ"C!≥]P≠Q'
ααj≡⊗Qβc@≡X+;l-Y8p~∂⊂≡3 )xh
kZαβ?Iβ≤π↔>→; ⊗[4πcation-name <αH4)@4ε`≥H∀)c Kij'i⊃P≡0∪@→BP↔|-&.∨G`λπLX∧p_num o@HAg`'α8
]+;⊂↔Xpz4`/n-`≥C5J|@@d¬f/:β=P-NαrP≡$~∀4U~RNR⎇⊃`⊂M99∃∧
λeE@:u∀u @b.D]Tc ViU'i"P⊃$i`⊂ATC@⊂AQβ¬→
4⊂
NR<*Qh∀ TmQ2(λe∀p
#Qh∧D 8π'
ααj≡⊗Q∧"&NB
"≤Bλ¬⊂()⊃#"A~p¬dh⊂FA)j⊃$i`↔h∩A/)∧A7:⎇!αε9¬~~¬↓h¬R¬≤h⊂(x5thh+0 j∪βRE!]
∪∃M A)(αbε~>≥$%@9→e≥4Q(
@bP$ U ¬ AN SFA0Aα@@hπSr∧~ !Q@∧P%∀)j⊂)U ∧@∪'\∩∩`.tzQαεp∧¬≤4⊃Q Jα *%≥λ⊂ j⊃$i`↔ ;A FIH
[=
*⊗≥!1α
-!αNRLb1α~⎇!αε9¬~~∧Q!∃≤\zJB∧∩HkHKαqR+ U3 ⊂⊂iP ∪E@π⊂≡h@λλ~Qoc!∧P%)∀h⊂!j⊃$iP⊃ ;@≥∨A
PA≠U' A¬∀AαAπe'!~5→∨πβQ∪⊂≡d dLQQ LlzhR¬∩Eλ"HHα.qhZα⊂ ∀HE ACTUAL FIX@≥,h4(→Yu (αdP*∃⊗)a.UDD 8ππ",~-αε<
& 5:@¬$DT T
D→ZTj¬h→E,(β"B(`ff⊂∀⊗ ∀TSAR(AR1) ;IHA∀
0∀≤Tπc!↓(∩TJ:α⊂!j⊃$ga∧B]`∞OPE( GIT¬∃α⎇*Q6>2j
>Vt"Mα∞b0$!~$mλ⊂@⊗X@D]S`ebP∩dεTO AHA∨→
'λααε 4Dλ∩∧4H_r∧∀~DαE∀¬yDBHβ"B)*Tq⊂⊂⊗XT#
D@ ;GIP
AU'$A1_∞∞ε$J0≤@H⊂0hbiiP∀ j*i∪∧¬α
SPDIO@∧t&-Bε!αλb⊂H↔8tMQ(⊂)d∪u5¬YqK0IZαg")H i)'TεE∧c⊂aP%jTbi⊗dS ∧EX↓∨ ⊗Qlz→6
⎇*:%4¬Rj¬8h∩l<ZEu≤4∃Z5$⎇(T∃hh!Q%≥$I~3Pα33jhαP*,Y)STRSLF,,0X
∩w→∪⊂~⊃¬~fM6dz¬αRD
Q↓Jt!αεJ8α&Mα- αR<hRNR∩M→Ihε≤
6∃α⊂bNRNM~1"QHIn ,~H4B¬I ∃~∧YjE∃KqQ J∧→x$Tr
@
:⊃∩4f!".sIz⊃+λλ9βg"$S*bP*∩ ¬ LOMP
ADDI T,(F) 3MAKE CORRECT TABLE ADDRASC
SKIP@∂
AP∩∩g¬U(A ∪⊂A/
AIβ→2↓
∪≥λ↓αA6
"≤CqQ J∧**5"∧¬
BHHα.v(Zhε⊂)Sβ DISPATCH
∪a∞!αλb⊂HαB1H_h∩r)I⊃1p)D∀piU"fVf∪βCATILπ⊂→αt
6∃↓h¬R¬≤h⊃T<-Ez44
Z:D`:Q(7!Q@εE≥Tc P)Vij"fKe fbH* a&⊃FE)j∀lif≥αhc"g⊂j ON 3FUNCTIOLλ
∧∪E/⊂≡@HH%n↑DJ≤BYz∧-∀~I∀lU1Q M
h∀l(⊃⊃∪@:⊃P3(Q Tu
*pε'==:.-STSYSL
~∀m'
α[≥ ⊃α$JNBε$~!αR∩2*λ→d"∧hYd
⊂∧gg∀FEεEαij#bU*@DDNβP'HA→>≤
R&>ph ∃≥HxU$#!~5$≤hY`HH↔8e,T8¬∩)@dε¬
SPGWOM ∩∩m≠!¬¬)∪∨≥LA≠β',~∀&≥"≡B~λH$%@8∧∀I→β*⊂'⊂dbFEβE)`∀GEPU 4%≠⊂≡Z,IαRQe~I:~-→"I$KZ& 4H[α∧LhIr∧
*(∃Hh!→∧e∃αH⊂%H∃∃∀h~J⊂4F∃".u
+(⊂
$⊃P EFT @ALF α SKIPGE R↓ ;BUT IS @∪(↓)⊃
AI∪∂" ∧∧DHgphPα(∩
*T¬⊂ K **)Pi∀ iT@]lUh⊂ SLεA
Q∞!ααI∧
Q!∃∧⎇ $¬α`⊃⊃∪@:Q0
*T'⊂ ∪LMPλO&↓(
ε2,(4(Q*5$t∪P'∧iedT P ∀T,[S@$αrB:εhI`≥∀X¬∃*)H⊂
$⊃P(' Sb@
STCF@+8p∩A≠=(
,∀
E"e8∧@↔⊃*g∧]T j*i∪α THE BUNCTION
λ HBRX∧AαY↓))'βHQβ$bαH4(~ u∧Rλ∧↓Q@εE)U πWOM8 MOVEI @)PY'$]]_∞ (α".j(5∃4I@⊂*$"H+`$aR⊗gh"T j$gSαS MASK
MH∂-
↓λY↓%"NεID
IE$KZ≡⊗Q¬""* X∀Dα3Q$ U30HZH⊂3HD⊂ssJ4∃0λ⊂⊂P#$l∪*fFEαib`∀Z A, ;S@)¬%(A∨→A/∪Q⊂A
∪0~∃'$:V ;↔!∀TQShλE∀p
#Udπ2 8πβ≥2↓≠↔%
↓→β
∧¬$zλIsxh!∀¬∧⎇ $¬α`⊃↔4t⎇λUB¬∀X¬∃*)H⊃r*Iλ⊂si@)bb UP LISPλA∪8Aα4U~R=yv#@!2⊂ )⊗α B,STK@≥∨PQ$R∩m∂(A¬)∨5∧~0≥∃(Z5∧|hI∀`(βP ∀O MASK BIT
λ JSP T _Kaβ⊂≡:α1⊂K\_HB¬$βh∃ λαP$"Pb⊂'cλ* "P∪$ibεB∧d!&⊗αI @(αaQAAαεβH↔9dmh⊂
*T'⊂'c⊃⊂*$"H!$j⊂∃βE JUSPλA⊃¬β↔λ4⊂∪≠∨Y_
Mα⊂H$%@9ZU≥α hT<
HT¬$zλ∧SjH5⊃#!↓4Su∧
λε∀)
D@]iR$c ∀↓∪⊂~Rzα≤@tTQ(h∧ BIT POSIP@∪∨8~∀&$"aα⊃e $$¬]"VJ9∧z~ ααI∧*∧)~@hPα2TJ:λ⊂uλzβgXDB]`g"λ" ∂ TH@
A∀*6ε&tJ0∀h⊂R*Jc"C!↓α@
;SFA-STLπ%
A⊃∪'!βQ∞!ααH∀∀dTλ∀dλ⊂ 'Uj NES
STSTLπ ∀∧HI`≥4q4D ⊂πa`U$ggεB)j)j∪βD: STSFUN ;FUH
π$J0≤@A"B*:α)`↔OM ∩∩m_∞B⊗α(∃$Lyj2∧l~90hPα4u
:⊃P"!⊃,¬`⊂RIH
(A9β∪
~(~∃'%~R>UPJ6.Z,Iα¬1D→$$¬]α∩2~lYαRλT¬$Dα3Qd
q(⊂*(αP#gRdεG TLεA'$zJ∧Q!∀U≥∧
Be∧IIdlXQ!∀l@uQ2$
∃∀j%QP
iJ)∀D]RdεDEX INDO ARRAY
α JUIPL R,S@)M)*b∩$p∞J&<BQααb_$λLBJ25∧ 2αR%~εI"
⊃E$%]~R>J*α& 2λ¬∩λT⊂ε"c∃⊂$ f⊃∧E∧h∪h
P, ↓ ;RETURN SLOT#S VALUE
STSTU1: HRRM A,@TTSAR(AR1) ;LEFT HALF
POPJ P _~(~∃')M!≥αt%'↔∪!∧A)(Ym'$]!9β:∩wM)∨%
↓)⊃
AA≥β≠
4∃')'→+≤d∩↓≠↔-$A)(YM$]
+8∩w'$zJ∃ααI∧*∧jYd≥$→y`hPα2∀J+S(⊂eH∃∃∀h~J⊂4F∃#"B)YuQ2$λ+
⊂e⊃".tHZ∃0SD
∩⊃(
:∪tQ(D∃P3
X!"B(`dbP∃*⊗)i εUN ;WERE WE HACKIL¬εA !
A
+9β)β∨8}~∀∩↓!∨!∀↓ X∩∩m≥≡XAM≡A/
↓β%
A⊃∨∪≥
4∀∪⊃%1∩AεX!ββ→_fXB∩m/
A≠U'(Aβ1'≡A
%0A)⊃∀Aπβ→0A∪≥'Q%+π %_∞(∀PJ6.Z,IαRQe~I:∞`4(→Yu (3(⊂eH∃∃∀h~J⊂4F∃!"B* t∩H
¬β"C!*u∀uiv,B1+λrλ⊂%Hc"B*zα P-Sjij⊂⊂ ¬ ALISTZZA≤2¬6N$zJ∃↓E:"&∞Bj>B⊗∀
R&>u→%εThP&⊗b≤Aα¬2_h*NR≥:>%hM~.>R"α¬22_H%n&~αR"∃∧
J≡Vl*2Qα
α2&N!x4(¬∧RJNQ¬~RN↑{λ$%ntzB∃1¬:J>::αRfB*αεJ≥∧*JJ>⊂h(&B-~!αAd
ID$KZNεZ*αR"∃¬~~¬α4zIαN$jεN-¬∩>FRLr∀4(Lj>J⊗Jα¬1"~H$%n-BBε∞%→α↑"L~!6>∧*JεRLz2MαdJNQαLqα∧4PJ*JN αNR6
~,$%]""⊗9∧:⊗:⊗∀
R∃α
α2⊗]∧jεN-∧
:↓α∀*RVJph*d∧KZ⊗ 4D ∀4rλ8dλh!Q M∧zIuα¬→→re\hZr∧Jyt¬∧98∀<-QQ cXQ'3@8λ⊃3HD⊃qH
→3h
Fv!"C! ;PIHOLD PINBL STDMSK DBGMSK STDMS2 DBGMS2 INTVEC TTYDF1 TTYDF2 LINTVEC
SUBTTL INTERRUPT HANDLERS
PGBOT INT
IFN ITS,[
PIHOLD: .SPICLR,,R70 ;WORD TO ".SUSET" TO TURN OFF INTERRUPT SYSTEM
PINBL: .SPICLR,,XC-1 ;WORD TO ".SUSET" TO TURN ON INTERRUPT SYSTEM
;;; NEW-STYLE INTERRUPT TRANSFER VECTOR
.SEE IMASK
;;; STANDARD VALUES TO PET IN .MASK AND .MSK2 USER VARIABLES.
3;; INTERRUPTS NORMALLY ENABLED ARE:
;;; PARITY ERROR
;;9 WRITE INTO READ-ONLY MEMORY
;;; MEMORY PROTECTION VIOLATION
;;; ILLEGAL OPERATION
;;; PDL OVERFLOW
;;; I/K CHANNEL ERROR
;;; RUN TIME CLOCK
;;; REAL TIME CLOCK
;;; ALSO, FOR THE USELESS SWITCH:
;;; CLI DEVICE INTERRUPT
;;; SYSTEM GOING DOWN/REVIVED
;;; SYSTEM BEINC DEBUGGED
;;9 CONTROL OF TTY JUST GIVEN BACK TO LISP
3;; (SSTATUS MAR) MAY ALSO ENABLE THE MAR INTERRUPT
.SEE SSMAR
STDMSK=%PIPAR+%PIWRO+%PIMPV+%PIILO+%PIPDL+%PIIOC+%PIRUN+%PIRLT
IFN USELESS, STDMSK=STDMSK+%PIDWN+%PIDBG+%PIATY
DBGMSK=STDMSK-<%PIPAR+%PIMPV+%PIILO+%PIATY>
;;; ALL I/O CHANNELS ARE ENABLED, AND ALL JOB CHANNELS FOR USELESS SWITCH.
STDMS2==177775
IFN JOBQIO, STDMS2==CTDMS2+<377,,>
DBGMS2==STDMS2
¬
DEFINE INTGRP HANDLER+PIRQC=0,IFPIR=0,DF1=STDMSK+%PIMAR-<!PIPDL+%PIPAR+%PIWRLεVK!%≠!,V∃!∪∪→<|Y H{') 5&d~∀%!∪%#~∀∪∪→!∪$~(∪ b4∀∪ H~∀∪⊃¬≥ →H~∃)I≠∪≤~(~∀~∃%≥)-t∪ >XVfXY%≥)! 0∩∩w∧"1α~⎇⊃αBV≤B&:≥∧J:R⊗∃∩VBQ¬~RV~0h($$HInε∞~α⊃1α∩aα→α
∩∃αN
2⊗⊃αb>:≥¬:&R!∧zR"⊗∩α∞JV h(4(HJ&:R=∩Aα6,j⊗JIeα&JF≠i⊗B&∧
I-⊗∧J↑J=Z*B&6¬1-⊗BLJ2=2$1EvN$"6N-Z*B&6
⊃5⊗BMα∩0%\j⊗6>∃Iαε:"α0≥∧9xD*∧Z*$⎇∃1Q HL→jD=∃∧
∧$dzeE∧M*_3j- ~∧$`⊃↔5∧$D u4
(iD⎇_Q!⊂LLjHu∃α →t≤-*%E∧M*_3j- →∀|_⊃↔4J|tλ4DihTb∧Z*$⎇⊂Q)∀4r
Z4,dZ:2`L→jD=∃∧λ4dL→jBe∧~*∀jZ ∀≤d⊃⊃∪L≤I∀∧LUHZ%∃-
APTLid¬-≤YHU≥~A→∀u$z*α¬%J)∀u"J ∃∃7TU∧L~K⊂HK8JEJ¬(ZE-∀hXB¬$t $|⊂Q)∀4r
Z4,dZ:2`L→jD=∃∧
5M≤→jBe∧~*∀≠jZ ∀%<e4U∧LH(pK]9~2∧$zyb∧⎇$λ$,Lht∧$,*Xt<,AQ$L4d $|∃→→r`L→jD=∃∧ $|∀→jBdLj ∃∪m66s:BKQ⊂K\→hd-∀→z"¬¬)x4,%Z(U_h!⊃∀LuHz%α∧9 dLuEI∀5∧~'S≠vvs(H↔9∩|Zλ9∧thYB∧LjHU∃∃Z
E_h*JEL$f↔SkReV0HJj8T*¬Y→e#Q*E%LHf#kk%aS⊂h)_dr¬Z8Td-:5@LLjHu∃α X∃∀LjEE∧M*_3j- →T
⊂⊃↔4l
$λ%∀,→1PPH→→e$=*∧¬∃,h9D|≤5J∧M∃_7R-∧~*TpH↔:%,UI→T*∧→H∃∀l9ItXQ!⊂LLhHu∃αλ(TD9It≤ZJ ∃∃7PU∧M)J@HK8(TbλI∀l*λ→D
∀X9D|≤αc"AQS∩3JJQ0o'WKK2)J∃Q0a↔pε"g⊃j$⊂'Q⊂ g*⊃i)*h∃⊂+"aU'iεEβE→P≠≠ NOTE T@E EFFECT GF HAVING THE ALARMCDOCKS LASP:
8εvv∪%_∞
αr⊃α∞D
::⊗bα& 5HZ%∃-
@∧D
λT`$⊃R4J:λ⊂JZλ⊂d⊃e
;8εv∪)!
A!∪=_ αα
αB,j4∧L@Tr1λT∃23JFλ⊃∩λT⊂3⊂*)0s∪heP#bU)FE≥Nβ; ITS TURL∧A&lj⊗∩_~D,@⊗+@⊂λ!*a*∩ ¬RMORA, TH@
A∀*ε!α$J6∀Q'3@7b0s @a` GEP &AM→∪∂⊃Q→2A⊃%∂⊃$↓!%π∃ ⊗:≤)0 (+Q⊂K\YhB∧|d ∀4r ~E_h c\I~4m≤αh⊃ ~q0 eH)j"&TeP!j⊃&ie@ SPDMSK DBGMSC CHNTAB LEFTAB EN@¬∪≥(↓⊂~
LqIα⊗t∩& 3∀
$,→jB∧∧→I∀`*λ⊃∩*93UλλJpεdg∃⊂ g*∀jh⊂∩∀" OV INDNXP INTIRD↓∪⊂~RmαYαεu"&@=$ ∀`*∩3∪d 3Q∪(ZH∩3JH4thλ~tr3F∀⊂4tj(5β"AQ@εE$Q'⊂" ⊗-FE∞β;; TMPS-∩0 ANTERRUPT HANDLEB
;;;IH
)I%+! LA≥∨≠Iβ⊃2Jα⊗ 4_)D,"λ~$+Pβ"Ng↔b4⊃ D∪uQ*(S∪uaQLh
MBdf&"Q`f⊂$S)j)*Ph∧AON
0⊗Vl∪∪→→∃∂β_A5⊂⊗>∃IαJ⊗ 4)@4εfa→3∪⊃(x3λ∪(Y3tV$
tR5λQ"NngDg'g⊃l STAJT PAGE REFEBEL¬π
~(p
mlM2εJ&⎇*Mα∞D
Jε∞$*JMα,rε
2,!α~>∩α& 5HZ%∃-λJ3Ph'73@1 7P%D↔PC∧Qλh+λ↔Heλ↔QeD↔UK∧Ukλkλ↔K!αEεEβE≥U]H!d g∪"f⊂ Ti`cg∪bg*)N∧A≥]Nβ 1) PDD OVλ
∀vlp%IJα&"2,:ε1αLrNBJ,~R&>paα&2bα6⊗5¬⊃↓→α:aα>RD*IαNLr
αεu"⊗JJ-αRL4SYml%~IαεNLr∞"J|r>VM∧J:R⊗∃∩VBR_h(4*$JN6N[iu@$HIn≡⊗t*JεR*α&&B⎇∩Rε:"α&:R-∩JVB%→α6ε≤X4*&∃↓α~>za2m:L~B>Ybr&∞&dI1:&≤JJ⊃1tJ∞&↑∩a2&∞uBBt∀R↓↓↓α$JN6N[iv∩&≤jN--c
⎇qM*q6~>{qx4*$*J6&ph(4*≥"∩6N[iv∩&≤jN,$HIf≡⊗t*JεR*αNRεt"εJ⊃∧J:R⊗∃∩VBQ∧jεN,hR&JA∧2> :EK2tL8H∀-hQ$ααα
:D$m97Sm≥HIU≤Z7F∃{c6Ubl4ywcph*HU∀l→aPU≥HIU≤[WZ5$$X∧re7
mlεεεε
mefWB.p)Jqh∩)Hs∃1λT⊂3∪∧
4q4Dλ4tr(yP0SλT⊂r⊂)iQ3∀aQQ⊂QiZpo'*:⊃∪4i1 ".hitH∪IZiλ∪(~pthλ~Q(⊃*~αdk S"g*εBεE≥aR g'"S⊂* a∪ P∀ Ti`cg∀P P(∀$gi$U,P&"U ¬L AND HAN@LER ADRTO EACH CHANNEL)
αCHNTAB~
REPEAT 6, 3,,IH
)βM&Vx]I!π
((f|@∩m
∪%'P@lAβM'∪∂≥¬¬→
A%≥)%I+!)&4∀∩`@|@`@}`∩∩w¬%∪)⊃5)&~α>J⊗∀22>↑_h(%Eba∩B∩dzP⊂H↔:∧d$zaPPK∧πrβα↓⊃⊂K\UYrl2λ→d"∧H~D
LX∧TI@iεE∧L⊂∨P_λ∨P⊂∧B]i"iQi+"bλ*#P"⊃aFE∧L⊗∩$g∃$f'DB]`f&⊃c`f⊂∩dεSDRUCTIOLλ
∀∩HXY∪≥Q∪%λ∩$p∞&2d*≡ε1∧j⊗&>∃IαJ⊗ 4(⊗%BdLhI∃ :B".i→⊂ε"cPd⊂&bSei,P∃i$j"CE 0 ? 0 ? 0 ? 0 ;RESEBVED, AN@ /
λ 2,,IH
)≥a @∩∩m≥∨≤[∃1∪' ¬≥(A!¬∂
~∀$`∩∩∩lAπ↓β9≥β_@Hf\A→='&B4⊃%↓∃β(Aπ%≥)'44lX@f0Y∪≥ ¬'&VxXV]%!
→(|TL@w%5β∪≥∪9∞Aβ'M∪∂≥β →αA∪9)%%U!)&~)∪
≤@8[π⊃≥Qβ∧ZfX\XA/¬%≤A7]%∨≥∞↓_
V6∀*Iα⊗u"J&⊗α4∧LRλ9∧u$_'uhh!Q#\@⊃5Q)D∃⊂0IH(
@d"i"H*#P)U'i"P∀!P#'T⊂ g*⊃i)*h∃⊂ j⊂⊃`ad∀$P&"U ¬L
LEVDAB: 0,,INDPC1¬
0,$INTPC2
0,,IH
)!f~∀~(~∀fVlA)∨!LZd`A%≥)%I+!(A!β≥ →%→≥α∀zVRεt*L4(hQemm∧~ε2HXB∧
D
5$
*JUα¬It¬∀,→i∃$L→I∃D(⊂
$⊃P NTERRUPT SISTEM
EH
¬∪9(tβ≠=(
,∀ε∩bti
4d⊂α".iX3R4
Y⊂5⊃$ u0 )Qd∧VES
∪≠=(
*∧ d∧EFTAB,,CHNTAB] 0↔∪9)β%%U!(A!A')∨Iβ∂
AQβ∧XY
⊃β≥≥∃_A ∨A)β∧4∀∪'∪H∩∩αwM!⊗∞L2eαRD)αRε∀b⊗L4PJN⊗RRαQ0$HI`≤@⊃st∧ uQ4Dλ3Qλ~tr1id∃∃⊗$ 3Q⊃**U0∃∧λr⊂3IH3∀c!λ3PR)@→_
SKIPG1( π∪9)β∧QPR∩g$B&Mα,rRJE¬*N⊗⊃∧26Iα%"eαεu"⊗JJ-αQ|4PIα*J≥!α⊗:∀J0∪λα".iit⊃+∧λpπP'S∧A∧fSk)iPD@ ;AHARACPERGOES IHA→∃
(A⊃¬→4PJ"JJJ↓E "λA⊂HK89∧thYB∧Ld
$L<
@λ λ3⊃C!↓0p2)D∃
A⊃.p "S'a`∀AIK@≤A9ππMβ%2}4⊂∩Aβ⊃ ∩@BαaIQ9i0$%Nβ_U~@λ∪0)8(⊂ "Pd⊂!d⊂e'"fλ'*fa⊃i
AP@∩∩$∩wβ'M∪∂≤AQ%≠∪9β⊂A∪9)β%%U!(Aπ!β∃≥0~∃≥ ∪⊂→EPJ≤_xR¬"β⊂r)J∀rK&⊃,¬b'Sα@
n~(∩Aβ∨)αA(Y∃_
&pε hPα33j@ ¬I 1,.FHSLB∩∩m⊂~ε∀b∃αε¬αJ>Bα)∀
∧Tλ4DihTe_Q!∀l@uQ(ε%⊗puλI4rw!⊃,¬bg⊂a&"P∀h g"⊂i"⊂$SαTEBRUPTS
λ∧∪≠∨Y⊂∃↓⊂¬DL@04ra⊃,p
$∩iP$iH!j`∩REH
(A%_
R⊗∃∩VBQ∧jεN1Q LLzhTjβ%ItL@04ra⊃,p
$∩iP$iH f)gH* λE MH λ[5β',hP&ε&_h &6⎇2⊗%↓λ¬B`(β$)f⊃∧@]bSαABLE OU@$αα& 5HZ%∃-
@λ
;4p
"SFA,!U()'FB∧bdiβEibU-!⊂_K→ ;DOF'T LEAVE RANDO@≠≥∃'&A∪8A!%∨Qπ)⊂Aβπ_h":>¬∩44λMα6B$
α`@ ¬εE∞βREENABLES IN@)∃%%+¬"Mαε5"⊗IααI∧-J λ∃ (αP!"Qdε DISABLED BY DALINT @∨$↓ ∪'∪9(⊂∀*(TLh¬εA~∃0 dλ(⊂1
λ∧∪!-~!αAc⊂4*@λ:E¬∀qQ Lz8R∧Lh¬⊂)Iα".hI4p0IHαb⊂ S&⊂$g∃)←FEαP)edT P⊂∩1_∞&6
~,$↔9d`5α⊂ ∃SE @∨→⊂A∪≥$*JJVα
B∧l~90hPα(λ
9p∧h H→⊗$fPi` 8π→'∀A+'
↓∞@-*(T`*λ∪0*9c"B$∧λ∪3j@ ¬M 2,IMASK 3@)!∪&A∪LA≥∨.ααR"∃∧~VJJ,rQαX~4Xh!→TmQ2(ε∃α⊂∞FHSH ∩$p∞J⊗,rε
2*α& 5HZ%∃-λ¬∀dλSt@⊂∪βP%'∃→∧4PJε&hP&B≡ααA1HhP&Bz∧¬αc⊃Q$`)t⊂ 'CE POPJ @ 0~∀4SZR"~4¬∀⎇X¬∩)@ ¬ DISABLES ALL IN@)∃%%+↓Q&A
¬=~A>≤~VJ&t84)@8¬∩λT⊃S⊂(t⊂∧g*⊂d IS SET SAYIL@∞A <A)→0A)↓
↓%
[9β¬→
↓%∨+$J0∀(⊂
'H)"`∪TLπ%
~(p
α→jD-∃*Z¬%~λj$|@(∩3(~p¬P)⊂h "iλ* gλ'`f`TeFE+Pi'⊂-U$ NK ABOUT UCIL@∞@O⊃∪$NA→_∞Iα$
2&:%h4*∩b& 5G!∃¬-9¬αc⊃Q M¬X∧r∧
C!⊂p
(∀'FE∧Sek"dH_V↔#∩)`F ;DEFER ALL INTERRUPTS
SETO 2,
DIC
SEDOM ANTAL@_∩$p∞~29αR"
!αε2bα& 5HZ%∃-λJ2∧D~hR∧∀XYb∧∧~8∀∀dXAPPM zα¬αF!PPM zα¬αF⊃PTtz
$xh!~∧⎇∧$
α`h!Q#\$~8∀∀dTλ∀dbλ*U"∧→Z∧⎇∃H→e"∧→jD-∃*Z¬%_Q'4L@04rd 4h∪)zQ1
Ih∪r)X4rc∧λ3Q →α`ieHTARRUPTS
MOVEM 2,IMASK ;FEW MASK
∪≠=)β∩@DX]
⊃M→
∀%β∪ε∩$∩wβ-
A'-∩∃αRD)α&6∧zJRεu!α&:$*JJV¬"Mαε∀)α>8hP&N⊗$~¬↓I`h(&∩L_$$%\∩VQα|r2eα$B∃αεmα>JRrQα&u"⊗JJ-αRL4PJB>A¬↓1H4PJB>A¬↓1D4Tr>BJxh(&B⎇α)αA`h($)[Y`~∧I~4lM:4∧r →e$-**U¬ Q(E≤l→jCPH+λ5%¬)qPPL→z2∧%9Z4
0⊃↔5∧|→jB¬$t d-EDλe∀,T D|≤~I∀l@H
⊂$
q03 D∀u⊂(9j#"A→3uQ)T+⊂λJs0 `U∧D]iPi"P PP_FEαfgk"RP_V↔⊃$)f#αD]`∀URN OFF SISTEM INTS WHILE MUNGIN@∞A∪9)! _4⊂∪ ∪H~∀&lzR*∧∧ ⊗∩dεTPDL ;NMP∞A9 ≡A∪9)! _4⊂∪!∨@@bY4⊂∪!∨@@bY$4⊂∪!∨@@bYλ$~∀&∧zA↓Ed↓5E!
H$%Nα(U≥∧z(R¬∀X¬∃*)H⊂⊂aQ@4u(∧+∀F@X∃XDB]j$)∪hπ AWAY @%∃)+%≤↓!εA!=∪∃)H~∀&∧zA↓EdJ6εNXH%nJ-~R>J*α6"⊃∧J6εNXh &N,⊃↓E2∪9A-HhP&6>4*5↓EdJ2RB$`4(→Yu (αdP_K↔#$)S#αE∧Qdi∧DB]c'kH f&'Uβ @∪≥Q%%+A)&~∀%≠⊂≡Z,I↓E1t2"NHaPPL→z2∧¬9Z4
0α".j85Q(λ_h@ Yβ⊂ ∀OP OF STACK
∪≠=)β~@HY↓ '5'β,~(∪≠∨-∀@dY∪5β',HIf@$YIB¬$z
2k∪∧λ∀∀⎇X@λ Yα"⊂$S`ieFB∧`daCEfgU ¬ $αbααNm~εX∧KZJ⊗N$zJ¬α→≡L4PJN =4λE≤M8~`hPα33jHαP⊂⊃1↓∩Nm~εXQ!∃≤]4λE≤M8~`hTiz¬∀xQ!∀$0TRa⊃".u λ3H⊃ ~s24j4∃∩⊃$λu0THYβ*⊂$S*"a)∃h*εEβE_+; INDPDL BUIHDER8 RETURNS IH
)!⊃_Aβ≤αα→1α~≤-λJ2¬∧4
∧|LjHU∩∧y`λλi∀β"I→β*)jT≥αE,⊂h∧P@%<∩∩α∩m≥⊗⊗ αBJ>$*≥∧→yb∧
4
t*¬y→Db¬Z8R∧l~)4,"λ_5_h!→T⎇∀YTβ
@∀p
h∀`k∧DNi`k"H'"bb⊃b⊂)"Qdij"TεE∧fSi"dPT∪#$∀f#∧DNh∧UBN OFF THE INTERRUPT SYSTEM WHILE TOUCHING
∪ %$∩∩∩lA∪≥)A _~∀%≠∨-
bYβ≥Q!↓λ~(∪!+π @bY≥%_∩∩w%!'/λβ αε:"α&BN<!H4(MαVN!β 2:&`h(&B-~!↓EdJ6εNXH%nεl
N-α-α>)α,rRJdhP&BV≤A↓E20H%nN
2∃αRD)αB
¬α>&:$*H4(LBJJj~↓!E$HI`≤∃Z@∧lTK∀¬∀@Q!∃¬-9β
bα⊃J!⊃,p3HD∀p5HT∃∩⊃$
⊂c"A~∃4r∧ε+⊃α!↔tp5HT∀⊂Q*84UQ(D⊂0taQ@4∃*9λ+
!"B2 JVThλa"".j)λ∪SjT⊂⊂4dλ1∀H xH⊃C!!4∃4i∧+
λe"".j85Q4dλC"B)YuQ(λe""'8st⊗$ qH∩)j∀⊃∪∧
∪h⊃AQB33jh3(⊃EI3U∀λIα".j85Q( →β*("∪εE∧fSk"dPV↔#$∀f#∧DNi"b`S!&"P∩g*"i∀*h*)CE∧bdTεE∧fSk"P_K)jh)PkεE'∪h)'FB∧e))U⊂∀*∀BD]i"U*i'⊂∃'P!`S&"iεBεEεE∞]]P*∩"P aU*`f⊂∩e*"i∀*h*⊂∩ g"&⊃i)FEβE≥h"∪⊂'k"T#&'kCE∩("∪'k≥∧Sgk"fH*⊗("∪)k"∧B]i`k⊃P*⊂)SP*$ U⊂+bP∩ k"P⊂g⊂ aH*'P*TbFE∧Sgk"P∃⊗$g*∀"&∧DNc*b#QP g*∀"&⊂)U aeP⊃) fbCE∧h*Td⊂*⊗∪$f∧DNdh)kQ_P g⊃⊂$h)Ub→⊂*S*ibbβEh*Td⊂*⊗∪$fεEαh*idλ*⊗$fPieDDNβSAVE IMASK U@ON ENTRY
PUSH T,LEVTAB ;RH IS ANTERRUPT PC ADR, @ AND () FIELDS OFF
PUSH T,@LEVTAB ;SAVE PC
PUSH T,D
PUSH T,R
PUSH T,F
MOVEM T,INTPDL ;STORE NEW INTPDL POINTER
MOVE T,PDLSVD ;RESTORE AC T
JRST PDLOV ;THEN PROCESS PDL OV
;;; PRIORITY LEVEL 2 INTERRUPT HANDLERS
;INTERRUPT AFTER NEWLY CREATED PAGE
INTNXP: MOVEM T,LV2SVT
MOVE T,@LEVTAB+1
HLRZ T,(T) ;GET THE INSTRUCTION THAT CAUSED THE GRIEF
TRZ T,000037 ;ANY INDEX OR INDIRECTION IS OK
CAIE T,(SETMM) ;SPECIAL WAY TO CREATE A PAGE, SO ALL IS OK
JRST INTMPV ;OTHERWISE IS BAD NEWS
MOVE T,LV2SVT ;ELSE RESTORE T
DEBRK ;AND RETURN INSTANTLY
;ILLEGAL MEMORY READ
INTIRD: MOVEM T,LV2SVT ;TREAT ILLEGAL MEMORY READ AS MPV
;HERE ON MEMORY PROTECTION VIODATION, T SAVED ON FXP
INTMPV: MOVEI T,%PIMPV ;TURN INTO AN MPV
JRST INTMER ;AND TREAT LIKE OTHER MEMORY ERRORS
;ILLEGAL MEMORY WRITE
INTIWR: MOVEM T,LV2SVT
MOVSI T,(%PIWRO) ;WRITE INTO READ-ONLY MEMORY
JRST INTMER
;ILLEGAL OP
INTILO: MOVEM T,LV2SVT
MOVEI T,%PIILO ;ILLEGAL OPERATION
;COMMON MEMORY ERROR HANDLER, T IS PUSHED ON FXP AND CONTAINS THE ERROR BIT
;FUDGE INTPDL AND JRST OFF TO MEMERR
INTMER: MOVEM F,LV2SVF ;SAVE F IN KNOWN PLACE
MOVEM T,LV2ST2 ;ALSO SAVE FLAGS
MOVE F,[LV2SVF,,INTPC2] ;WHERE F IS,,WHERE PC IS
JSP T,INTSUP ;SETUP INTPDL, RETURN INTPDL IN F
MOVE T,LV2ST2 ;GET BACK FLAG BITS
MOVEM T,IPSWD1(F) ;STORE MEMORY ERROR BITS
MOVE T,LV2SVT ;RESTORE ACTUAL CONTENTS OF T
JRST MEMERR ;THEN PROCESS THE MEMORY ERROR
;;; ASSIGNABLE INTERRUPT HANDLER
INTASS:
REPEAT CINTSZ,[
MOVEM T,LV3SVT ;SAVE AC T
MOVEI T,.RPCNT ;INDEX INTO CINTAB
JRST ASSIN1 ;THEN USE COMMON CODE
]
ASSIN1: SKIPN CINTAB(T) ;ASSIGNED CHANNEL?
JRST ASSRET ;NOPE, RANDOM INTERRUPT; JUST RETURN
SKIPG CINTAB(T) ;'CHANNEL' INTERRUPT (A CHARACTER?)
HALT ;NO, SOME OTHER TYPE, BUT NONE SUPPORTED YET...
MOVEM F,LV3SVF
MOVE F,[LV3SVF,,INTPC3]
MOVEM T,LV3ST2 ;SAVE INTERRUPT TABLE INDEX
JSP T,INTSUP ;SETUP INTPDL
MOVE T,LV3ST2
HRRZ T,CINTAB(T) ;GET THE INTERRUPT CHARACTER
TRO T,400000 ;FLAG AS INTERNAL
MOVEM T,IPSWD2(F) ;STORE ON INTPDL
MOVE T,LV3SVT ;RESTORE ORIGIONAL CONTENTS OF T
JRST CHNINT ;THEN PROCESS THE CHANNEL INTERRUPT
ASSRET: MOVE T,LV3SVT ;RESTORE ORIGIONAL CONTENTS OF T
DEBRK ;THEN RETURN TO MAIN PROGRAM
] ;END IFN D20
;ENBINT REAINT REAIN1 DISINT DALINT INTRPT MAILINT DSMINT INTERR PARINT NXMINT ILMINT SAIMER EYEINT SAIIMS SAIDSP
IFN SAIL,[
;SAIL NEWIO INTERRUPT CODE
;CALLED TO REINITIALIZE THE INTERRUPT SYSTEM
ENBINT: MOVEI T,INTRPT ;FLAGS,,INTERRUPT LOCATION
MOVEM T,.JBAPR ;LOCATION SO MONITOR KNOWS
SETZM INTALL ;DID A 'DALINT' LAST (ALL INTS ARE MASKED)
SETOB T,REEINT ;ALL INTERRUPTS INCLUDING REENTER
SETOM REENOP ;BUT MUST SET BOTH FLAGS
IWKMSK T ;ALL GET US OUT OF IWAIT
INTMSK T ;ALL ARE MASKED ON
MOVE T,[STDMSK] ;ENABLE STANDARD INTERRUPTS
MOVEM T,IMASK ;THIS IS CURRENT INTERRUPT MASK
MOVEM T,OIMASK ;THIS IS ALSO THE OLD-MASK
INTENB T, ;TELL OPERATING SYSTEM WHICH INTS TO GENERATE
MOVEI T,REETRP ;REENTER TRAP ADR
MOVEM T,.JBREN ;ALLOW REENTER AS MEANS OF IOC INTERRUPT
POPJ P,
;REENABLES INTERRUPTS AFTER THEY HAVE BEEN DISABLED BY DALINT OR DISINT
REAINT: PUSH FXP,T
AOSE INTALL ;DISABLED ALL INTS?
SKIPA T,OIMASK ;NO, USE OLD INTERRUPT MASK
SKIPA T,IMASK ;ELSE USE CURRENT MASK
MOVEM T,IMASK ;THIS IS NOW THE CURRENT MASK
INTMSK T ;THEN UNMASK CORRECT SET OF INTERRUPTS
SKIPG REEINT
JRST REAIN1
MOVEI T,CPOPJ
MOVEM T,.JBOPC
POP FXP,T
JRST REETR1 ;FUDGE A REENTER IF ONE WAS REQUESTED
REAIN1: POP FXP,T
SETOM REEINT
POPJ P,
;DISABLE ALL BUT IIPORTANT INTERRUPTS
3IMASK IS MOVED TO OIMASK, AND IMASK IS SETUP TO NEW CURRENT MASK VALUE
DISINT: PUSH FXP,T ;WE WILL NEED A WORKING AC
MOVE T,IMASK ;GET CURRENT INTERRUPT MASK
MOVEM T,OIMASK ;UPDATE OLD MASK
ANDCM T,[INTPAR\INTPOV\INTILM\INTNXM] ;ONLY ALLOW THESE INTERRUPTS
MOVEM T,IMASK ;NEW MASK
INTMSK T ;TELL OPERATING SYSTEM
SETZM REEINT ;ALSO DISALLOW REENTERS
POP FXP,T
POPJ P,
;THIS ROUTINE DISABLES ALL INTERRUPTS FROM -ENABLE BOUTINE TO RESTORE
; IH
)I%+!)LA
%∨4A∪≠βM⊗A%βQ⊃$AQ⊃β≤A=∪∪β',~∃ β1∪∃(t%∪∃)≠M⊗A$n@∩∩g≠¬'⊗A∨→Aβ→0A∪≥)∃%%+!Q&~∀∪M)>hα&*Rb0$%\22ε≥¬""εQ∧
21αLrR⊗J∃*BRM∧BεZ∃∧∩⊗⊗9∧"&Nε∀b⊗⊂4PJB>BRαA04Ph)n"-∩∃αRzαBJ>≤*NMαqα&:$*JJV¬ 4)n⎇α⊗Jε$J:≥α≥JNR⊗jα*V6¬→αR=∧B⊗J∃¬:&R↓∧
21α~MαN
2⊗⊃αr⊃αN-!αVA¬:&R!∧J:R⊗∃∩VBPhQnNR
"VMmααR"∃∧z
*⊗≥!α&M¬"=αN
2∃α&u"⊗JJ-αQα∩-α⊗:∩rQα∩
"¬αεt!αR",qαJ⊗,rε
2(h)nRD)α&:$*JJV¬!αNf≥"⊗%α
→αN>|qαεM¬α>NNL∩2∃9rq::>$)αR"
!αR"M→α6V≥!α∩&≤
2∀hQn&:$*JJV¬"Mα∩-α⊗:∩Lr≥αVα tb¬y ∀B yd*¬x~2∧<YhU∀
HXBpH!Q#J@+23JH4TU*
+"!∀λ+(I4p0IH4k+!QL¬fbSei,P⊃i)'iαD`f&λ"hλCEPT @DL OV
;<ESC>I <ESC>I AND REENTER
;PDL OV ALL EXCEPT MEMORQ ERROR AJD PDL OV
0↔π1≠π,HH&∞∩|~,4(hR& 5J*¬#R Yu$(⊂+ →U∀⊃ Dλλλ∧∧λλλ∧∧∞q∪iDuλ∃iZTV(λ_Su5∧
t⊂0hZp4Hλ*j*'S)P⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂βE⊂⊂⊂λ⊂⊂⊂⊂∀bj-&H)"bg∪h⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂≥S'Pα!Ki"bg∃"i⊂*∀ h)P∪'kP⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂εE⊂λ⊂⊂⊂⊂λ⊂&gk⊃P!⊗↔∩!!g$H⊂⊂⊂⊂λ⊂⊂⊂⊂λ≥cbjλ$g*"T)*h*λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂εB⊂⊂⊂⊂λ⊂⊂⊂(∃id⊂ K!⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂≥iPk"P$S*"i)∃h*⊂!SdεDITIOFS
PU@' AαXb@@@@@@@@@@@@@w'β-∀Aβ%∂U≠≥(↓)≡A∪9)%%U!(@Q→_∞I↓d*N
zJI↓↓↓α↓↓↓↓α↓↓↓hQ↓↓↓α↓↓↓α¬*N!α
b&6ε≤Y↓↓↓α↓↓↓↓α↓↓↓n$*~⊗J∀*⊃α&u"⊗JJ-αQα6
~-α∞-∩J⊗:$beαε≥"&Z∃α↓↓↓↓α↓↓↓↓α4)↓α↓↓↓↓αα*~~zα 19[ ↓↓↓α↓↓↓↓α↓↓↓↓βZ≡⊗Q∧J:R⊗∃∩VBQ∧rV6
-⊃α&:$yαε
∧⊃-E↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓4R↓↓↓↓α↓↓αB-~!α¬d⊃-E↓α↓↓↓↓α↓↓↓↓α↓↓nN$zJ∃α$B&Mα|qα&:%α∩1↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓h)↓↓α↓↓↓↓∧j>Z∃∧⊃-E2≤
&&6~B -EJ↓↓↓↓]""&M¬:&21∧∩∃α:-9α&6
~-↓"2α"εM∧J:Qαu*6
⊗∩I↓↓↓α↓↓↓↓α↓4)α↓↓↓↓α↓α6>4*5α [ 2&6
~-↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α4)↓α↓↓↓↓αα&:Rm~-α [ ↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓4R↓↓↓↓α↓↓αB-~!α¬br*
R∧→↓↓↓α↓↓↓↓α↓↓nN
2∃αε%⊃α&:$*JJV¬!α⊗6rεR⊗~α~J>j↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓h)↓↓α↓↓↓↓¬αVN!∧ 2:&b↓↓↓↓α↓↓↓↓α↓↓↓↓]~εZ∃∧"V66Jα↑>J%→αR=∧B>2⊃∧
∞Mα"aαI1∧1↓↓↓α↓↓↓↓α↓↓↓↓α↓4)α↓↓↓↓α↓αBV≤Aα¬2tJ1↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓hQ↓↓↓α↓↓↓α¬*N!α
b0∀LD∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧hR∧∧ααα∧∧∧l⎇hYR∧
I→e%∧IDααα∧∧ααα∧π5$D~4∧M~ hU 4⊂3UλZTU4
D∀⊃∪∧
∪r3JH4Hλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧β"H∧∧λλλ∧∧∃5p)~λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧πu5p)~λ∃r)Iλ∀Q*:∪tQ$
4q4Dλ0itd∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλβ!$λλλ∧∧λλ⊃+λrλ⊃EI3U∀λIλλλ∧∧λλλ∧∧λ∞th~Q(⊃ED⊃q5∧
∪r3JH4H∃ t∩3U
λ∪λλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧↓"Hλ∧∧λλλ∧ 3uQ)T⊃∩*
q
⊃E∀λλλ∧∧λλλπ:p5Q$λλλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λβ"D∧λλλ∧∧λ∪3j@ fP)$h)i
!∀P⊂λ⊂⊂⊂⊂λ⊂≥i`U"P)
MOVE R,.JBTPC
SUB R,IPSPC(F) ;OTHER JBTPC
CAILE R,4 ;GITHAN4
α HALT
MOREM R,IPSPC(F) ;TH@
A¬∃β_A%∃)+%≤↓!ε@@@@@@@@@@@@@@@@@@@@@@@@@@@~∧@@@@@A≠∨-∃∩A$X!R@@@@@@@@@@sπ∂!dA∪≥)A _A∪9)≡A$@@@@@@@@@@@@@@@@@@@@@@@@@@@~(@@@@@@Aaβ⊂A1∪⊂~R∧"1↓↓α↓↓↓↓α↓↓↓n∀*NB>∀)αNR
"∃αxd∧2∧→hB∧LhJ∧$b∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧hR∧∧ααα∧∧∧l@uQ3$λK∩4
8J∀J$∧λλλ∧∧λλ∞jI⊃3@
85Q(λdλλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧β"B(Hαa)"PeDDDNβH
∨.↓∂≡A)<A+'HA→
∃_A¬+PA≥∨(↓)≡AM$A¬∩>≡Jh4(→*%≥"λ
4LJ:αD2⊃⊃∪L$~:∧
$9∧l@H∩3JH4TU*
λ∩3HH4∧εEβE→f`Rd∧ INTERRUPT CETS DHE @≠β%→∪≥(↓
→β∞Q'β∪0[∪β∪0[∪≥ ∃%%+!PR~¬∪→_A'β%_Y6~)≠β∪∪9(t
∀%'↔∪!∀A,]≠¬∪→&u 4(∀ %∃≥D TL→b hP→Yu$(⊂
,@V.MAIH@∪≥P∩w∂PA)↓
↓(
ε2,(4(→X∀LBε!E"α∧∧ααα∧↓∪@8q5
I⊃(∪(→3β"A∀⊂TTjD⊃∀s)→Uα"'c f)QP f T&FE∧R&)-⊂∀⊗∀") 3@-¬→∪ βQ∪⊂≡aQ L≤→_R¬∩E
4MD)~Bα|X∧∀E@T@
@∃%M(A6J& 31⊃∪@9α ∂SE
∪⊃I%4A⊂¬BE"α""'e'a'∃d¬~∀%∞ε6*αI2ααhTT|)jThKαp $Qd*⊂%∪βBN@+4~∀%∧RJNQ∧jε&&pε0HKαs∪j8!"B)Yβk"P∀⊗_T*
D@ ;GEPλA%JB* xb∧lX∧th_q#"A_p23D
Kb!↔p∧iP∩h∧ A↓%⊗εbα≤@pπ ∀RLπ⊂⊃α≤BεI@qQ J∧αTTjD⊃∀s)→β*∧DNβH
≡X↓∃+'λααJ- z%"¬IλR∧Lh9∀$3Qβ!∧fgk⊃P)⊗→
*⊂ 8π')+→Aπ⊃¬%βπ$*H (!→%∃≥Dλ4Dt≠!⊂K\It¬$DT ∀`*⊃0 )∃h*εE∪`ddg] SETZM V,MAILIH
(~(∪∃%'PA∩NlJ0∃ Q)TL→`G⊂
OVEI @(αbRJVαIhPα33j@ ¬M T,V.MAIH &u 4*@Q↔4,@Qλ∩(iH⊂ `Rd∧
λ∧w ∪M≠∪'~αε 2 →e$4TU*
β"Q
9αdg*∞α P@+M⊂A
E↓2P4PJ6 =hT¬"dα3U
λα
H∨-∀A→2MαN∩→α⊂
E ∧]i⊃ij'i⊃P h)λ εLAGS TO TH@∨'∀Aβ(A%_
R⊗α*%-¬D
DL@1#"A→αgk"SP#⊗$S`ieFBα INTMS@⊗A_~∀&∧zAαQd04(~ uα¬EJ hPα4∪j∧∃⊃↓Q@∧h*Td⊂ ⊂,(T ∩∩$p∞J⊗αJU∀rλ∧⊂aQ@∧h'T$P ∀0j~(Lj0≥Q3 ⊂∃⊗ NTP@ 0HI`≥∀X∧u @i"P$SαTPDL
∪!= A
E↓2P4PJN.~ B¬∀XY∀`*β"B$ ⊂3∃↓⊃ ∧]c∪βR DE@¬+∂∂%_
:βλ∃ 4h∀i u3⊃∧ Su⊂∩ h ⊂EL∧A+≥1'&~(∩∩$KZ≤@q⊃( ~h∪SjD∀⊂2*(αb⊂!SβRRECTLY
∩∩l@Q ∪M∪⊂~R\"ε $α3UUβi"`RdεT)
λ∧∪'↔%!≥αα(T,@Stβ!∧P ⊂OPJ @ 0~∀&lzP∀3(∃¬JQ14j@*∧D]UβE NEED AT LEAST @∨≥∀Aβε~(∪⊂⊗>4)αQI→e%∧IA⊂K]X∧q$
λ⊂4d
⊂∧"P∩dεTPDL ∀∪¬ ⊃αα@
&l
`_L∧@]kQP
@+M(A%M%-
↓)⊃
AM!βπ
↓(∞∃ααy∀db hT, Q!∀l@uQ3$
λε$g∃("&εBα S@+λA(@2⊂εsα[Q⊃∪@8U0
L@β-∀@hA U≠⊂⊗@∀
t`:Q∀h¬4(⊃I@i⊂ ⊂C
∪!= A X!(R$KZB
αM→αRλ~B¬<α∩0i∧∃q(
@df&⊂∀'h%⊂∃'FE∧R))`∀↓%⊗⊗αJ#λhαC"Gdg ∀ERRU@!PA⊃β≥⊃→∪≥∞ααJ>VαI∀`(αiP∀⊃$i`⊂ATC@⊃⊂A)=¬2&¬αα8∀L%8∧
!QR3UλZTNB)@h¬TSTR [ASAIR\AL @∪→1∂β_↓∪⊂~R-∩JVB ∧∧D
4λ$,,d
$,≤α15HX H∃ 4h∩*4⊂3C! 3Q⊃*)P3λ I4tλλZTStKK εE∧R f*εB∧¬∃!¬%∪≥(βP&&>5~%αIbA⊗B&∧
I$¬\22ε≥¬""εQ∧JMαB
∩&@%∀λU∃∀z!P@!2TTjD∀p2)X4C"AQSP&RdεT: SKAPA R,[¬PIM@V]
∃∪1≠∪≥#P&&>5~%αIbA⊗B&=∩0~Hβ"Th→314G∧fgk⊃P#⊗$S*("&αDXINT PDL P@∨∪9)β$A%→)≡A_~∀&lzP∀3(∀EI4⊂uhF*⊃J!↔tp
'T P ↔HERE MEIE@%HAπβ≤↓
∪≥λ↓
&R_h &*∃~Qα⊗,j⊗JHHI`≥¬)x4-≥4 T,@3tV$λ4TSj!αEεE∞βHEBE FOR<@'εy∩A&u"⊗JJ-αP4
-J⊗&:#P&6>4)α→2LrRB∩`H%n→jB¬∧ID¬∧|→jD-∩ →e$zλaPPM8ZET∩
~∀qqε%⊃J"'_StPhT⊃2∃λZSP3∧λp3∪↓QL¬DfSk&P)$h)kQ→∀#∀B]cbjλ≡"iaO$P i⊃P∀ 'Tdj$k⊃P#'i∪P#g&⊗TFE≥Ba`df⊃P)⊗_MYDD]Se&,P⊂d i Ph"i)H*h⊂*∪P_[[H$ k"H&b`g∩g#FE∞DP""⊗ P)⊗∀∧D]c∪i!bP∀⊂*'P⊗"i'FB≥DP⊂∃&'P)~____∧D]Q& cP∃$ j⊂∃$$iP∩iP gλ$g*"T' f⊂⊂`f&εB≥DfgU"fP)$h)kQ→∀#∀B]i"iU'i"P⊂i#jfQg*⊂*∪P!d'∩g*εEαaf)!⊃$FE∧R))j⊂⊂d'$g∃∧D]c∃b#bP∃$"P!R g'"S⊂$g*⊃i)*h∃εEεE∞g"kP∩g*"i∀*h*⊂∪`ieP⊂$j)Vλ$g""V"b⊂!⊗P!ji∀"g*⊂∩g*"i∀*h*⊂∪*fa"TεE)`Rdfi]αX⊂∨P⊂∨P_λ∨P_⊂βE)`Rαdg*(∪k∧DDNf`dfλ$g*"T)*h*βE)`RBXεE⊂λ⊂⊂⊂⊂λ⊂_⊂∨H_⊂∨P⊂∧D]S'j⊂!Ui)"g∃&,P"S a&"Q⊂ j⊂⊂g,P*∩fbFEαdg*(∪k∧DDNh i⊂⊃i)'i∞⊂'g&⊗P f&∪kP("∪⊂'kεB∧Vdg∃!f%VLDD]aS'aeP∩g*≥⊂⊂f&'kH f&⊂∪j$"i∀FE∧Xλ∨P_⊂∂P_⊂∨H_∧D]S'j⊂*Tbb⊗⊂∩fh⊂$S*"i)∃h*)FB∧V↑$S*!f%W$g**∃$←⊗XB]↑"iP←$]⊂⊂f&⊂"V!bh*λ≡"iaO$P g⊃⊂!f'PeFE∧L∧DD]Pd g#Rg#P(UbjbiK⊂''jλ*ibbβE∧dg∃('k.∩g*$f∪n$g*∪,&n$S*( i↔$g*(∪k⊂≥h⊃&⊂'k∞⊂ f&λ&bfgT,P"i∀)P g⊃⊂("&λ'kεEαX∧DDNh"(⊗LXP$g∃⊗⊂''U⊂*ibQεE∧dS*('kαDD]dS&]⊂'S&,P(⊃&⊂'kβE∧dg∃('k∧BD]g,∪]⊂'g∪,P("∪⊂'kεB∧X⊂∨H_⊂∨P∧D]gU"i#&∪kP g⊃⊂'f"λ!f'aRP*$aRFEεE∞b$ih⊂j!d⊂∃ a&"K⊂$g"⊃l"b⊂⊂,P$g∃"i)*T*⊂'*Sa"iεB)`db∀h≥εE∀`RP)⊃h"`jλ_XV$S*"i)αD]dg∃"i)*T*⊂"i∀'i⊗⊂∃$$iP⊂`g''U⊂$ h∀"gεE∀`R⊂)⊃h"`jλ~⊗$g∃"i)εB)`R⊂αf`ddS*∧DDNf`dfλ$g*"T)*h*βE)`Rλ)"h"Pj⊂~⊗∩g*"i∀εE∧h⊂i$g*αDD]h⊂i$j,H"i)'TεE∧aS'aedBDD]aS'aeP∩g*"i∀*h*εB∧dg*⊃i)⊂∨H$g*"T)⊂∨P∩g*"i∀⊂∨P$S*"i)λ≥k i∩gjiP∩fh⊂$S*"i)∃h*)FB∧blbRg*∧DB]↑"iP←$P$S*"i)∃h*εEαdg*"T)⊂∨P∩g*"i∀ED
INTERR ;FLOATING OVERFLOW
INTERR ? INTERR ;UNUSED
INTERR ;INTEGER OVERFLOW
REPEAT 4, INTERR ;UNUSED
] ;END IFN SAIL
;ENBINT REAINT REAIL2 BEAIN1 DISINT DALIJT APRTRP $PDLOPA M≠∪≥(↓+π↓∪9(A%∃)% AI)$D~∀
∃%
≤AλD`Ti'¬∪_@5q2l4U~V
R$aα∩⊗~iEAα|r2eαt*P≤Lt ∀u$Z*%-¬Dλ4|$QQ#ZR%(∩∧tzHR∧|dλ4
-I→tpH':tDhZd-∩λI∧*∧α3U
λ⊃λ∩*4∃∪u(9⊃1∧ 5λ∩*4⊃∪sHT∀sh →H⊂(λ_4U⊂)→β⊂'i⊃ ¬R OF
;IL¬')%Uπ!β∨9&\@AQ⊃∪&A%&A:,~⊗NN
∩eαRzαBJ⊗αhTe"λI∀lLhp∧-∃)z%~∧h)tj¬8:$-p3QaQLp
hλ* "P∀ ∧@_AM→∨(A¬→→>≤
R&>p∧αE$ ~2¬¬(Zd,UJ4¬≤
hXB∧4z2b∧iz"∧-α⊂3* ⊃+λ
Ic"Nh ¬ OVERWRITTEN↓
eαt*N@$X@λ →β*"i∀*h ∀S)(@A⊃_
αizB∧≤α⊂3Hx(⊂3K∀⊂πi"⊃i$g#H'cεE∞βP "M→α∞xHR¬<α5∩ @h¬T MEP &≥*2>Vα4∧9⊃0ri→β#P*∪β SEE T@⊃βPA%β≥⊃_∞ *Dλ∃≥Lh9¬∀|βSu*1 ¬≥dSαTE@%I+!)&↓(∞&2bα0∀⎇Dλ4
4q(
Iu⊂3∧ ⊂πiiPcbWεBαλ
∀w%_
R⊗α*%-¬DλT`(0S∩)@#P∂DISABLIL¬∞~∀m⊂~ε∀b∃αiz$lD ∀`*⊃0 )∃h*)Vλ!`f&⊂b⊂ jλ)j I∃*hεE⊃dεBINT:∪~=(
⊗%¬!2J⊗-"J@$KZJ,YjD
∩λ¬∀H~λ⊂1
!αE∧fSβVEMT, ≥∃ %⊗8hP& ,zhTJ¬AH∃¬∃J*HKαu∩ ~h∪∪h`j$gSα FOR ALL APR TRAP@&4⊂λ&6⎇2⊗ *묬@%! H∀∧@ ;IL¬
∨%4A)>¬→5EA¬2&¬αTz∀$~AP@!33uHY(⊂
⊗∀h∧DMSK
∀∪5_∞Z⊗hεQ2→P∃≤X⊃↔5$Dα4h ~h⊂u**Q3U∧ 3P
"∀)*`⊂T MASK
∪~9(
⊗5¬!2>→P∃≤X⊃↔4@∀sh ~h∪sλD⊂∧g
⊂i)*h∃⊂
ASK
∀∪M ∩>hεJ,Y→e Hα.tH_3P
"↓R @∪≤Q⊗JJ-αRMα
∩¬αy1P@!4q5 @dP ∩DE@
∨ $∩w¬+PA≠+≥!αN⊗αD∧)u∩_i⊂1taQ@∧ibU-&P$SαTALL 0↔/⊂A⊃β-∃_ ≡P∧"&Nε∀bε⊃αb1α→bD
∃*Z¬%_Q!∀
¬(Yd$∃ββ!∧h'h∩⊂(⊗∧BDXNO OTH¬R TRAPS @-%αA)⊃%&A6,~"ε:M~44!Q#@:Q+1)@ a&"H c ∀ER DISABLE IH
)I%+!%_4*J,
& 5G!∃¬-95E¬J@hPα03J8(∩3JH3∪α↓↔q∩4h_S⊃1∧λ3∪λ _β*)←CE SKIPAT,@∨∪5β',HI`≤tuD¬-≤T tdλ∩3JHαi)*T*⊂&`TeFE∧λ⊂)edT P ∀,IHβ',∩∩`.,bN∃ααZ4*∧8¬4J(αg ∀MASK
λ∧∩@@↓≠⊂≡Z,iαQI→T
≤αb.jI⊂∧iP∩iP''Uβ THE CU@%I⊂~Q∧jεN1Q L
λ∧Q)@!⊂ ∀,
∪'-∪!2*αJ,Yie@"B( *Tp
4 ¬AIN2λ
∀∪M↔∪!∞ααJ,Y→e @ ¬∧P∩))`∀ R@β∪8b~*∀*ε&9α ∞A→αgk"RP*⊗!T'h%εBα MOVEH
A"a0∀T)z∧1 ¬∧h∪βP FXP,T
JRST REETR1∩∩m
+ ∂∀AαA∀*⊗ 5HZ"∧Ld t`((⊂`TP)"hUbi`∀EDλ
∃%∃β∪≤@λπ M≤X¬∪IT∀Q1)→β*εEαib`∀NM REEL¬∨ ~(∪!>αα~bAe 4(~ u∧Rλ∧↓Q@εE≥Q$i`a∪ ¬ ALL BUT IM@!=%)β≥PA∪≥$*JJVα
E_hαQ∩*93P
: PU@' A~@
¬E @ ¬∧fSβP
APY∪≠βM⊗∩%\:⊗@"λ:U∃∀YjB∧l~90hPα33j@ ¬M T,O@∪≠¬'⊗∩∩m%⊗6,j∀4H∩*D⊃StD
Q0 bU$g#@ PURPOSES
ANDI T →β@X
Bza⊂K\βsS∀⊂3∪ @hπ IMPORTAL¬(A∪9)⊗J∃*BRLhP& ,zhTj¬EI∀l
91⊂K]I ∃~∧α4hλji)"SαT @'Qβ ∩∃∧z→αNβ~5$3#"A~q0
-∪P)"bRdεT 8π⊂~=¬∩⊗⊗:αHU∩th∪I@hπ
APREN@∧A(X4⊂λ&B⎇↓α5α⊂λ⊗∃∧¬∀∪A_∞B$
α`@ ¬εE∞βDASA@¬→
A¬→_A∪9)⊗J∃*BRLhR∩ε2LrQh~
U≤Bλk¬αeAQ M≤X¬∪iT⊂∧g*⊂d∧@_∩$p∞"ε4)α$α4p(&"b AH@_A%_
R⊗α*%-¬J1P@!4q5!⊂",R@∪9(∩(L
BJ⊗t⊃αQAQ M∧z∧∧5E¬J@hPα4∪j H⊂↓Q@εE≥Ph)⊂*∀ h⊂$⊂e"&$Sα@∞~∃¬!%)%@p∪'Q5~A¬∃⊂~>H%nε∃~6 %X¬∪∀⊂π'P↔!Si"QdεTER IN@)∃%%+↓Q&A:⎇9∧4!→T⎇Q3 ⊂∃⊗ h)∀i*εEαib`∀Z T _~(∪β!∀*0∀∩λ@↓⊃,¬g'H$g ∀ERRU@TS DURIH
∞AQ%β AM ∩Vα↓P@!33uHT∃∩)@*("&αDX@+M
A(A¬&A)⊃∀A∪≥%α∩04U∩⊗B⊗
!↓QD
¬-≤αλ∃¬A ∧]Yλ$g ∀ERRU@!PA/>∀"Mαεt!↓Iα$*~4X∧Q(D∃stHJc"B*
4r⊂∃⊗⊂∞JBTPC 8π∪≥$*JJVα
B¬∧1Q M¬X∧r∧
λε"∧B]i`k⊃P aSTP iP∩h∧S IL¬)∃∩VBQ¬:0≥3⊃⊂⊃'FE∧T*id T,R
PU@' A(@20h ⊂LYzd,@(⊂
,IH
)!⊃_∩(Lj0≥Q(⊃¬I304i1 ∧]j∩$iP$TP#gdSα@∞A$yα<βh∩)@⊂ NT MASK1 WORDλ
(Lj0≥Q3 ⊂⊃⊗ PSD@bQPR~(M~⊗Bi∧!0$!→TmQ(⊃EERPPi@$@ ;GET AAP +β0A!%∨
''∨HA¬∪)L~∀&%∩0∀(⊃Kλ~λπ ⊂ARλ
∧∩↓)→=∧!1!⊗α ∃∧
%⊃⊂K]λ~$M⊗(⊃**StC!∧j)'⊃P#⊗ T↔('kαDX@!⊃_A>3x4(∀ %∃≥D∧E∧⊂ε'kβE TRL¬∃α2bεAi→DhHα.t
ZQ(∀λ_q(⊃**StGd¬∀r∪jYα"⊂*∩$iP!⊃P
@!X}R4PIαRIt∧"bα 4 ~βi'TCE TRL¬∃α2bεAik∧hH↔9d`9β⊗bl∩ij g∃⊂
EMMRP∩~(∩A)%<A@1-α&&BαaP@LYzd,JλADM¬8¬qε∃∃
#!↓33uHT∃⊂*
TqU↓Q@∧e*Sh#⊂"&bfbT)αE∧SβP)'Q$A7βMβ∪$Aq+≥%
∨∂≥∪iλAβA$A∪≥Q%%+A)9:~(∪⊃β→P~∀
∀⊃! 2⎇1h&6⎇2∃αQd
BJN5 4(εU∩NQα∧"2>XhP4)N$JN6&≥→αε9∧J:R⊗∃∩VBPhR∩N⊗LrQh&¬*N!α5BA2PhP&6>4)αQ2LrRB∩`h(&6⎇2∃α→dJBN∩3 "Q$KZJ⊗N$zJ∃α
αIα~d
≡Mα$yαR"⎇~∃αε"α&:R-∩JVB"αR&6(h(&6⎇2⊗5α2b&6ε≤X4(&
αJ⊗:∩α→04PJB>A¬!2_4PJB>A¬!2H4PJB>A¬!2⊂4PJBVNBαA1""H$%n∀*RVJrαB4PJB>BJαQ1ThP&6>4*5αQdJ:RB$`$%nα(U≥$z(R∧LjJ∧$`Q!∃∧⎇∧λeEαJAPPM99∃∧b
(T,LjAPPJ λ∀e ⊃⊃∪@8StHλH0U1hy3Qk∧
∩∩4d
r∪u)Hλ∪SjD∩⊂4
λ3H∃)i⊃4taQ@""!↔psqλT⊂∧iP∪'j⊂(⊂di"bλ!gi)⊃aj&,H∀"$iRg*-b⊂f g*↔Ui"`Rg*∀FB∧iedT!P)"Qe'hεB∧P('T%⊂(⊗βEfgU"fP*)"biU*∧D]UbP'"Qb⊂ jλ&"`iU⊂'g"H aFEαfgk"H*⊗$g∃("&∧B]jabH*⊂ iH*$"P∩dεTPDL
ADD T,R70+10 ;WE MEST RESERVE THE SPACE WE WILL NEED
MKVEM T,INTPDL
SUB T,R70+5 9BUT LEAVE 4 DUMMQ WORDS + 1 FOR PC
POP P,(T) ;PC IS THAT WHICH WE WILL POPJ TO
JRSTREEDR1
];EJD IFN D10*4SAIL ~bx~∀
∀m)⊃
A→∨⊃→∨]∪∃∞A
∨
A%&A
∨HA)∨!LZb`A¬≥λA'¬∪_~∃%
≤AλD`Y6~(p∞"⊗∀)α~>⊂α¬αVα8U∩∧9λ∃∀:HU∩∧→jD-∃*Z¬"b X∀\*λ→b∧LhJ5$90∧5∀→XR∧h@∧83∪λλ→⊃R3JA U0i 3UεA~q1⊗IT∀Q1)→β*∧DNβDON≥(Aβ→1∨ ≥αt→6J⊗,rR⊗J~αR=α<yαRα∀zV≡hP&6>4*5αQe∩⊗⊗N5 $%nαxR∧tXXB∧
D D,
:@∧l@Q(⊂(1"B3)zQ(∃¬I3Q∀λIα".jZq(∃∧λ4h∃ λαP$g∃("&εB∧`b"λ*⊗)≠L∃XX∧B]f`∃ST SET INDPDL TO AFTER ITS REAL USE SO DHAT
;RECU@%M∪ ~∃∧J:R⊗∃∩VBR~αVN∃∧"&~~-∩⊗ 5D
5$90∧
∀X~0hPα33j@ ¬M T,INDPDL
SQB T,R70+4 ;WE WILL CEEP A DUMMY FOUB↓+⊂≡J%_4(~
U≤BλAE@6 ⊂j t∩W!↔t⊂hλi⊂1tdελ⊂4d
⊂∧"lH&`lP⊃bj⊂)⊃ij'i⊃b⊂!,H%))jλ→⊗εEαh*`∪H T →λ$∩w'βY
Aβε≥&Aβ&↓∪ ∩M∧J2R⊗α*%-¬D
tm3⊃⊂⊃'FE∧T*id T,R
PU@' A(@20h &6⎇2⊗ *λ@ ~∀pb∀*∀FB∧fgk⊃P"⊗$S`ieDB]h ∃T O@→λαα& ,~92∧Ld
t`:Qλ$ 04raQ@∧fgUα@~A⊂Y∪!≤"→E" ¬⊂hPα33j@ ¬ @(αbJ,X∧uJAα@
SEP@∨~ααJ,Yiu@ ¬∧iQh∧@∨~ααJ,Y→e @ ¬∧e∀)j⊂!R'$g*βE
λ∧w%∃_
R⊗⊂∧¬%∀~∧∧%!Q%∀10
)∀≥ AOSG BEEH
∨ 4⊂∩Aβ='⊃
AI∪≥P∩∩g∀*⊗ 5HZ"∧IIu 81∂c!↓(λ∩J*u⊃Hλ¬RPSjλb".iIt⊃+∧λS⊂1dλ3Q⊂⊃eP'gβE MOT¬⊗5¬!2J⊗-~RP$KZP≤* hT,"λ~B∧dX~5"∧βsQ$λ0c"A→αgk"H*⊂INTPDL ;U@'∀A(AβLA)"*α& 5JλD`@ ¬∧`Q ∧ @(αbI]AXε∪Hα.s*Zuλ∀hZα⊂$g∃("&⊂∃'P c∃ ¬R ITS @%∃β⊂⊃ααZ4*¬9t¬$D~AP@! ∧DDNβRECURS@∪-∀A∪≥$*JJVα
E~¬X∧q$λα FFERENT STACK AREAS
MH∂-4A(@2LrRB∩`h ⊂M8¬0D
λε)70+4 8π ≡∃¬:& $βλ∩hX4λ⊂$λα*ffVP#'jT⊂+gi⊃)FE∧T*id T, ≥∃ _∞BHI`≤Lh¬⊃**U0λ*λ(!FE∀ ¬E@)Hbt&¬*N!αα@λA ∧]iPhεE A@εO&A¬&A&%→α&:αHU∃∃X∧∃∧
pπjf⊃⊂"'FBα P@+M⊂A(YH~∀&¬*N!αα@λaα@
SEP 5~αα&BNαxC∩EE⊃⊂K\iz$8(∪0*9h⊂
'H-"`∩O AS IS U@'∃λA'∧*≤L→IEHhαB3)@hεE D,IMASK ∩wM)∨%
↓∪⊂⊗ε≤YαεM¬:0≥∀F⊂λ X4rc!∧fgk⊃d¬ D1∪!' _bQ(R4⊂λ&6⎇2∃αQe∩⊗⊗Nαj@hPα4q*IpεP)⊃bg'hβE SETO@~AI∪≥P~∀&U∩N@"λ9∧`)3P
εBαX
∩w∃_
" _d`$⊃ _βEβ≥` NTXIT IL¬)1 ε"∧Lh¬⊗
G(∩3JI⊂πiP∩dεTLS1 @∪≥Q→&rAa+∪≥ ∧¬E,@π
"α∧∧(αP''Sα-P∃I_
α↑M"!αiz∃,MD$-∀wqP@!(S @ibFEαh*`∪H @
"αb&BN ¬∧2Hα.p**P3QhT∃∪h
(αi`∀OR@
Aλααε 4D
DD(⊂λ!CE PUSH @ 1∪!'∧→"2⊃⊃∪@4λ∧$g⊂βH + %_
:λiD=4⊂
$λ1P
"T⊂!d"PβK@∪≥≤~∀&¬*N!αα¬D:⊗⊃⊃II@∧D]H εOR↓' ∩ε≤Z⊗⊃αLrR-**U¬%1Q L@3uQ)∀∀K⊂i9,β"A→αgk"SP)⊗$T)h!T⊃∀@
IL¬)1 ε#@!α@
IFL∧Aλdβ↓.⊃Eαaα*J≥!α%9Y∀`*α.q ~pεdiTP*$"H$g ∀ERRU@!P~∃∪
8A∪)&10
48→Db∧α3U
∞""'i"`∀URN @!A∪&A=_ αR⎇↓α>→∧J0∃%λIB`@ ¬∧PαL@∨'∀@b`@β$%@4λ∀`(α⊂ f∀dπ @)!
A>d!α$XhU∩¬yz$%_Q!P@)3P
,∃≤X
SEP 4~(∪'&D∩&@"λπ⊃ ~pεdiW∧@ ;DIS@≠∪M&A&u"⊗JJ-αP (αB(∧ε,λλ_⊗"/[
YDD]T'h⊂ PβS D0A$XA¬_
"λd∧4M*:@hPα-___⊂⊂,,IN@)A _∩∩m∪⊂~R-∩JVBα@
≥⊂0rd
⊂πdg∃ ¬R
] ∩w∃_
" _d`$⊂∧j)CE
;8εvA≥"ε 4H~$"∧β∪ti→β#P$SαTE@%I+!(A∃1∪(~(p
mm¬∩⊗NR⎇∩⊗Mα5BA1αr⊃α⊃]⊃.→α
→α&:αK∧Mλ⊃∪hZhπεE∞β;; ALS@≡A∃1!πQ&Aα@9→∨'
↓%%∨HAπ>$)α&9¬⊃0⊂@ ¬εE∩dεTLOS:∪≠=(
*λk¬αbα⊃V
¬ ∧D]T'h⊂#⊗(⊂FXPλ
*LrR2Mα↔ hT_ib∧,
hFLλ *Tp
1)`
INT 0↔ %'⊂⊗&≥→αRλT∧L@U⊃4J*4⊂
εBαIFN↓∪ ∩MeY0∀≤→IB∧Lh¬∪
7 εE∧H↔&'iQP_X_∧¬
IH
)→Lrt&≤*RhQ!∃≤Mα⊂R*D↔⊃∩*9αdinαDXDISH∪'LA∪≥$*JJVα
@hPα(+β∧∧¬Hα/[∃LD@ ;PLπ Aβ
&AλX↓$XAβ9λAA→∪%' h ⊂J∧∧ααα¬EDLU∀⊃ A ∧]dSαTE@%I+!(AM)βπ⊗β!∨&u"⊗HQ!∩αα∧∧ααbβ∩4
:⊂j⊃E⊃,¬g"Uβ PC ;@∪≤β_∞J∩-⊃αRt
5∧0r1K⊃ ¬∧Pλ⊂⊂⊂⊂⊗ PSD@bQ_R∩`.t*P~αβQ⊃F⊃,¬P*∩ ¬ .LLπ'
A
_∞∩∃bα0≤tQQ Jα∧∧αααβ∩*
q⊃LEλβ∀D]SαEW .D@d∩lA≠+≥!α6⊗u"& <βH⊂)Iλ⊂
$∩iP ∀OLε~(K!AA@αεαbe!⊃∪@5S∪thT⊃0 )∪βR COD@
4Uh$%@8Yd"∧α1SD 5∀c!ε@
;lp
α⊗β ¬"∧α3Uλ~TU4
Eλ⊃si→β#P*∪β U@'∃$A&q"εJJ-αQαλ→d$dX∧@↔βE_;hAβ%∂U≠≥ ε~>I¬""*λ¬2)@*⊂ ∩NUP ∪≥∀A∪&A%_ α⊃ph ∪[4εh
λα&)P⊂i"P$Sα GOOD SHAP@
A¬dA≥∨.αaα>→∧~0≥-*8R`! ¬εE⊗*dg*∞α SKIP@
A∂
1 ∩$p∞
∃∧*bRJλεN@-(T∧∀zZB¬$α⊃#!$j∩∧H↔&'iQD@ ; @∂∨∨⊃_
⊗Nα4∧`8H⊂
$⊃P ⊂DLS!~∃%
≤@@d!EA8@Fεβ⊗⊂$⊂d∧T
8εvv@XJB>A∧2bAHk¬Hα.p*D∃∩∩*4∀∪r)@*⊂ ∪HLπ+→λβ
∃αα8∀l*λ~2α¬8¬0Dλβ(λP,R70+D~∀&lzP∀*λk¬αbα⊃V
∧ εE∧T*id4⊗ PSPC ⊃$∩∩`.¬*N!αLrR-**U¬"λ∧⊂d pπ⊂)U ae@1'i⊂*RdεT
PU@' A @2≥αb$iI HKαp4J(3Qq$λβ'i0aP"0dεD FLAGS TO BE RE@'Q_∞J⊗ h ⊂Mλ¬4i∧⊃P($h ∪D(@R∩m!+'⊂ααε
α ¬"
⊗4zJ* →e$4TU*
λ∧P'Sα F@1@~∀&lzP∀,TλBdMλ∧q¬λβ∀DDNβCAUSE D TLεA'-∩P∀MhT¬$DTλDM≤β24aQR1SDλα_X∃Q→_⊗-CE MOT¬∩A⊂Y+∪≥P∩∩`.t*P~∧λ1P@!33uHYαP",IPS@!Q→$KZN@$z(R¬<α⊃4HT⊂πf"λ(!P+QdεT
JRST @ '≠%_
P$KZR"⊗p∧∧$M9Y∃≥~λ¬∩λT⊂∧g*⊃i)*h∃∧¬∃:$∩w≥⊂A∪
≤αα⊃EA\!I@4Ph ∀Li`λ ~α)V-KαCALL XUINT9~∀$@]→∨M
@b`@`⊂∀!Q%E,→jCKPα4q*K@εE∧TdhλBIT \DISH∪'p∩∩`.$JN ,~:2∧Lh¬⊃**U0λ*βE 500 0Y∩⎇2YL$↔:∧`:λ⊂0j4⊃λ
%λ⊂3HD⊃H⊃I~Tp
εBα ,,IH
)!⊃_∩%\J0∃$X∧TJZ∃λ∀jH0r`⊂∀'` NTER~∀$@@b`@`X@2,J0∃ ⊃↔4`(5h∀λF@
,,TTYD@b∩$p∞ 4X¬`∃@ ∧F "4⊂λ%Qβ↓AAAbbRRf$1H$↔9d-hQλf@εE.BDXEND @∪
8A∪)&4⊂λ_w6,j⊗JI∧jBZ⊗α*"¬¬X∧Q**H∩3 @h"`∩ IH ∨!HbA!βIβ%$A5⊂⊗⊗α&R∧lYXE∪: XTl-'λ
Y30λ T⊂*dfRd∧O UIH/%<A+∪≠5!,@Ia→∨'"↓∩bIz4*∧β13(ZL∧⊂*Rd¬PAR UIMHLO @+%≠ ≡JzαV&6mαP∩∧α3phZTH∩)@ab`∩A IOCER8 IO@π$r4⊂λ4!Q#@7nh∪(Yαgi,H g"2πPCODE E@%I_∞JMβ$¬∧
)~EJ@λ⊂λ*T ¬, MPV, ILOP.
λ∧vv@XεεNNαYT*∧βSh Yβi"P∃$ g3βNE HAPPENS ATA TIME(~∀4⊂
6⊗l*JI@!Q$M α+J:αibjλ-P∞RJPC _Y)!π'βY:~(Lj0≥Q(⊃EI3P
(⊃&εE∧SdπVE D,F@1@~∀&≤Z&B∃∧:≤5α⊂!∧P&gUαE FXP,GCFXP
PUSHFXP,D
∪≠=(
9αα%DM¬8¬qε∃⊃J"'j λIS SE@#U⊂~∞*α.&2e→αRλT∧d⎇uYu∀⊃0 εBα AN∧@παA∩b&BNαxC
De⊃∪@4⊂R5∧λβ)'fH* λE IH
)I%+! εP≤⎇(AP@! ∧DDNβ FOR @λb`0A/&daα∞ybDLdλ∃¬∩λiD=4 t2∧β14I~αεE∧∀e` PE R∩∩$p∞2z8R∧Ld T`:Q(∃ λ3H∪i@"P!$U⊂+`iH)b`∀
λ¬∪(H$@]→∨M
~*L20∩∧F⊂¬8L∧ ⊂3∃↓Q@∧fgUαE @$1∪!'<!E"→Hh ⊂Lλ∧TK⊂"⊗$T)`!T⊃∀@
IT λ∪π¬∪⊂→α ¬E$Dα4U∃m""'b"* @OE@&70A∪8A→>≤
R&>p¬M@ Q)∃"α(∩J*u ⊂πibCE TLL¬∃αα%BB4∩/
λ4O@∀B]k`iH$j⊂ H( i$U,P"i∀'i∨FBα JRSPλA∧
J-*!P@!5∪∪HT∀K
∧Z⊂∧↑+T'←∀DNβP∂%∪Q
A&u"0~¬(X∀"lyiEKxQ!∩∧U*:B¬¬X∧Tλy εE∧U)'"P∀⊗∩`⊂I<ILO> 0↔∪1→⊗≡aα>B-∩ε@$α3sGq ¬∧P∩))`∀IH ∨!∃$⊂∀!~E∀td
"b4∩/ Z∃H∂∧B]`
EMLπ% %¬αJ>R,~QαZLz2εRLz0∪xQ!ααuh→E,(α""'g'←←OP+d U⊂ λAPP@≥⊂}}}~(∪πβ∪∀A⊃JX$#λα".iHαj⊂)T ¬C@!⊃_A%M)∨%βQ∪⊂≡d ∧
¬λY`hPα(∩J*uλ∪*
Q0 )αDX ET¬≤A%A>t)αNIzB∧su⊂⊂βL@∨¬ %λ4⊂λ&ε⎇→α&Bα:∧5⊃J"!↔pU3*∧∀⊂h
λ4p
3βFFENDING↓∪⊂~NαJ%,≥I→t`! ¬∧e∀)j⊂$SαTXIT
~∃5!-∃⊃`⊂M99∃∧
λ@h¬IMMPVP~~)!+%I$t%∧j0≥Q2(λE∃23*@i'FEαe))jλ&bfbT~BEεBαILOPER0∀∩4⊂
&~p∧∧#∪¬K0hPα4ri~⊂π⊂*⊃dεE@1@~∀%∧RJNQ∧J2>Bα !QL¬P*∩$iP H!i*c∃,P!*U⊂ b"Th¬ATE T@⊃=%2A∨_A⊗JTjA=1Q LDβ∀VD
K
λE εE∧PβAIE R,3 $@h
A@HI`≤-)*TmβqQ J∧αTTjD⊂∧f'T)_FEαd RZ R,-DQ⊃⊃Q L≤→_R¬∩F⊂εFλ
!↔p¬)lT←FE∧H%))jλ$f'h∀_@
HRRZ R,0(D)
∀∪!%%~AHY∪!≥α~De⊃⊂K\9It(Q0 ⊂∀ ¬S@)¬%(Aβ⊃ %≥_4(→*%≥λ∩3JK⊂∧jεBαILOPR10∀~):∩%\*0∀" _d`$⊃@_βE SKIPA D,[UIMIH ∨:4⊂
Bε∀*JI@!∀∧l@uQ2$λα⊗*dSh iεBαMEMER50∀∪!%% )¬⊃2&:αJ∧$`⊃↔4l9 ∀`(αP"i∀'i⊂@5βHATTO DO?
∀∪
β∪≤AHY∪≥%α∩19I∃¬≤~a∪@91H∃ λαP"i∀'i⊂$⊂h("g⊃b⊂ ↔ITH@∪≤ββ⊂→αLrR-**U¬"λ∧q**Q0 ,
∩AM↔∪!≤ααP∀lX∧TA⊃,¬P'T⊂ F USE@$β' ⊗Bα DL,D d`4⊃0 )∪βR FUL¬π)∪=_ 04PI↓α**5"∧β13(ZMb"'P!`∩AP @∨+PA¬βπ,A)=∧"∩P4PJ6 =hY∩∧ ___⊂⊂(D)~∀%⊃%_A⊂Y∪!≥α~De⊃P@!4⊂
iR%⊂#,∀⊗∩$kPdjεEαP
RST X@+%_
P$KZ≤ID¬-≤X∧@→→β*"i∀*h ∀HANDLAR~∀l∪∃%'PA∪≥%B&@ ⊃↔4l
α(∀HUαb'P∪'idg⊃P NSTR, BUPλA≤yα↑λ~CxhαB"!⊃,¬P*∩ j∪iH P#"Ph∧U@%∀XA:⎇!α¬α∃*≥ 0β"B(→β"$P⊃⊗≠[@7
MEMER7:
λ¬∪
≤β∪ ∩MeX4(→
%∃Rλ∧K X314G¬⊃
#!∧e))U⊂ NTLOS
αMEMER0⊂@Ph ∀|hj4-λ ↔βE*dfT i≥≥αXUW&⊗α %@!%!β$~)+∪≠∪1_
i@!⊗∩Z@S⊗H∧Z⊂∧df∪β
∃+%≠ ≡J{Q`⊂K∃0IKH 4 ~βi'FBαUIMMPV0∀t$bV@:eQ↓- →U¬0β"Shhβ)bjλ_εEεBα 1→=' ⊃hJrP∀JXR¬\~84MRλπ∞C4⊗3u*$∧¬KME,⊂&'Th∧ ≠↔PROCEED⊗ \]
∀∪)%'(AQ⊃∪%)dV`∀⊃↔4d5λ∃ λαP
lλ)"`∀URN CORRECTLY~∀4⊂ ∩bdzN∃@!→T`:β"dP∀⊗∩,&∪βST 8ππβ+M
A&q"⊗JJ-αQα∩-∩& 4tλ∀`$∧¬`_
λ∧∪≠∨Y⊂∃αα%DM¬8∧⊂eλβ∀D]H* ∂ GLεA)≡I12⎇~Q↓λ:$`8p¬TFBα JRST @∪≥Q1∪(~):∩%\*0∀λ∩1I@⊂ TS
~∃%
∃αM"M %1Q L@3uQ)∀⊂+∪(Yαb`∩`Q⊃⊃↔5%∀→j444H∃ @P ∂NE OF TH@
A→∃$fO&↓
⊗2⎇84(_[∧9λ⊂ ⊗∩h)`⊂C(@R~(∪β≥ $AαXZβλ4(→*%≥λ∩3JK⊂∧jεBαλ
∃≠∃≠$pβP4*>42N⊗Qαi0⊂@"U2)Z⊂4@≥∞α @→HfA7≤Jb
& ∧¬e∧4λ∃"¬y ∀9λ∪1)Yβi,P∀ i$j⊗P"`∩RLπ$A∨
∞VJ∀*⊃ε@KQP@*232)InNH Hαi→P⊗βS@∪1 ∪ ⊃αβJ∧4∃r5 ∧⊂∧f&⊃c`f⊂∩dεS@)I+π)∪=_ α∞|"∃ε@KQP@*235j)nNH Hαi→P⊗βS@∪1 ∪ ⊃αβJ∧4⊂5⊂∃βH@∪π Aβ))∃≠!(AQ_
α↑∀JR* →e$zλ∧∃*(αP ⊂AGE!\]
UIMMPV 4hA→⊂ε2¬]9≠∧)5λ↔
λh⊂dU$⊂&bSdπRY PROTE@π ∩→yb¬4→yD
⊂∧ggλn.FE∪βFF@'∃(@`~):∩`.,r⊃αxd∧L4T ∃%_Q!P@'nh
@ IFN D10 →64⊂ mmβ0λL@u0
)U)⊂ &Qd¬E@$βA""α".hy5Q(λZTStD 1H∃*84H⊃ @big'T WANT @∪(4⊂ mmβ0λ↓_4∧$jλ_VεE∞β;; JRS@(αX 5HhQ`≠[4PHKαq3HD⊂∧c'λ ∧10
λ∧vv@X∧hSαh
@; IFN↓λd`Yl~∀`-β0∞d↓2⊂ )∪β 1,MEH8ππ2|∩∀4H∀HZα*`∩N PC
H@→%hA$Y$4⊂λ&∞J0∩¬%FCββ∧∧¬8α".j@`g ∀↓)≡A≥"&∞4 ∀`8h⊃4J)tC"A∀⊂εgk⊃dP ∩0h``@β↓A.~
4"De⊃∪@4⊂sqλT⊂∧g*∪β S@!∃∞&~L*⊃αε~`4(_8∀L@H⊂ ,400 @`W$∩$p
α
-!α6Vα:B∧∀X¬p*(αP'cλ ∧ AND R
@≠∨Y∩A⊂¬C#β∧∧ε¬p∧h)T∀#∀FBα MOVEH
Aλαa5@#∧∧εελ∧ ∩$~∀&U∩N@" →e%Dα5β!∧¬∃∪=∞⊗I@π M≤αr4 @⊂ OCIH
&∩$p∞ε:JαVN⊗α λ →βaP"T)'i HANDLER0≡~(∩A*∃~Qα→x4-∪α""'dεOPE, @→PA∩VαλU∀Lz λ λ5Q(
I⊃(⊃**StC!∧fgk⊃P)⊗$T)h!T⊃∀@ ;PC IN R~∀$∩∩%\*JJ>⊂∧∧9βb"P∩dε DQ'
↓β¬∨-∀R~)\~ε $βλ∃*84H∃i~α$⊂(⊂β @∪≤β$Aβ≥⊂A⊗J∀zIα∞|"∃α→`"pβ"NjI⊃(∃*84Itd
Su5 →β"P&Uij⊂'∪βPλA≠U_
:λ→eJ∧_4u~∧βu∩λZH⊂
$⊂dε @$ααε 4DλBb¬I u,<αλ∃ λα@
;SP βπ-&A6
Iα
∃¬*N⊗⊃p∧α∧Ld
DD(⊂
iQi∪iP∩dεS@)I+π)∪=_ αN\JBMD
DD(⊂ $Qd*εE∞βHALF OF R C@∨≥Qβ∪≥~αR"∃¬α~¬It∧$M8∧⊂*Hp∧⊂*∪β AFTER @)!
A ∪M≠∪&X↓β⊂~⊃¬""* HT5" λ∀d@εE≥SβF @$↓∞ <h¬⊂)→β)P~__⊂⊂0+<ADR IN WHICHTO @'Q_∞J∃∧*JJ>⊂∧∧9βb"←βE PUSH@∀A→→ @2∧J0≤≤α3TaQ@∧P)Rdh FBα JRST ILππ∀λ4*&|~⊗I@↔!∀l@uQ2$
K ∃KαLZ %PIIOC
∪∃I' ⊃αLrR2z1P@+ ∧D]QdεD IFN ITS
∀~(⊂⊃n∞@r&uDλ$Dt⊗→α∧≤α∪RVα DTYI1 CHH¬∩d~(~(Q#3@7h∩3JHαi)*T*⊂#)∪βI I/HεAπ⊃¬_
:⊗`p4 @70∞d
⊂Q4hYβ*&,H'`∞LY TGO KINDS ARE HANDL@λt~(p
mlM"ReαLrBVQPB&5HZ%∃-λ¬λλd i5,h"bα
∀vβY`_MJK∩∧⎇X¬∀
Zα≥∧U
&gi"
∃↔εEβ@
CHNI@
(T%≠⊂≡Z*α→2→bE∧∪β"A→αgk"H ∧,IPSP∂λdαB→$↔8t-λ⊂g∀ ∧ @)Y_
α→bDZTU4
D⊂R5
1 ¬∧fSβVE R,@
1 ∩w
E↓α6εJα∀* →b∧
λ(∀"¬8¬⊂*HαP$cβA SKIPE G@π
"H%mααy∃$Dα3@_xhε⊂)Sβ BESTORE IPλAβ9λ⊂∀(Jα6 =hT∧5E¬Ht8T∧ ∀B]P ∀HEHA¬*N!αM"MαyHB¬4→JT(hαB4
Zp∧⊂#⊗(⊂R ;REMEH¬HXA! 0A∨-I
→>8∧∧M≤βIu∧λα"c"T)"b3αOW
IFN ITS →64⊂λ&6⎇20∩¬%H@hPα03HD∀K⊃↓⊃ ∧]iλ πE@)LA→><*N@"λ∧q*D⊂R5↓Q@∧`g⊃!`
D,R∩∩mλA∂Q&Aβ→0A∨)⊃∃$A¬∪Q&~(M~.&B*α⊂(αB(¬@)j`∪ET [.SIIF@!%$X@2%h%nBαZB∧hε( @j λER BITS BACK (THEY'RE D@
I%⊗⊃Hh ⊂LYzd*∧EJ hPα2QHih⊃⊗α+1 8π
∪≥⊂Aπ"r0∀3λ∪JYαa"iβE MOT¬≥&AH∩∩%X∧∧4⎇$
4`9αbP(⊃dεDING
∀∪¬ ∩∀
"c#1⊃∪@4⊂∧g*⊃i)*h∃⊂!$jβE PUSH FXP,R 8π'β-∀Aπ"r0∀3λ∪JYαa"iβE SKIP@≤AH∩∩%\~"ε:t*1↓Aβy|4!∀∧U∃8¬_d ∞I2 0↔3∃&P⊃ααI∧M~λ8∀`$⊂∧ h∀ ¬N IL∧A'%∩ε 4xT∧84q4aQ@∧ieRh ∞ CHNTB!$R$KZV 4zλT`$⊃⊃5I_q(∂gq ¬∧Pλ↔+ f∃b@ ;@¬+(A⊃_∞ 2z@@⊂ε'kH$g ∀DRRU@!Q&A
∀r5α∞dzN⊗⊃∧~"ε8hR≤DβR,)π@∧W!Pd∧LS@π')αP∩∩@.<*QαNαH∃%-4λd`:H⊂
$⊃P!d SαNEL
λ∧∩@]Yβ⊂∩V(h ⊂L→`DJ∧EFs 1 ∧]cQh∧ ITS @∪≤Qβ%≥β0A!"M~&∞εbα∩-i_4*¬K~∧(hαB4i94⊃(λ@ε@
@πβ∪→∀A⊃1⊂h ⊂J∧ε*JNαD∧9⊂π$ZCE
;¬L¬λA∪→_ α~J0hPβ"R(iH⊃_L⊃b→0,[
λMH∂-
↓$Yλ~(∪!+≤Aα5λ∧
∩j,dBDXSAR ADR O@≤AM)βπ⊗4⊂
t⊃↔4,@Q∩(iH⊃_L⊃b→0
IFN ITS,Xε~(LBJJ@$λBd≤α∪Uλ∀)∀FBα MOVE D,TTSAR!λR4PBR2hT∧"eJJ3e%↔a⊂K\α1H ~α∪iP∪αOT A TTY IH
!-!αεJ∀
e "λ¬q∧λα'g'Tλ
∀∩↓)→:*α⊃2R%→r&=pH%nλ~d*∧α3Eλ~TU4
D⊂r⊂*$⊃∩4jλ5⊂r∧
⊂0SλQ ¬∧Pλ%))jλ!`λNH5 ∩vβ'⊂≥αU*N@"λ¬∀H↓`j⊂ TP"g"∀ πF@+8@Q%t!0∩∧(⊂∪HIpεP!R g&∀βE .HTYIC R, ;TYPE 0 @∪&↓))2A%_
B⊗αAP@!(∩TJ:α⊂!d∩αI0→λ8π)&hB0∀:λZ%∀⎇$ u∩¬9yT-∩∩3HtλεP$QdεORE
P~∩m⊂~⊂∧J~9αM"L4!Q$L4dλCαβ⊗c!∧j)'⊃P)⊗~__00 0↔∪_A≥∨(β∪⊂~R-∩ ∀Dλt-λ⊃TI@fP ∃SE
∀∩↓∃%'"α≤DβR6A⊃,¬bf∀bP ↔D HAVE ALREADY
H∂+$~"Iαβ4#⎇hβ"B)→β!d)∃β R
SA$ TRO @$αa⊗@%λ:D`Hα.pi@g*)'S& FY T@⊃
↓∞"ε∀
≥$X∧C!!`λNIX∧t4Uh%n⊗t!α&~p∧∧#↓Q%≤
T ∀4rλ@&¬q@_⊂ g"∩P)⊗→Mβ 0↔≠¬ Aβ→0Aπ"
∩Mα→jD`4⊂p
)∪⊂!d T a`∀ERS
SA$ ANDI @$0h
@;qQ M¬X∧r∧λβ(λP,R ∩wMβ ~∃∧J0∃$X∧TJZ∃λ⊂iλ4P0jHαiεEαh*`∪H @
"αbRP$KYαε: εε %9t¬% Q!∀E∃+$¬%"β →
εX@ $∩∩`.4*R∞∧λ4DihTb∧βP
fPα@$~(∩∩$KZ~>I∧!5EAbαR"~4∧M~λ_E∩∧βqH
84C"JJ⊗2,'ε@
IT$ H@%I0 αR ¬D9⊂π ∀B(TT)
λ∧∪⊃∃∩`∩¬J@
J∀p4E
∃
#!$c'1_X∃b_⊂[
λ∧∪⊃∀aαRQd10∀≤α⊂3E
∃
"'g'k@ GET CHANNEL #
H@→%i~A)(αa5I"5BA$↔9T\T
DD(⊂rλ→β'"fλ'*fa⊃i⊂!gT)"ajλ'`∞ TH@
A≥"ε∞1Q%hHα.q)@"⊂$c∪α D1@Wλd`4⊂λ&*≥↓α"β∃∃→0rα!↔qq5∧λP0rd 3P
"T)*`⊂T @
≤A%_ αHhP&Bz∧∧5E¬JE @ ¬∧e∃d¬PE R,CHNI2∩∩m_
V2bα~V:≥"& <βH$ 1sSj(αFE∧SdπVEI @λXQHR~(LbN!α ¬Bm≤XyD`8c"B)Yβk"P⊃⊗)`∀(D)~∀%)→:pε⊃2~β↓P@!(∩TJ:α⊂!d∪αI4
H∨-∀A$XQHR∩%X∧$5,h:DL@sH@→~h⊂ _i4∧'*SF@
IFL∧A&%→.NεLa2l4PJ6 =hY∩∧
∀E⊃ ∧]dQ⊂ g,H'c⊂*∩ ¬ @'U!%α[¬'π&Hh ⊂L→hD9(⊃⊗
εX@ $∩∩`-∧j0≤$α1R(ZH⊂R*Jh⊂4H∀∀q5∧ 3H∃ λαFE∧SdπV@'L@Q
E↓$$↔0λ∧#*g!U$gg", @∪≥M∪'(AQ⊃β(AQ⊃∀4PJε 4IP
∩bα⊃V
∧ ∧D]H!`∂RRESPONDING@¬∪)&↓β!!¬$A&ph ⊂LYze≥~¬λeEαα""'P*$"H!`λARACTER TYPED. SIH∪→¬%→2X4⊂λ&&⎇⊃α"EλeEαα""'P*$"H)`fbλ!$j)H)b`∀ IHA$B∃αHXe"∧α⊂3λaα@
TRNE D, )0βb6@$∃85$bαu∪j¬tqU¬:qS∂A↔h∪1(→β⊂ ∀HAPλA$B0≥≤Tλ$M∀h∪*Zuλ⊂HT⊂πc#α
∀∩↓∃%'"α≤DβR,AQTεDDNβENDIFN ITS ↔'¬∪⊂⊂4PJε 4I∀¬∩c⊗p
aQ@∧fgUαEI D,TRUTH ∩w5_∞>yx%J¬99∃α∧9λ∀L@H∪qD
v4uλYαP$g∃)FE∧PβAINR,↑A ;↑A (SETQ ↑AT)~∀$A⊃%%i~AλYM∪∂:`4(_8∀L@H⊂ ⊗↔!DD]W!DT)Qh∧Q ↑D @≥∪0R~(JαN⊗RTiα<8x∀=@εE∧PβAINR,↑D ;↑D (SE@)DA0~⊃¬!$4!∀∧E∃+)R∧λε#aQ`ckεBα CAIL∧A$Yy∞∩%]r≤%"βhrHKαpλjRh∧
JRST C@≤]≤~∀&≤
& 2λ∧@⊗↔) ;↑R∩QM ∩E¬rIαQHh ⊂J
%∃TTλBe$~
u∃ Q!∀823@~%↔P
∧B]o ∀ (SE@)DA0~I∧r& "⊃Q J¬8ZE@)(⊂
T+i*εBα CAIL∧A$Yy(λ$↔;e !*⊂ bU(P ≡W NIL)
∩AM ∩jhεRRf|2_ (αB0h→3H∀EKβ+DDNβ↑W (PROGH@Q'Q"A=:αQ$Q!∩∧U*:B∧≤βKUa⊃,¬DPλ⊂⊂⊂⊂λ∀!f"Pi⊗gjU(*`∀T))
CAIN R,↑X 0↔=`∩Q∃∩0≥∩∧z∃,ME⊃β@;T∧⊂(UdjεEαP
RST CN90⊂∀!_4Ld
"e@VB"'o(
CRAP OUPλA$yα$JAP@!(∩TJ:α⊂!gαZ~∃
⊃≥∩dβP&NV⊂ε~bAe⊃P≠ααlC!∧e))U⊂ N∀XIT
;CHNI0λAπ!_
%Rλε≤DβR-$λp∧'$N⊂!d'∩X∧C CHNI4H
~∀4⊂
∞ i∪#Pα4∪j∧⊃P( ∧ ;R@β_↓→∪-
↓+'⊂ε& 5HZ%∃-λ¬_j3Pu →βgεEαh∧RO D,40000 8εd\@J↓uyααJEJ∧α3T
Zα⊂$g∃ ¬RRUPT CHAR~∃
⊃≥∩i∧pλ&B⎇↓α5α∀
!αE∧d∀&⊂",@π⊃: ⊃"I$hP&N9~∧*∧Yj$,AQ J∧αTt∧
K⊂r @$Z!Dα]a i⊃⊂P∀'∪βIN@)∃%%+¬!↓=JK∩J∧βt@∃ Sr3JHαi)*T*⊂ ∀$~∀%α@A!-~")α5BA1∩M:ε&PKZ≤IJ2¬,~:DZλ→d"¬99∃¬~ _b∧Ldλt1 ¬∧Pλ⊂⊂⊂%∀)j⊂,∃dg ∀ ;RUNS U@'∃$A&q"εJJ-αP (αB2J*uλ∩)@*,$jβE
IFN ITS( 6~)∞"i⊗S@!2⊂ )⊗α D,CHNTB!$R$KZ≤DX92∧⎇X¬λλi3⊃(λ~TP6!Q@∧d)∀-⊂",TTSAR(@λR~(∪'.Mα0∩∧iud,@t
⊃¬⊃ ∧]iRdh⊂$Q⊂"g"∀ cbc∪α
∀∩↓∃%' ε≤DβR.↓Q@∧fgU;@∃∨ ∪⊂~Q¬"Rf&≤AαRRLJ≠λβ"C!ε@
;↓∞>YXT`*λ⊃Sj$⊂λ⊂iλ3Qq!Q@εE$Q'⊂%'PαQIO,Xε~(hQ`≠[4 ∀`*⊃0 )∃h*⊂#∀'`
IL¬
∀J0≥∩λ∧∀I@abb*T ¬(@&$~∀4TR0≤∀→jC@!33uHT⊃K∩)@*("&βE MNT¬
Aλαb&BNαxC∩De⊃P@!33uHT⊂K⊃K
β"B*9p∧h"H πCFXP ∩w%A&pε≡
DλeEα X∃J∧(QP@!(∪3j@"P#,∀⊗#ac⊗(∧D]H)a`∩ETπλAU ⊂∀(MαVN∧λeEαβ∀C!∧fgk∪α R,D
∪β9λA$Y⊂∩∩%]⊃α<X¬∀d ⊂πkbTh∧ @'∃(A¬∪P~∀&r∩∞TλBe⊂α".hD⊃q5
4⊂3∪∧ u∩⊃*$⊂R5
1 ¬∧iRdh"P⊃¬∀∩X
NVα8U"¬5j4LLh∧∩*%λε".B]h ∃T AN@2↓_∞RλZ"∧∀~J2∧∀_92αEIλEJ=(T∧$1Q4J(αb∀FBα MOVE D,R
∪∃→
≡Aλαa ∩[⊃Q L@3uSJ4∀B"!↔hεY2 8λA∩↓a↓V⊂!Q@∧ieRh ∞ D,JOB∀@∧VdbαBI$Q!ααuh→E,(α""πg'P%∩βB ARRAP∩}|}~(LBJJ@$
"e%J8∃∩DA⊃P@!4rr* H∩KI→β*#∀∀∀@
λ JRST IN@)a∪ ⊂$KZ0∀z →e$4TU*
λ⊃U)@!j$gSα ~A%∂⊂~>∀!α&:αHE∃∃X∧∃↓Q@∧fG∃αS@∩A⊂XQλR4⊂λ&R∀yα"F εελλ∃O→∃%↔∩dεTF+1>~∀!'↔&∧:∃α↓Yj$X3β"A∀⊂¬)hλ)⊗!d∪αI4Cλ ;GORP! (NLπ∪≥$"JJVα
B¬"α#"A∀λλ
¬-9 "∧T∧(⊗ $k`d∃∧¬
JRST XUIN@(4⊂λ&*∃~Qα→bEDMAQ h∃β""'bg"3βF IFL∧A*|∩& 5AQ hPβ"C!ε@
α0⊗vβYαRR≤
Iαxd¬%%∀ ∀`*∃0
⊂⊃$f"P⊂i) lH$g⊂*∃↔
;8εvA∪9!+(A%_
R⊗α*%-¬Dλ4D
(_5$4H∩)@⊂)↔εBα;; 6β%⊗R-∩0∩∧_HE∀4p P∩`ε D8~∀`-Xπ2¬∀X¬∃*)Th∩)@*"`∩RUPT FUH
π$J0≤r →b¬∩aQ h∃JK∀L≤α∞C!$j∩∧U)
R, )0βbR>A]~~18∧qJEpεjO∧XFOL@λ@@⊃0∩l)~B∧≤α⊂$A⊃Tp ∩α`g"$λ)⊗≠@70ε~*≤ ∀&R∃R0∩¬%DU%CH:Dc@B".dλα'kgλ* ∂ 7 IF NECE@'Mβ% $hRN¬∀Jα*JNαD¬%%→_3λhαTp$Q0p2(T⊂K&@[FE)PR@ TRZ @$0b`⊃@hRRRfL→EH~)u"¬%ESλHα.piHαk"iλ i) VP aaQiiFEα`b"$λ**⊗#⊂α.BUF(R) ;I@
)I%+! ε~:M∧
J* →bα∀*Xd44HC!∧d&)λ)⊗∀*∃∀@
λSK@∪!≥
A∧~(∪⊃%%hA$XQQ(R$KZN&≡pε∀MD t2¬$λt-∀h⊂iHα`i"Q∧¬
JRST (D)~∀_wπ≤αrP~∧9`J@X⊂!gαZ CN,¬4`A¬→) A
_ :@$λ∀e%∧λ4`%T¬⊂!RdY$P⊂βP %→≤Aπ9uAα∞ehr∧≤βKQf⊃ ¬εE∀h¬BTTL VARIH∂+~αNfNαHTj¬JK∩∧Lh∧∃*D⊂r⊂*$⊂∧g*⊂i)*h∃⊂ λANDLE@%LXλ (!Q$9KP@: HRRZM D,TTYOFF 0↔∪5≠ ∪¬)∃ααJEL@qQH¬β+TFBα P@+M⊂A
E↓2P4PJBVN@∧∧5E¬JE @ ¬∧d∀)(
TT,V%TYH∞~∀%≠⊂≡Z*αQ2ε≤
I"R ¬⊂HPα5∪ @'⊂ ∀,AS ≥
%_∩%βZ'MβLεBε
λh
-L(⊂<N0|←FBα JRST CL∧].`$∩@v@↓_=Dλ
⎇Ix
⊂→4π i@PAChAα3 "⊃Q L@3uQ$
∃∃
Jp4@∀∃*⊂
P 2t)αRQe"RMr%Ix$∀π4L4dλ
.DβyP ! TTY
λ∧∩@AA+'"Rα~bAd~2J=_I↓m↓∧
2NtλD`4λ∧!f⊃`i⊗gUh∧P@+PA(@$hR≤rh¬`_∞α POP @
"αbRP4PJB>A∧2bAJAP@!2TTjD⊂r∪I⊗@εEεBαIFN@20,[
CN90 h~
U≤Bλk¬αeAQ M¬X∧r∧λβ(λP,TT
λMH∂-$A(@2≤q0∃S↓⊃∪@:Q0
*T'⊂ ∀O SU@!∃%∪∨$αQ≠β2↓
∃αL"∩Q⊃Q L@3uQ$
∃∩)@*("&βE EX@π⊂A ¬DM¬8∧⊂e
∃
#!∧fgk⊃d¬ @(1∞9:β+hPα4∪j∧⊃P(**εEαh ∂P FXP,T
∪∃I' ⊃α≤B0∀K!⊃∪@83∀∃∧HβP ⊂RLππ⊃&~(hR≤rhεLπ∧d f∃ ε
ALTP 4%∃%'"↓I2α≤q0∃UβQ%hKαq3HD⊂∧c'λ ∧20
λ∧~*L20∩∧F⊂¬Kc"Pi@↔(
: SK@∪!∀A$X])
∩∩ H%nεuIα$J@λ →β⊂!gT ¬?
@∃%M(@@"α%⊂hPα16 ~α⊂⊂⊃, ∩wIβ ∩Vα)b¬$βh∪)@g$j'T⊂ F L¬≡A ⊃(XAπ=_
Qα≤z0∃$α3E(Zc"P)J∀λ
∧R))`∀ @π⊃:K⊂$%8∧∀I@abbbλ'`∞ ALTP$G
P~∩m⊂~⊃∧J~9α ε∪"C"I_SH∩*Jhε-FBαC@≤]hpλ&BαZ4B∧hε∀¬J∃α"πkbP'⊃bb⊂'SαE AC T@≡A!_∞2⊃∧~"ε:t*1αjYT(4C"A→∀TVD
∃&%⊃P(
F@
.@πβ→_↓∞.⊗)⊂hPα(J@ f*bCE POP F@1@Y)(~(∩P~ZbV∃αβ8∃≤≤α6HGFq⊃
Cc"WQ ¬∧e∀)j!R'$YεBα
∃π-∩e∩t!')44⊂λ&NMB∀MDE∀4q5@αE∧Z__⊂0,,TT
λ¬:$KZ⊗ 4D ∀4r ~E_hαC"Hj)Nα H@%I_∞%α ¬Bk_⊃↔5th ~:αa),∧¬
PIPAUSE ∩∩m ∪'β →∃ααI∧*∧α3Eλ~TU4
D∀piU ¬M FLπ$A≥=(4!~4-⊗S ~Yβ)"`T∧@ ;CL@β$αα ≥-Dλ∀dbλ∧uλ_p¬bbλ$g ∀ERRU@!Q&~(M~⊗@%)PL@U⊂4AQ@∧d)∀ ¬M D,IN@)→→≤4PJN.~λR∧tz~TMα".i uh⊂h→β⊂''Th¬IT↓
∃αtz0∩mαQ4I@←FE$U⊂∧ .LOSE 0⊗A5β3¬
↓)⊃
AU'$AM∞J⊗αxT"¬X¬P@)1S@_ε,
qε&λε⊂$⊂d∧T
JRST C@↔∩@∩∩`.¬∩ ≤≤X∧td
⊂∧"P⊃'i!bQ⊂(jdU∧¬
@π≤]CP&N9~∧
∧EK2kW""πbi))Qh∧ABLE ⊃<`RAβ+%(⊂∀*≤q ∀;!→¬∃∀y∀∧"bβ(DB]` MMED@∪αQ
@@"p9%αε,JP (!~4\MλT¬,@TQ0)AαE∧P∩))`∀ @π≤]∞βλ$(~8U%TT ∀`*⊂4B!↔p¬df∪⊂ f&λ$g ∀ERRU@!Q&A'$
≤\X@
-Q!∀E∃(YR∧λε$g∃ εLG
λ∧∪!-~")α5BA1∩M:ε&PhP%αN\JB¬α ¬E@8p¬dX↔F@
JRST C@⊃≥$d∩%\~ε 2z@
¬∀x8U≥~λ∧5)~α⊂''Uβ
∀∪5_∞@4YP"dα4∀jλh∧#∀B]` F @πβ≤AE+∪(A9_∞]Dλ∃∃∀→ht*∧iz"¬≤X∧UHZ@εE∧R))`∀@π⊃:K⊂$%@4
D`4∀Q5
ZSH∃ @P NTERRUPT CHE@π↔⊂h ⊂hαPsE@#X]∧Tbj-&H*g ∩DAR∩∩m↔∪→_↓' ∩ε≤Z⊗⊃ααYe∀03λ →β*"i∀*h ∀S
∪a∞!α ¬E,@TPkHq ∧]bS)bP)U ae@5h⊂ gλ*g ∩DAHλ~∀%)%≥
↓λXb∩$p
αz8ε0≥∩λπV∧ 3P
"T)*`⊂T
∩A5_∞@4YP"eYj$5β#DDNβD@∨≤α:QαHZB∧
λπV∧λα SPLACE A ↑G
λ∧∪∃%M(Aπ⊃9∩d4Ph ⊂1nJ,
2∞Ix4Z¬*Yd9α ∂CK RCLOK1 FNYIN@(β
≥ &LqAαJ≤b0≤[!Q hPβ"R(iH∩5
5α-FE∞β;; REAL TIH
A¬→β%≠
→∨π⊗4⊂λ (*(T@⊂s∪he]εEαd¬OVSI R,4000 @∩∩`.≤BV@"λ9D`8p¬P!⊂a` OF@~∀$X
J⊗bQαI`h ⊂LYzd,Jλ∧K
∀∃∩3(Q ¬∧e∀)j⊂)⊂βL@∨⊗βλ4(Q'3@7h⊂ *SαT@∪≠∀Aβ→βI≠π2|~,4!Q%∃,h9D`8p¬P~
λ∧∪≠∨Y∩A⊂¬E
%*Ye$LXQP@*Ps∪i6,¬∧fSβP
A_Y∪≥%α∩04PJ6 =hT∧"dhε∀↓Q@∧ieRh"P#PβFP⊃4⊂λ%αlzP∀(⊃V
¬⊃pqK
β"B*
4r⊂⊃,(⊗"βE SKIP@≤AYβ⊂∩ε∀j≤dβpra↔p∧cg∪βRE IF THER@
A∪LA≥≡~(∩A*∃~Qα→jEDMA⊃∪@4⊂3⊂*)0s∪heP#*SαCTIOL∧~(Lj0≥Tr(λEλ∧ ∩) 0↔)e!∃↓α¬B¬≥X*EM∧Tεα∧M4λ∀d
)X4d|91P@!4rr* λ⊂
g∀ ¬AL ;SKIP @∪Q≥∨∪9)⊗J∃*BQαα@
!Q@∧P%∀)j⊂)⊂βL@∨⊗β⊂4(→Yu (3(⊃¬J3P )∃dε-@"α"JV:αI∧l*λ∧@∀B]i`∀A@π⊗A-↓α&:αHU∃∃X∧∃↓Q@∧e)∀h∧ INTX@∪(4⊂λ4)_d`$∃0 bS ¬S@&104(ieLLh¬∞A→αgk"H ε,INTPDL ;COMMH∂≤A!β⊂~∩d*Iα~⎇⊃α5YieJ∧α3Eλ↓i)*h∃)FE∧SdπVE D,F@1@~∀&≤Z&B∃∧:≤5α∀β!∧P&gUαE FXP,GCFXP
λPUSHFXP,D
∪≠=(
∃αα%BE∩⊃Q M≤αr4 @⊂⊂λR$~∀%∧RJNQ∧J0∃% ~@HKαq6 ~α⊂$cλ''P*Tbi⊂$⊂dεDLERλ
∀∪!→% )∧!2HQ!∀821(λE∃21JJ∀B"'ih"aR`f⊂$⊂a` FLπ$A%"e -(ZE-∀aQ J∧αTTjD⊃SV)→β_εEαd))-λ)⊗$h∀h!T#
D@ ;GEPλA∧→α>→∧J0∃$X∧TJZ∃β"A_p21$
K∃⊗)_p3α↓↔p∧g*⊂i)*h∃ ¬DFRO@~A
β⊂~>tJ≤D ∀`*∃0
⊂∃βAIT|~∀%∧~ε&9¬⊃2RfL~¬DQ!∩α∧α⊂ &∩P"⊗(I$g∧D∞βYE@&0Aβ%∞β)≡A∪9(A
,qα&Mα:& 0Q!∀823@~%∃⊗2+λuα"'`g'j∩ ¬R CAH
≥∨9∪πβ_↓!→βπ∀~∀%∧BJ2∀λBe
I→`hTik∀L@Lλ
∧∀e` PGE ENRAAL
@∃'@A$Yπ!_
%R_@%nZZ5"¬8¬⊂(eP ∃P IF UL¬%β0∩∃ 4HI`≤,h@@8H∩1I@⊂*`∪EL@'_h ∃∀] 0↔9λA&4qα&R_h ⊂c]_Z4L@L(∃)~u∩`_H*dij∩Y⊂ ∀MDAMI TMDAM2 QMARK
λ∧⊂∀'0∞gP)`∀A@π⊗A-↓α¬ααZ4-∩ →e$4TU*
λ⊂d∩a`λ MUST BE DELAYED8~∀`-β0∞dλ4Qu)X3P
IS IN @λAβLA~>⊂∧¬,Lh¬≥H$j⊂$TP)`k⊃b⊂$gλ* λE IH
)βHA#+U
P_Q'3@7h⊂4j:αfbiH εREE USE LπAβ
∞@,X¬3λ~α ∂R↓$\4SY`≠Zλ∧∩$ 3P
"T)*`⊂TS @≠-~Qα
*α∩&N∩2,D⊂λ$∀ εE∧KαSEE PIOF
λ∧⊂∀*L*N&9α⊂∞A~⊂πh⊂∀⊗*diU eDDNβT@⊃∪LA∪&A∧A⊃>∃∩&
2*α≥∀x90hSαp
dTh∧AKh@`~∃U∪')⊗β `⊂LYzd*¬%I∀`*⊃S⊃a⊃,¬dcλ+bP T ¬ ABLπ ⊗Q¬"0~¬~Y∃"∧→k∃ 84∧VεBα AOJL R,@UIS@)¬⊗∩%X∧¬$DY`λλitQq*D∃∩⊃$
p∧'f⊃P*$$Sα@∞~∀%β⊂≡M¬⊃2&:αH∃⊂@ ¬∧aPdf"P∀⊗ INTAR
@∃%M(A)≠⊃β⊂⊗$HI`≥∪sh X3PP⊃ fg IH
)I%+!%_4(→Yu (αP ∩10
@#∧∧εελ¬f$SαTAR4bP⊃I→e$
%9DL@U⊂4EVTεFE∃di`∀K2:∪!= A$XDQ$R~(∪ ∩IhR¬∩F6s 6mmc!∧P%)∀h∧ @+%' ∩4∧C!∧fgk∀d¬ D1∪⊂~R
⊃-DQ!∃≤-IyR∧Lh¬⊃IHβFE∧R))`∀@UISTAK
λ¬)6$
6%@!~4\M `λλxqP(αDX@)=_
αX→eJ∧H→T`$⊂∧g*⊃i)*h∃)FE∧H%))jλ*
DAM2~∃%% A@¬Be]¬Hdeαβ⊃V
¬∀pλ.CE MOT¬
A@¬D<~≠↓P@*⊃0 &Rdε~∃Q≠ β~β⊃`⊂@ ¬≥DS ¬RR↓0∞N≠λ$Mλ⊂∞*∪βH∞A≠¬_
eα$*~-*(T"∧α3UλZTU4
Jh7↔!QR1SD 5∀kF@
.T¬β→+∀A7β'
∪4AcPn@$βsh X3PP⊃ ¬FERR@λA%_
R⊗α*%-¬J31<≤βsU →βεE↔,¬~∀$X
2z8PhUβ""'bg" LπA∪→_ α~J0hS⊗∧@L@u0
)U)⊂ ≠ASC@∪4↓9)>zα6ε:β∀∧$1Q4J(αb⊂$SαTE@%I+!)'q:~)λεα LXε∩*D+β!_X∩∧R))`∀,∧Zb~(~∃∪
8A⊃Iαb`_hαB2
*Sr(ε∃α-`iPβIP∀Ap~∀`>&{=β7∞seβ∪,∧f ,<Y0∩λ4p∞tep¬ekaβ#@_hαW↔!Q@∧d S*#εE↔D@ ;EL¬λA∪→_ α⊃⊂εhPβ"Nj_α`i%H⊗VP*∩ iP$TP λERE SO @¬β↔%∩ε∞∃¬:&$βλ⊃I→β"⊂$U⊂ iP∪ i`∀SP¬$αQβ%∂≤BBR~)#⊂⊗ε∀Y`⊂LYzd,Jλ⊂
→αFE∧T'h%⊂∀⊗εEεBαβ≥h ∃RP@∂%¬αB<⊗X∩¬¬λy∪~¬λ∧⊃i⊗αP ⊂PGI6
~∀lp
mαα
U∀(⊂λ QbP ∀RAP HAL¬∩HZ hSαh
@; C@∨≠∃&A"-∩∃α↑M"!αIz4L@Qh∀λP ND.~∀$X
N⊗*α6⊗6-∩H (αC"J
4T⊃i↔@εE$Q'⊂"10*0_bαjNε&cq2l4PJN.~λR∧\⊗⊂
↓α@
SH∂'ααα⊃2~
5∧~α⊃J!∀λλ∞iX2q(
λh⊂λ'RdεT TLεA>42⊗ 4I→d:∧α3TjJU0u _β`∞
@'-∪!α~(∩@@A¬_
$∀λBbk⊃Q%hKαq3HD⊂πc⊂∩c'⊂"X⊂
<1-SAIL>λ
∀∪
β∪≤A⊂Y')#A+$4PIα*J≥!αBB<IT4*
∧<KX⊂∞AQR1SD
⊂1r)@#P[
λ¬≠βπI_∞2yzα∧uλ¬4JJK⊗VJ¬λ¬⊗∧BP⊂⊂≥VαZP MACROS @
%_
∃ααy∧
λ⊂λ&⊂ab`∪ HAVE HANDLARS
] ∩w∃_
⊃αL20∩¬λ_tL@Qc"A→U34λx(⊃⊗∀*i"i∀∧¬
PPGI3 44⊂λ&"α*$j∧EI∃¬≥λ5∧2Hβ"B *Tp
⊂∩`εTXITλ
∀~)!!∂∩Tpλ&"α*%@*h⊂"!⊃(λ@8StQhZα⊂&"Q*⊂$ S ε
@πβ∪≤βαP∩Bαy∀`93P
∧BP⊂⊂≥PαINDIL¬∞A∪9)⊗J∃*BQαLr"&
M"MiαtzJ6εbαBVJ%∩ε@4PAα*J≥!αBB<IV∧Q$ααα∧¬↓αYzd,@(⊂ ⊗∀h∧QLUX∧∩%α@w%5⊂⊗
-⊃α↑ _4B¬h→E,*λ8Tdbλ¬q∧
∀R1(D∃∪hλzSsRaQ@∧fgUαE D10∞R~*∧
⊃+ @$f.FBα MOVEH
Aλαa"NAHh ⊂M99∃∧(⊃phk∀β"A∀λπ+ S*bFEα`giP∩h)`⊂C(@R∩$p∞∩y` jD∀Q5
+(⊂
$⊃P OSIH
∞A%_
NR∃*≥$α3sD⊃ ¬∧h∃i`λJ FXP,$IP∂β∪P∩w2-!αNB$aα<X¬λλ`jcd∃⊂*`⊗Bα @'-∪!αAPY')#1+4$KZ⊗JJ⎇⊃α"εp"2-$
t@U∀h Ipp5 →βg⊂$Sα T
JRSPλA¬*J-*!⊂K\α3U
@`dj MAP∩AM↔∪ ~)!!∂∩Xpλ&"α*%@)(⊃⊗∪αILSETQ∩∩m)%∪⊂A)=¬αV@"λ⊂
(3∃1$
∀StλZU⊗( @g⊂'$S∧¬∀∪)%'(AA!≡%_h ⊂hα@↓Gu23*λ4H∃)→αdf'H*dfk∀'P ∃IMH!2αV&~≤b%αVL26εI¬*&~R%⊃αV&5~fMαu*& 5F⊂λ @*dg*∧¬∀~)' ⊗
%"0&Vα8U∩∧α3UλZTU4
D∀Su*I3Q4aQ@εE≥Nβ; @+M$A∪9)⊗J∃*BQααK∃∧4h⊃I@i⊂'"UβIO
8εvv~(p
mm∧20≥∀T t2∧~(u,@13U∧
⊂πP*RdεT (AH '≡↓' ∩z(T"∧α3@~I⊂∧iP⊃'i&FBα;; 6β∪⊂→αLrRεIbα0≤tK∀¬ 95∩→λ3∃Q*4∀p`T("b; W@⊃Jaα%α$z0∩uλ∩i@'kT]βE_;l~∀`-Xπ0K@VLTε1 AR@∂+≠∃_
Qα4zIα→jD-∃*Z¬"∧h¬3Hj ON
0⊗vβX%I9β⊃∧L2∧∧+∧
t⊃0i_R14dλ(⊂
*⊗P NPUPλAπ!β%βπQ$A∪9)⊗J∃*BQaQ#@7nb"(~Qu3(Yβ*⊂$TP**,H$g ⊂UT FILE ARRAY.
8εvv∩ d\`!hε"`&α35*:α⊂!"H-"`∩O,∧~)Xπ3@1 ∧Y.3(
b\βλ&∞λ~$≥HZ"¬<α∩0i∧⊂p5*81λ∩)@*"`∩RUPT, AS
;8εv∩∩%%⊗ε ε∃J¬i∃%L_5bα¬I ∃~∧β06$λQ(⊂$ε,K@⊗PαIT
8εvv∩$∪π"
∩ε∞R-⊃1αεt!αNt T
J λ∃ (αP ∀O BE FLπ⊂∩∩, 4)@70∞a⊃ ∧a"Q'i"P∀bf"aU$g#@ THE IL¬)∃∩VBQ∧2V 48¬∩)@dε.
8εvv∩$∪ ∩ ~2∧M4
∧
≥8XB∧
4
DD(⊂ bPβO@≥λββ%∂+5⊂~Qph ∪[4εb&%L∧∧dQ⊂_V⊂∀h"adQ$b`∪ AHA∪9)⊗J∃*BQαα(Dd
HXB¬$βh⊂$λβ$f"CE_;l∩∪β%Iβ2A∨HA'&lJ2εI∧z∀TX:Bb∧Uhr`$∃∩⊃$¬JS3j(αU∃εBα;; 6$∪∪≥$"JJVα
B∧St@~J⊗(∪jZα( ∃T,∧~)Xπ3@1 ∧`I⊃h¬MENT @∪&↓)⊃
A→∪∩∃∧
JJεJp4)@70∞a⊃,K@≠KXW⊂⊃IS @)!
A&p"⊗aα|1αRλT∧L@U⊃4J*4⊂
⊂⊃*g!j∩dπN
8εvv∩% ∞&RDB0∩¬IλR∧
*(∃J@λ⊂d⊃i"P*∩ ¬ LOTεA¬∪PA'!
∪
∪L~∀`-Xπ0HLHXe"∧βt@⊂∀$cd*λ$ f#λ iP*Th¬AL.
0⊗vβX%I9αq∀L2∧∧+∧
t⊃0i_R14dλ(∪0(d NE @%%=$\4SY`≠X⊃~DD(⊂4Hzαfbg∃⊂ S THE LLππβ)%_∞ 2 xb¬$α⊃( Itp WβE_;l∩∪¬∪Q&@b\βI5E9α⊂
≥∧X9∀5Jλ¬∩λT⊂π j∃i"P'Q⊂*$"H ¬RROR.~∀%+∪≠∧
I`+TεL↓↔pπb"∀∧@ ;PARITY @%%=$⊂∀!~TL@23∪gW,¬_DNβEVAL 0↔∪1→⊗≡aα>B-∩ε@$α3sAQ@∧jdShπRO==:2 ;D@!∨M∪ ⊂%]:J&R*α& 5It¬∀01⊗SβNLY MEMORY
∀∪U∪⊂⊗6α
ckkαLb'bhλAMIH
∩m≠≠∨I2A!∀zR,8¬λ
@$gf U$ggεBα;; 6%∪@@∩qe +%`
dλ4Q("i'Vλ* λEN8∧~)Xπ3@1,K@→Y↔⊂⊃ TYPE LπA∪9)⊗J∃*BP4SY`≠X⊗⊂G∃αXW1 SPECIFIC IH
)I%+! h ∪[4εb(ji)"SαT @)e!⊗M∧
0∀λ⊂ h⊃a` FI@εA&u"⊗JJ-αRMα
∩∃hQ'3@7b,α*(3Q∪iT⊂4v)@!`λROL¬∨+~↓"$YH∃L,Dλ%Jαα∪Si→β*"i∀*h ∀T))
8εvv∩$`∪β→¬%≠π→=∞,4PJV&~≤b%u@W&⊂K\9I∩l@10 iPcbDD∞βUSELESS
P∪
5β$`5βW#⊂Kαs0*%0TQ(→b".jZq3⊃*:c"B
Y1P
*∀≤¬= 4L∩w))d[%%*J8⊃↔5-≤YHU≥_Q!¬,Lh∧v*7,εP~4 ;C@3L[ βQ⊂∩%]*N⊗2-~L4)_d*∧X∧q)Hαi`∪, NUINT0= :hb∩$JrN⊗∃∧:≥βh∧-AQR1SD
4q3λZtkλ *dg*_¬= 4T∩∩%u~⊗∃α<∩AZE0h ∪[4εb&⊂4P3HIpεP)VdεCH∩Hπ≥∨+L~∀`-Xπ0HK↓_∃-∪s∪h_β"Ng]DDXBbi))Qh∧ FN
0⊗vβX$%HJRJN⊗αEU%∀~↓P@'nh
DBYDca↓-DAEMLπ≤4SY`≠X⊃⊗@L<5Quhαi#&∩βW
;8εv∩∩T∪! _5_∞Z⊗α(dd⎇qQ$@*23Uε↔,ε]≠αD@ .SEE GBP6Q6
λ∧vv@XIH&⊗α)∀`*λ
∀k→β!d)∩βNOUS)
∀vβY`_Hα,α*Yβ"#⊗Q'!`∀N
0⊗vβX$%DM*0∀∀h@*@)!&εBα;; 6$∩d&=∩ ∀:β5⊗*λαV`i⊃F@
;lp$⊗1∃,@Tq1)@⊗cgVU cFE∞β;; λ4 WRNG(≥≡5β%∂&4⊂ mmβ1⊂K ∧caKd∧OSSAGE
8εvv∩$hλ&~J16ε≥ 4)@70∞a⊃-b2)@Vf'iT`cbFBαNUINT20~zβQE@$HI ∃≤XT∧<≥∧¬T&@ε@
;UINT UINT@ !¬*& 5K$
23Uε$∃23JFh∩∩λh∧B UIH
)!T~∀4SY`≠Zλ¬q∧ StS(→α&,P⊃'`∞'T PU@'!∀A"-∩∃αε εε $βλ⊃J)pεP(∩P EVEHλB~(p
m↓E""&:Xεε
>-!α"zpλ
Ih⊂ dSh IFY THE C@∨ ∀A⊃∀)0∩Hβ"C!*dg*∞α P@+M⊃∀AαbV&:αJ¬(hαB4i94∪@→@'hjdU∧¬
SK@∪!∀A∪≥⊃%
&PhP%↓αU∩N@"λ¬2)@*→εEαi`IPGE INT@
→∞4⊂λ%αU∩N@"λ¬2)@*→FEαh*`∪HJ P,UIH
(`4⊂λ (%j4,*λ¬2)@*( ∃ 8π!∨A→∃α≤z6∃αD*J*λ¬∪d
3Q∪d
23U
εE∧B]`∞OTE: @)!
A!-~!=4 t2¬Y→e%¬T U-≥D
5L@Ph∃i~α λ TH@
A∧zA=4 ∧-∀QQ%,Lh¬⊃π@εE$Q'⊂⊂≤D10 ↔λβ⊃A`2K1P@!4∪t∧λβ(λP,Lπ∪≠βM⊗~(Mα0≥αMH∂-≤β(Y&u"ε $βα"'cb`∀PI @'Qβ ∩∃∧2J>T ∀`*⊃0 '⊂d∧ @/=%⊂4PJ⊗b∞@εQ1V
λk∀
#!∧iedT πE -2(F@1@R~(JαB&B
*N∀Q+PHKαq3HD⊂∧c"H$j)FBαIFNIP &Yl~∀%u~VN⊗α@
@5TT∩(f)⊗⊗∃,¬~∀%1π⊂β(X@"5BA$Q!∃≤\α4⊃hTλ∧#,∀∀@
PIPAUSE~∃t∩w≥⊂A∨A%
≤A∪Q&~(hP&Bz "¬αββ"AQ@↓Gv14i→β*⊂*RdεT0 UIP⊃¬*N!ααY∃≥th∃)~p5U∧
21TIT∃24h~β FEβE
;8εvA≤
P∀(⊂
$⊃P+gi∪ ∧ FOR A USER IL¬)∃∩VBQbα& 5iy4*∧α5⊗λ g" R@'$zJ*aQ#@7nc"G]]P)PhεED↓# ⊗εu"&@$α14d 3Ps
X⊃(⊂)Iλ⊂0hh¬M@+1β ∩z*2b¬IλR¬∧ID¬∧|α3UλZTc"G]]P∀⊃'i⊂#∀ ¬TURL∧RXA¬_
"λ¬∩λT∀p
h⊃i⊗`↔RIP β¬1
A'%*~2¬
D,@4∪tH~R14d 3C"G]]P&∪βP∞Aπ=%∃ααZ4,"λ+∩∧Lh¬⊃**U0λ*⊂a&"P⊃*g!j∩dπ@≥&$Xλ (αN`≥Nβ @≠β92A∂→=
ε1¬~P≤MH9∧-~λ~$*∧)zT`(α⊂ g⊃⊂)"iQh∧ ≤~(p
mm∧20≥∩λ~5L@Pr∀I@dεOUS USER IN@)∃%%+¬"M "λ¬∩λTλ∧''RdεTERRUP@(β(RA≥"ε@$QQ#@7nh∪(≠(⊂Q$λαg ∀ER@λvααR"∃¬αJ-i→u-~ itL@U⊃4J*4⊂
4h∧ATE IS SAP
λαp4)@4ε`≥H&j`∪T NOT↓∞ <XT∧D4Q(
@dj$'Uh∧ FIRST USING↓)⊃
@⊃∪ ≡εM 4)@70∞d
Su5 →β"P*∪β DECIDE WH@)⊃∃$A>⊂∧∧`)uλ∃hT⊂4Q$ 3H⊃hTε
;8εvAβ1'⊂≥αm*N@"λ9∧,≤αh∃ λαP''RdεTERRUP@(β' ≡~H4B∧(Xd`:Q(⊂i@fdg#H$"`∩E
0⊗vβYα&→¬""εQ∧JMαJ,b⊗@4→jB¬$βh∃ λαP ⊂ART@∪πU→β$AU'$A%_
R⊗α*%-¬EaP@'nh
@ IH
)I%+!%→α6Vα:B∧∀T
E-∀hXB∧|hd¬ 95∩⊂∀$gc⊂⊂α@
∨I
Aπ∨5∪⊂~≥∧B⊗J∃ph ∪[4ε`⊂∃$"P+SβRD DESC@%%
&:8∧¬$DT
U≤-$ ∀`*⊃0 )∃h*⊂&Uij⊂!⊃P N↓λ\4Ph ⊂@"V1*93P
: S@↔∪A_ αiz∃,MAQ J¬99∃∧(∩3I 0R5↓Q@∧P⊂∩))`∀YESIN1
∃+%_
QAβ!P@)5 α%@)j`∪ET [.SD@bX1))3 _c:%\jVNQ∧
22zp
∧⊂ε⊂'UαERFLLπ ≥αr⊃αXYT`:T∧FE∩h∧$ .SP'PA6@:α8D3∩EJE%LHf%hKαh⊃**StTd
⊂πP#Sβ THRLπ ⊗≡@¬B∧∃X¬→@'P'j∩ ¬RS
λ¬∪(H%!∪∨≤α~∃∪
8A⊃EαZ⊃IAeX4(~8U%TT ∀`*⊂3∪↓⊃,¬jg⊃'P ∀HE 'DALIN@(≤~∀&¬*N"$
αd⊂∧idSαT ;DISABL@
AβA!%∨!I∪β)
↓∪⊂~R-∩JVBαJ0hUβ""'bg"2c'⊂"X⊂DH`⊂∀(LBJJ@*4αEαα""'k` LL HRROS @∪↓β'3≥
⊃%∨≥=+&~∀%!+'⊃(A @2≤
P∃CQ⊃∪@:p5Q$ U31*)0h⊂(iFE∧T*id FXP,UL¬%β0~∀&¬*N!α5BA2Nα
5 !αE!#I∧h ∃SH F@1@Y¬≥3λ4(→Yu *p∧P)⊗f)kTF@
PUS@⊂A→1 @2≥:M"IHh ⊂L→x$Trλ∧K¬@⊗XFEαe)`⊂5⊗)`⊂E@π¬∪≥⊂∩∩`.m*N@"λ∧tλXpR3HD⊂ε$iPi
LISAR
SE@)i~A!αβ $%@:λ∪"∧β0
iU⊂!"P∩dε @)!
@E']&DAβIα4TJ~9ααZ4,@⊃0 iK∧ibj⊗αM @)e_∞N\hP&N⊗αK$j∧α3R _R5β!∧ibj⊗αM EOFRTN ;DO L¬∨(AM ∩jhε≤
J*D@$(⊃rJ4∃p3JJc"B
85⊗S$λQPλ)⊃(∧D]H* ∂ THROW↓⊂∞VQ∧z→αVα8U∩∧α3Eλ~TU4
Jc"B*85∪s$λαi))Uβ
∀∪5_∞@4T
BeZβ3∩)@*("&⊗ NTP@ →:$p∞6Vα:D`$uλ⊂h→α UIH
(`↓
%∨~4⊂λ&∞j∃αQdJ0∃%λI@HHα.`⊂∃βITHIL∧AαAA∩A'I(
⊗HhP%↓iIu≤(β"THZ⊃05∧εhε∧h∃i`λ FXP →$β9@%@8∧P)@" ∂MSH ∨)LA~>⊂ε ∃,XZ$L~λ~$=≠1Q#@1 ∧DDNβ ALSLε@h\βIα>→¬"0≥α yd*βTπ@~(αj*i∪α VALUE MATTE@%L~∃+∪a!+'⊂βiuiYXε∩\∀_ye,@*s∀j@iP3 ;AMOUH
(A=A'%*~2λ∧∃*9⊃1⊂∪βN FXP
∃+%' ≡MβWS@%,ε&)UβS ⊗fxVb$HI`≥<α⊃4HT∀piH)j i∃)P ↔HEHA≤
P∀,D t`$⊃P(βE*diPhεT=tp
V&≥:M +uX$L<βU3!⊃ ∧]kR ¬RE ACC@+5+⊂∩ε$zIαQ∧:⊗@%4
4
Q1β!∧h ∃SH P,[$UIFRAHhI`≤5(→T*∧β04I84H⊂)@ ∧ @!⊃→&A≤
P∀1β"A~∃0 dλ(⊂FXP ∩vααN :λ¬∩λ~α⊂ ∀HROW AL¬⊃α5∩⊗@%X∧SD
p∧gεBα H@%1~A
→@XQ R$∩P~N,)αV&∃∩,4!~¬-≤α∩Hλk∀∀h~β~DDNβSAVE ARGUMEN@(ββπ&A¬_
"∧¬_λ'`∞
PU@' A @1 εHKαh∀HXt⊃∪∧λβ'i1aP ⊂RLπ)πQ∪⊂≡aQ M¬X∧r∧
λε( LF@
UIFRM :βi5MYh∀:b""'f ∂CATIONLπA
Iβ⊂⊗∃∧z0∩¬(Xu∧∪β"JY4p5H↔,εjdQ)&U@2 ∩w1_∞∞ε$J0≤@H∪qDλ0h⊂$ pπ⊂)⊃ch"&βE MOT¬∩A∧Y+∪
I~Q R4⊂λ&6⎇2⊗ *λ⊂
Y4U∪AQ@∧fgUαS@∩A¬$eα_!∞ε2d1↓E1Hh ⊂L J%@$⊂+⊃↓⊃,¬cbU⊂#$i∀h∧ ARG FOR IN@)∃%%+¬!α4aQ M∀VSDλα⊂4@```$∩w
_∞∩∃∧J0∃$X∧TJZ∃λ∃~⊃#"A∀⊂¬))U⊂*dg∃→XεEαd))-∪P"⊗∀⊃,(∀DB]j*,H$g ⊂UT @∪≤Q⊗JJ-αQα∞D
H (!→T`:Q2(
%λ∧")
∪≠=(
∃ααJBe%J8∃∩D∃⊃P@!2Tt∧λα⊗**⊗dad∧B]c"j⊂βH INT@%%U!(A
8~∀&lzP∃≤α(⊂*&P#
λ`fλ→⊗∀FBα H@%I∩Aβ$β∩¬ "λ∧@∀CE MOT¬∩AλXQ
E↓$$↔:4,≤βsA∧λ4Q`→~h⊂rλ~P0uλZ@εE∧R))`∀ UIN@(β→D4 c]Y→e#≠∧
TL@Ul$
23Uε6H⊂
dSαT3 &↓+∪≥ εCα¬Y→e#¬∧
TL@U∪D
23UεH⊂
dSαT8 0β ⊗&u!AαVLrQQU¬*& 5F@
D
23UεG(⊂
dSαT90 UIN@(βID4!Q hUY→e#≠∧εB*JT¬'1⊗→____εEαP
RST UINT32
H∨-∃∩A)(αa""α""'i g"∪βH
A
%→∃αLrR-**%-¬AQ M∀z@λ
Jλε⊗@1
∪⊃I$Aβ$β∩¬ $λ¬∃
84J⊂%⊃,¬c"U!`λ IL¬)∃∩VBQ∧2V 48¬∩)@g
SK@∪!0A)(~(∩A"e⊃αεI∀ 2αR%~εI"λ¬⊂hUY→e#≠↔!∀E∃)z2¬,_j$j@,*∀¬⊃,¬`iVdεCHRLπ≥∨+LA∪≥$*JJVα
@hPα2TJ:α⊂ ∃IL¬(h`4⊂λ4*Y∀`*h ≥αh∧RZN @λ@1λεβββ∧¬P@!(∩TJ:α⊂ ∃IL¬(f@_h ⊂Lλ∧TK&P @,-1(FXP!~∀%≠⊂≡Z,Iα¬2z∩%¬λBHKαs0(d NE @%%=$⊂∀(Lj0≥Q2(λ⊗⊂λFXP)~∀%≠⊂≡Z,Iα
EP%λβ, ⊂)
∪≠=(
⊗%∧
IE1hε"DV⊂λ∀CE MOT¬'%∧
IJ∧bB≤IHbβ"β
#!∧d ∩R AR2A,VMERRλ
∀∪)%'(AU∪⊂~Q εhPβ"U)→β*→YNα LDB TT,[110 $β↓A1HKPK\)~E~β%`EVKHλP⊂i"P!S i`∪
λ∧∪β≥⊃∩AλX\h
\$KYE3∃P%@_P i⊂P!`∃BTYPE
λ∧∪ "≥!αV&u!eAλ¬∃¬⊂ ∧]c⊂h∧CHIH
)I%+!"α~V:≥"&<aQ MD8¬λ
Y3P
≤LT**) 0↔'Aπ&λaα"ε≤ZL4*Y∀`*
∞A~p¬dh⊃bP ∃IFRM-DQ @$hP%αN-"0≤jλ¬3J(α`fεBα PIOL¬β∂β%_λ$↔0
E%JJH
(αVbg⊂a&"P∩dεTERRUP@)L@TTT(T⊂∀)~B Jh∧u*85λ⊗e@)b#_K⊗)≠@0]
∃∪PH∩]≥*N⊗Q¬Y0∃≤Hf"be&pQ ¬∧j∀''⊂ T→ F⊗LD@ ;OL¬→2AA%∨πM&A&u"εJJ-αQα_d∧L@Uλ⊃JYβ!`∀ILπ≤A≥=_ 6:L`4(∀
D%T∀λ∩dλα".hitPq$λ(⊂ "U*i'"Q⊂+ f∃bP'cλ'$f⊂∩c⊂$jλ&`j*⊂i)FEαP⊂ _CT ARIα∩%\
BBK∀∧LU⊃4J*4⊂
⊂⊃*g!j∩`∂@≤~(∪⊃%%hA(@2,J~J5Xε∩Eαα#"A_p21$
λε∀β⊗(⊂
P@+M⊃∀AαbV&:αFC(hαB2 JT¬⊂**dc)∪UXTλ
F@
CAIE T,(FLP)
∀∩↓!+'⊃(A @2,J0∃#FaP@!4∩4λ~αibFBα SKIP@∂
@!
1 R ∩w&2αJ-JZ$`$∃P3
X(∪0*J⊃0 )CE MLπ-~βαP∩VM~ε@4∃ααHJεh∀h~β"P$U⊂#'iλ)"`∀URN~∀%!+'⊃(A @2,r∀LhA⊂K](Z5$⎇(T∧dM8~"b∧X¬⊂e@ε@
UIL¬(aCP&"JdIαI2,JN@=5λeEαα#"A→∀TR$
K∀uj1 ¬∧a∪*⊂ ∩1' ≡M\bN@=5P!↔tQ4jItQ(
:αh"ihπRITABLE SP +
_~∀&≥*∩∧hε∀¬Khε`∃ISP∂&Vβ 11X¬2*:βiU@1]
∃¬≤H∪!∨@A~@
¬D)UHλFBα POP P →!∧f~(Mα0≥αλ∧εFβ"B*
4r∩Dλβ(λP,RST5M1
∀∪A_∞Aαα¬Bk∩λ∧
!↔p¬g'PβK OFF PDLS AND UIFRAH
X↓'β-∪9∞~(M~V αα¬E∪;¬0!↔h⊂ `Uα@λA
_∞:R,rRMα|1α¬α4zIαB⎇αε)α∀*2>\hP&Bz∧∧5E¬J5¬≤¬B.j,<⎇≠n2P9`4ate @=@ αNαλT8R3A
≥Yc"A~⊂πh⊂⊃,(⊗"α]`∂LD STA∀E @∨↓+⊂~J,
0 (!~4\M Dαk
λ∧
!↔p∧c⊂∩`εTERRUP@(↓(∞εNp∧u"∧~;∀`(p∧)'SαOU@&0~∧%∧RJNP∧
TL@U∞≤α]P&jTh∧N'T ATTEMPT TLεA%M)∨%
↓+⊂~J,
0 (!_UD≤αλ⊃¬J3P "⊂d∧ ;W IN USER IL¬)∃∩VBQαBNfNαHTj∧X∧TI@i∀PnCE
UIN@(βIAh→
%∩∧~ H∃α+ f⊂i&af∪βC@⊗Q⊂R∩%\
2εJl~2>∞X∧¬≤-)_U_hαB2
*H⊂4F(+∃P*Zα#'(D)∩∩m%β≥ =~A'Lr≤E)yd`:αiFEαd))0i→ @,T¬+ !λR$KZ⊗J&u!αN⊗α)∀-_Q!∩`*P3∃(Q ∧DDNβ??
αUINT91: HRROS UIFRM(
bQ@R∩`.bεJ6≤b0≤≤αh
λ~v3Pi
SsSjZh∧FEαe#!fαD@ ;RAH
∨4A'3≥
⊃%∨≥=+&~∀%')∨4@Q
E↓$$↔8U∀Lh¬∃
P3∃(T⊂ε`j∃ ¬RS)
∩]Yβ⊂∩V(H$%@7wphPβ"@↓Gprr&∧⊂rr&$⊂rr&((⊂ri⊗QH⊂i9,QL$λp¬dYH!`I3@∧A%#%)$Aπ-∩`∩¬∧~.%E∧~.%Fλh ⊂@ ¬!eRX≥∧h∃i`λ FXP →λ4⊂λ&"α*%@$⊃∩)@*#CE CAIHAλαa5DQ!∩∧U*:B∧≤αr,!⊃,¬b"S h ED USER IN@)∃%%+¬ 4(~ ∃∧
X∧q!QPrr&'@∧ibU-&P*SαREAR
CKI2A0∀∪M ∩jhεV 5(5d8Hα.piλαaejH%'dg∀P NAPλA$B&Mαα tL@Uβ"A~q0
-∪P NTFLG 8ε∪%M ⊃ααJEHLit¬∀4q5↓Q@∧j)∩αE D0h∩%]r`%↓α↓5@0⊃∀αααβ,C!∧P%)∀h∧ CKI3 ;↑@∞∩@@Zn∩$@@@Zβ_4*&4qα&R~Z⊃IAeX4(~
U≤Bλk¬αdAQ L@3uQ)∀⊃K∪λd ∞@)λZb%]∩⊗N⊗α@@⊂ε⊂*∃,P#$S ¬S
@π↔%∀1`⊂M99∃∧rλ~#
@⊂r∪JHJ⊃J!Q@∧P%∀)j⊂!RdY#_CE MOT¬∃ααJBe%J8∃∩D~ %⊃ ¬∧j∪''⊂*∃⊗**)KαC@_∩$p∞∩y` jD∀Q4hZα⊂ ∀HE FILE @∪↓∪ ⊃αM→α∞Iz4, Q!∩¬$β∪SD
∃∃
Jhπ*,CE 2))`∀ @π↔%∀1D4!→T`:Q2(
E⊂s∀I⊗c"B
I⊂π"P∃*⊂TTS(
∪≡4⊂λ%αlzP∀,∀
Bd≤β∀Sf1 ¬∧h∃i`λJ FXP,(T)~∃
↔∩eDpλ&N|R≥α→d~.%J0h ⊂M zα∧T∧(⊗⊃∧¬
] ;END OF IFN ITS+D2@~∧b`⊂∪π2∀∩~<4S A _9E∀∀i⊃P@(p¬dYNα
∃π-∩g∧t%)%≥≤βXd~(∩A'↔%!∃αα
5L@1C"J*25∀G∧P⊂&⊃i)⊂-TdhλBHT \QUIPλC9t∩wπ≡↓%%∨HA∨+"α~>I¬r` ()_d`$∃0 bS ¬S@&)∪ ∩MeX4(→Ye ((⊂
⊗∩`¬ASK
∪)I_
9ααEB-∧α3 *!αE∧P∩))`∀ @π↔%$λ4(∃b5-≤X¬≠W)&`T V⊗)PhεMAR]
∀∩9' ⊗N-!αmh∧s(~P+
&l⊂∞DNβAVOID TRIPP@∪≥≤A)"*α6εI∧"VJ&t9αRλT∧-∃* u@"Pri⊗α ]εBα]∩∩m⊂~⊃∧z→α_ib¬-8YD-≥5)∃%_Q!¬∧Lyh∀<→aP@!4⊂
iR%⊂#,∀⊗"`∩RPOP
P@∪!¬+'
~)∪
≤AU'→M&U∪)LY6~∀!)%≥
↓(XK∧J6εHHA`≤-**∧`:λ⊂λ)⊂ib`∩VES @(4⊂λ%↓u~VN⊗αD¬@5Ts0*(+∀h~β&`i⊗D@
] 79λA>2α&~9¬*N⊗2-~M*&%_4(→Qe ((⊂ ⊗∀αERRLIST
H∨-∃~AαYY∪#+∨Q∪≥ h ⊂L*:α∧
HZ$LR,β!∧fgk⊃P ⊂,C2 ∩w⊃%β'$B~∧_:DL↓pπ⊂#∪βR @=≤~∀&≤*Rj5¬"Rf>40$(~:E∃"∧∧-@K )(dU)
λJRS@(↓→'↓∃!D∧↔:tL∪λ∀ →βg⊂+Rh∧HIN @%∪9∪ ⊂4Ph ∀≤αr,π∧iedT ¬ INHIBIT 0↔%⊃)+%≤β)≡A≤*JZ&≤)αRλT∧$3⊂6(Xλ∩3JHαi)*T*εE∧λ%))jλ( ∂PXDJ∩∩m
VQ∧r0~∧∧q4J@$abP∃βHENIH
⊃∪ ∪ ⊃↓βTαkλβ"B*
4r∩D
λε*dSαTP@*4⊂λ&N-"`∀j →e$S⊃c!∧h ∃SH P,A
∪!U'⊂Aαb∧4!→∧ddβth _β$$a∩h∧
SK@∪!≤AαY∪9)β$~(∩A2-∩Iα⊗m→EL$KZ2>NαD¬-≤X∧@→→β*"i∀*h ∀
λ¬π.K
¬h→Qu *h⊃⊗∩dεTAR(A) 8π
∨$αα≡
αα
$@:⊃0u _βgεEαd¬OVSM D,(P)~∀%'⊂≡N8ε& 5H~ HKαpv(d∧E THROUGH THE @ →¬3λA%_
R⊗α*%-¬J1P@!(⊂ bU-&P$SαTFLG 0↔)8A!%Y⊂~Q¬"&,→hr¬≤8∧Q*@iP CL@β$β∪⊂~R4b≥α_aP@! ∧DDNβ @≥≡↓≠⊂≡J*α& 5HZ%∃-λ¬∀d
⊃3Q →β#FEαh*`∪HJ P,UIH
(`4⊂λ&N\JB2∃∧ 2&:αH∃⊂@"B( *Tp
⊂⊂βK@∩c∧~∀&≥*∩¬¬J# 6λ¬XFBα POP P →α4⊂λ&N-"`∀j →dDL)~@hPα4∃*9⊂¬⊂(*dg*⊃lεE∧R))`∀ POP@1⊃∀⊂∀ c]X¬3iελ⊂
jSβH2 UUH∂!∀ αVV|
≤@λ⊂
jSβAJC UP∨⊂βα∩¬X¬3iε⊂#"AQTp
a∃* UUH∂!∧Bε 4IHU∩αα∩3Hd∧UDIL¬≥αα:E∃"α#"AQL¬`∃ULπ⊂t∩@∩∩%]*V : λ∀`(α&"iβE*`∃OH0: MLπ ~⊗hεQ2VαZE≥@εE∧S ∧B T,[3 &Db``X0ha:~(∪πβ∪0A(@2≤
22⎇hε3_hαB( *Tp
5h¬OHAλ$↔:¬∀|(_$eJλ⊂dM8∧λ∧!`f&λα U@+<~∃+,z!I@!_4LHT¬"eX¬3iX4∧εEαP)bj⊗α T,
λ∧∪∃%M(A↓-*0≤C(⊂
E εE*Udπ@⊂e∧pλ&⊗α*$(1α"'X⊂$iH$f#f⊂ LGL, ILGHλ~∀%%%∨Hb∩%\b⊗JHKZV 49z%∀0p
PαLE LISP ERROR
λ∧∪+,zε∞A⊃∪@80p3 A,¬ef∃b#bP⊃'i⊂'⊂βALLIL¬≥α
∩Jε@~1P@!50
gPe!DDNβAJCALL ;JRST VERSIOL∧A>2αε∞εd`4(_Z%∀⎇&⊃⊂K\β⊃4F1,¬f"T)⊗⊂!∃h∧ ALSH∞A¬∩& 5Dλ∀8u35)H5∪tDλ εE∧Qi)'i
D@ ;ERIN@($p∞∞z*$,≥H_$d(⊃4J)tH∃i~α λ SIXBIT MSG
λ∧∪!∨_b∩%]αAαi%@%nBα)∀`*λ∪u*D⊗H⊃J)pεP"⊃*εE∧Th∧RTOUPλ∩∩m' ∩J I`≥≤α6⊂I~α⊂ ∪TRING↓)3!
↓_∞VPhP&⊗J∀zIT⊃↔5≤-)→e Kαpsj*Q0uλ_S⊃(λZTStD
p∧j$λ)P
EXP @≠≤84(~It3λα".jJλ⊂
∩⊗∧X@)e!⊗A¬αJ&:αIu-λ∪qDH⊃TI@fP""∃∧¬∀∪∃%%∪∨(∩∩`.Lz*JNαA∪@9⊂24K∀⊃P 'Pα TO GET I,π⊂≥α-∩J>I∧jN≡LhP&NR∃"0≥-A⊃∪@:u∀Uε@DXAS@π∪∩AM)%∪≥≤A)3!∀A∨+ h ⊂@"R1I@⊂⊂∞-UUH∂!∀ 5E6αZT`9α`l, WARN [U@+=⊂eαA=+ ⊃α|1αBλ~4-hβ"C!ε@
UULπβπ_h∪!+≤AαAJZT`9β"H∧∧⊂P2j
Sc"JZαg`e⊂β:∪≠=(
∃αα@λεα"%@)bbP⊂i`iεBα TLNE T,AS<F@0αZ~1xhP&ε>T αQE`
f!,¬c'T⊂ ∞@+5
-$λ∃∃∀≠~2b∧YjD
∩λ~B∧DX_D-∩4∧#!∧h ∃SH P,[UP∨≥Y→0∀↔8d@:H∪u λαi⊂ T) liK⊂*`∪E NUMVAHλAπ!π-¬∩0≥-I→d(hαH
¬D8¬∀
)c"BQl!d5⊗*`∃TSP~∀@A'∧*≥¬)t∧LU⊂0JAαE∧e∀)j⊂ ∃h¬TSV
3αOP@%<~∀4Ph ⊂hαC"APL¬]@; @ ∪'Aβ ∩∞@ε0≤r∧(4@∪@~K4⊃(
ZαgV⊂∃) h(∩dεG TLεA&u"εJBα(U$4H∩(d⊂π"aQii`i⊗F@
UP∨⊂βα∪Pα0p)→α"P*'%!`S ε←Zβ→L4!∀∧U∃8¬λ
Zαgd2
α∪~9(
⊗5¬"Q2VαZE%≤aQ L@3uQ)T∀C∃*ZTpεBα LDB TT,[270 (@`X@1 ε¬hhαB0h→1h∃
E-"↓↔pε$iT⊂⊃!`S&⊃⊂*⊗h"P*UdπS
TD~A RR
α∩@MH∂-$A$XZβ U"R ¬⊂hPα2∧J+H⊂
⊗
_εE*UdπH !∧pλ&6⎇2⊗ *λ¬
Zαgc'βE TLX∧A(X4b~(Lj0≥4Y∀¬%"β
¬¬⊃ ¬∧f∀d⊂ ∀T,-SEGLOG
S@↔∪A∂
A%!2NPE"Q$Q!∩∧U*:B∧¬X¬3H_J⊂ )
∪)1⊂
9ααJBe≥⊃Q J∧αTTjD∃0
gR_!FEαh∧LZ R,70000 8εh`@β↓AA↓βWb∧
X¬∪iIp1⊗λ→_⊂⊂000 :xA≠βπI_
04P@$$↔0λε⊗λλ_⊂≡P≡ AH %¬ 2A %λAβ+Q_∞2x_@hSαn`≥H⊂# f∪)P ∀HRU~∀4⊂λ⊂w+,z!EααZT`9⊂h
Zαgd1A U@+=⊂g∧~(~∧`-Xπ2α∧h→De~λ¬∩
* εEεBαUUOH1:∪⊂I%4A"a"Q⊃Q LUYZ∧*∧EJU,@rλ`CE HRZ @)PXQ(R4⊂λ&"α*%@$∃
E εE∧⊂βAIL TT →#¬%%β24⊂λ%α≤
& $T
E"e_∩U$|β∪p(AαE∧Pλ%))jλ*jgdF@
(→"$cλ%))jλ ⊂λTT)( +,zRJQe
εJJ
H4(Q*U,@p∧_!Nα TLNL∧A)(αbN∧Q!∀U∃8¬λ
Zαgd3A
∀∪!%% )¬"Q2ε≤
I"QH@%nλ→d$dTλ4
≤T t2∧∀
4
∩λXd4L9_T`*⊂ε,FBα CAIL∧A)(αbε∩⊗ 4(→*%≥λ⊂
jSβH3A
λ∧∪≠∨Y'∩A"a"Q⊃Q LE*)∩¬"β∃β!∧e))U⊂ ∃UAPλQ⊂¬⊂hPβ"U*Yβ`λ1A8∧∪∃+5!_A∩bV@,→JCλhαB5 IQ(∀EFLλλ__εE∧H%))jλ*jgfQi
PUSHP,A
PU@' A @2⊂h ⊂M99∃∧q(⊂%J53qI@ε@
JRS@(β+ ⊗>,*H (αB2 JT¬⊂*∀ TDB]`∂PEL¬π>$*⊃αNβ→T-P3β!∧d ∩RLεA(YQ(@$hRV@,yh≥ POP P,B
∪!= A Y∧~∀&≤Z&BdλU *∃3U↓⊃,¬id∪βULDTπ
Aβ1→∨.A→+⊂~∞αI∀`9P3λ
@ i$`PαLE@&|~∀&≤
& 2λ¬
~αg!'UdεD 8π3~aα&M∧JQα
⎇*0∀∂c"A∀⊂¬))U⊂*`∃OH3A 8π⊂~=¬"0~∧Y~DD4H∀*X4p
$SβHXAM_
α⊗α*$`:@εE∧R))`∀↓+ ⊗>@ε∧λhαC"AQ@εESP¬$α↓5α~@ j4⊂3@_~TP6!Q@∧jjSβS2A 8ππβ→1∪~≥∧2N@,*
j∧α5∪TP g0i) lCE*`∃ST:∪+U_∞M@KZ≤II∀`(h⊂ jPαR -IPλO&↓αA',∩H$∃%% 93JJAQ@∧jjSβS1 ;@πβ→→%_
≥αe~V
Iαiα&Q=→α¬αα:T*@εE∧Uh¬OS2 ;CALLINGFSEBR - IT'S ASP¬$4⊂
VV5~Qh~ZT`:l,απa`f&∩`εGSUBR - IT'S AN FSP¬$4⊂λ&VαYu≠⊃↔483∪∩)@#P&)Ua)⊂⊗H$j∪iH g⊂#∀h¬BR
λ∧∪+,zN
HKZ≤II∀`(h⊃TjXTH$ 5 tdλ3H⊃J:αa)∧BU∃+dSα**
UP→(βP&@-Yz3 1(¬a`S& N↓≤A'+¬H@ZA∪PO&Aβ8A→',∩H(!~U,@s∀pA↔pp3 I3Q`→Ju0TD¬(∩5∧zh⊂3D ∀p
a∀∧@ **Tπ∪≤T(~∧&-*0≥≠⊃↔483∪∩)@#P#)Ua)⊂⊗H$j∪iH g⊂&∀h¬BR
λ¬++Ppλ&VαYt-E↓↔483∪∩)@ π @'U
I↓hε&@"z4∧@H⊃6
@εE∧Uh¬OS5 ;CALLING↓→'+¬H@ZA∪PO&Aβ8A⊗@
hPα55)@i[∧]PβALLIL¬≥α5~V
Iαiα&Q=→αε9∧*bBHhRV@,hZC@!50
gTYD]aPd∧@→∪9∞A',∩I↓T ∃"th⊂$λβ"`_PRλ
(M*V =4¬α'a`f&∩dεG LSP¬$αZA& ∧u~∧∀λd-Eλ∧C!∧j`∃OEX2 ;@πβ→→%_
≥α5~V
Iαiα&Q=→α¬α4*bBHhRV@,h_c@!50
gTDXCALL@∪≥≤A'+¬H@ZA∪PO&Aααα0∀|βP5 @d¬ICFUH4PJV@,F)`K\8→DdLhpλ Ju0TD¬(∩5∧zh⊂ ⊂∪αO@≥βQ_∞6&≤2V 0β"B*Zαc⊂∩N ;CALLING↓
'+¬H@ZA∪PO&Aααα0∀|βP5 @d¬ICFUH4Ph ⊂@"U5(→α*≥∧R))-&H*⊂UUAH (r$∩w
∨U_
"λ→b∧
X¬∪iIp1~
St⊃**⊗#"A~α OA R,4@```@4⊂
VVl~Qh∀
Ddzλ∧@⊗__⊂⊂00 ∩w5βπ%∨LAβ%
↓∪∂:⎇∩⊗⊃D
4`:Uλ∪haαE∧e∀)j⊂*Udπ@⊂b4⊂λ (*ZT@∃ ≥αh∧@→∨∀A$Xbβ↓AAAαH%n∞b2&:8εε 5α5∩ →β#P⊗H$j∪iH g⊂ Uh∧@∨→=βλ~∀$A∃%'PA++∨ gε∩∩m→∨'
↓∪A∃U' ⊃α$J⊃αεpεε@-IyD`81λ⊂)JQ01⊃ ¬∧h∃i`λ P,A~∀%⊃→%4↓αP∩ααZT@∃∞"!↔pπj$⊃i+diQP jj∪βL@∨β⊂A)"*α~V:≥"&<aQ L@3uQ$
λε*jSβFN
PU@'!∀A Y¬+ ∩>dzε⊂%\∩⊗@%HZ"¬≤~hR¬∩Dλ%J∧xYu∀q(#!∧h'hλ(⊂A
λ∧∪≠∨Y
AQe*V <iaP@!2TTjD∃0
gR_@ ;L¬∨.AQ%2A∪PAβ∂α%_λ4 c]X¬3h'!P*UdπBAK UUBKG1 @+U_∞
-αt¬-3pRf∧∃0
gPαK1 UUH∂¬⊗βAαVV|∩-@*λ¬5)@a%@⊗
λ∧~(hQ`≠[4 T
Jλ8∀dbλ¬5)@a'!P⊂dεDUUH∂¬β,A∨:eIα↑λYbαU*8U"∧α4h 9β'kgβE_;lA)=∧∩∃αiybl@R3λ¬T⊂5Si_∀h⊂hZU⊂2 @⊂"$fRdεG ERRORS,∧~(hRV@,x!d7@∧h'T⊂(⊗*UdπBKπ ;E@+=
.≥¬:&@$∧ d`4⊂pλ'T!
λHRROS UUOBKG ;FH∂$A-*0~∧z[∃~¬I∃"∧8→Db∧α0$
⊗+β!∧e))U⊂*`∃O@¬⊗`∩lA/"L~!α~J4,@⊃H∀hZα)P*T⊂ P!T'h%εBα
∃+U_∞
εXπ M∧βt
αeX¬3h%cD]UβATCH T@⊃∪LAπ%∨
⊗B4PB*JNαD¬-3pRf@F@
8εvw-*0≤∀8p∞A⊗β"U*XRq`_Nα SKIPN @,9%' I`≤≤α⊃0i4∃∪h
81(∃iλαj$"T⊂ N*RSET MODE
∪∃I' ⊃α¬*V <)8pK]8~d-~λ→Db∧_:3@4∃λ∩λ~h ≡λβ @∨↓β%∂&x~∃+,z∀[w!∀E∃+*2¬-Yx$\8Q*U,@pR`_∞α SKIP@
A≥%_⊂∀(MαVN $¬αdβR3λ bεEαh*`∪H @
1αbRP%]α∩2M∧jVNQ∧∩∃αε~α~J⊗αJU∀rλ¬sJYα"⊂+PdεT
PU@' A~bα¬E⊂Kαh∃ @P!"iU'i"P∃$"f@5'FE∧↓JUM@!≥
AλYU+⊂≡
Xε⊂K\α1H
Gβ_⊗⊂∃$"g0ii`∃ME , AH
λAQ⊃∀4PJ*NA¬"Q2ε∀:A@%X∧∧
∀z4¬ 93∪λλ"P#$S&"b2dε LAT@$~(∪⊂⊗>4r%α∩ ¬BE"α#"A~p¬dh⊃bP FBα SETX∧A)(α`4(→
$djλ¬∃¬E∀
#!∧e))U⊂*`∃O@¬⊗p~)+ ⊗>∀YEh~
U≤Bλ∧
&lβ"JZαga%N≥ MOT¬∩AQ(X@5⊂¬∧5E¬⊃P@!2⊂ &∩P**,(@
→ $~∀&¬*N!αα¬E% Q!∀E∃+$¬%"β
_βE HRLI @)PXQ'αH4(~
U≤Bλ∧
Jβ"B *30λ&⊃P*⊗*UdπBKT~∀&¬*N!αα¬E∪;↓Q LU*:B¬-Yx$[@εE*UdπBKTpλ&BαZ4B¬¬K2$
λ∧∪_TP3([ εE*UdπBKXpλ&6⎇2MαIc!@ (αB2
*R(∀EHt∪t !α@
SKIPL UP∨¬-∞∩%\jεf
*α∩>dzB¬<→jB¬$α⊃(λh ∂PJ
∪!U'⊂AαbH (αB2
*T¬)P∃h¬OBKG
∀∪A_∞Aα5BA2HhP&Bz∧∧5E¬JE @ ¬∧e∀)j⊂ ∃h¬OBKG
∀~(_w+,zN
I¬*V =8 D
53th→P ∃ULπ'∧j↓+ ⊗>≤⊃P∩¬X¬3j8Mh∃*Yβia4 UUOXT0 @+U_∞b~@λ
Zαgl*P*`∃OXCT UUH∂βπL~∀4Ph ∃-Yz4*H¬∧d∪)(
T,(T) ; ∀T(A~NαX%∩∧8→Dd1λ∪ →q(⊃J:αa)εBα MOVEH
AαbV@-λ∧uAQ@∧fgUαNI R,1~∀%)→>λε¬ #Fεβββ↓Q%-3tpF'@∧fgUα@∩AHXb$KZI`3∧
4
M4λD`9β∪j1'P#)⊂d¬E HAC@↔I2~*-*0≥≤&7 L@3uQ$
∃
ε↓ ∧]gU$"`∩WISE R HAS -<# OF ARGS>~∃U+⊂≡N⊂εS@!5∪∪d
λε∀(∃i`λJ P, ∩~(∪ ∩IhR¬%EEβ
{4∧j!⊃,¬`∀HE @≥≡5!+'⊂αaα>I∧RJNQbα∀ME`λ∧
q1(λHαc$g∩h∧@∪∨8A∨A)∞ε2`h ⊂MIH4
¬EE∧U∃8¬⊃O(*`∪HJ P,>)
∀∪A+'!¬↓2VV|@4*VαYu≤∪dεB)*30λ#H)⊗*jSβSB7
λ∧∪D~!αQe⊂4(→*5∩¬X¬3h%cFEαbhλCH T →$4⊃++∨M ]hM"2iαλ¬Bkλβ"B*I⊂π"P∃*⊂(Ha0≥Mα5⊂HKαp
$⊃P ∞@+5%∪ε↓∞ε2bα∀ME`λ∧
q1(λHαc$g∩h∧@∪∨8A∨A9∞ε2`h ⊂L→z2¬ ⊃⊃∪@8St@⊂∪αCALL, ENTER AT @≥ I2Vb~(∪'.Mα0∩¬iiu-3c"A~α NE TT,(2X∞f@~H$%@8¬∩λT⊂π'VPβH ∨¬ $A¬%(\@AM
A ∃
∪≥∪Q∪⊂≡d t2∧8→Dd@εE∧R))`∀↓+ ⊗>E!@ (αB4i@iP ∀T,UUOH
U@+='∧ht%→∩ ¬⊃2mMα6∪β¬EBE%E≠PhPα0p)→β⊂ ∩11π)>4ff~∀%∃%' ∧¬-3v⊂jA ∧]fPebP,⊂βT OF UUO Tπ∨%⊗4⊂λ&6⎇2⊗ *λ¬⊗
**∀FBαUUOXT0: TLNN T,(3 )|ff@$HI`≤≤~Z4*∧Xε∩*D∃∪h →β"$i⊃aj⊂*∩)*P PβALL
λ∧∪)→<A(@1D↓$4*ZT`;⊂∧j: EP⊃π A(@2-*RNXhRV@,{
CPα33j@"P ∀T,UU@)Q' _Q!∀l@uQ(
%∃0
i∀hε~∀%∃%' εαVVαJ5 !αEεE∃h¬OXCT:∪→⊃ αIeYIIAα@ε¬λε∀*∃∀h
;GET IL¬∩⊗β4LYHB∧|d∧:β"B)*30λ"H)⊗↔+2λ
(LBJJ@$
"d¬X¬3h_tk _J)∀D]Rc⊂''Sα-P∃I_
1α<*Qα∞|rR,h¬∀d qH∃ λ5λ⊂(F@
AD@λA⊂¬BE%E⊃⊂K\_HB∧Ldλ∀$∀Q4j4⊃R1)HαεE∧R& R,(TT$~∀&lzP∀,∀
E"bα∀@∀CE TLL¬
A∩a"↓⊃Q LU*:B¬-Y{∧:α".iX2q( _β"$i⊃aj$gSα WIN
∪∃I' ⊃ααZT`:pMα!↔pε`eQP,!jλ'c⊂,⊂βT .8X αxd¬D≥D t2¬X¬3d
p∧gεBα
∀vβY`~¬H⊂$d(∪qD
p∧"i⊃P*'P⊃$g"5$"P PβS AS T@⊃dA/∀!α>d
U,@h⊃3JJT∧FE∃h¬OABS:~∃%%!&A`XY7αβ α
∧
IEα
⊃J¬ααZU%≥d
U-∃∀uDλα⊂ ∃URSV F @
%∃βεA-*BNY∧22Aα5BAαNαPhPα6β!*"`∩MIH4P1nVαYt
∃$
U,@thλ⊂∃h¬OS03 U@+=β$dAU+⊂≡:αiB∧R6≠H*jgiLbP ∃ULπ&e
↓+ ⊗>+_4(Q*U,@p4TG∧d&)⊗α R,(T)∩∩lTTTA¬%%β2↓∞ε2d"⊃αI→4*∧∧p
a∀∧¬
MLπ-'∩↓)(@1@↓$4!→%∃≤@λ∃*Xβi@03
~∃U+⊂≡Lαπ M≤X¬⊗D
∃α↓⊗h¬∃∃λ)ba λ!`f&⊂¬D LIKE @'U
HQ!∧E∃+$¬∩eX¬3hi@εE*UdπS`Lpλ&6⎇2⊗ *λ∧
Zαh ∪V ↔(!∪&A∪LA)=∧B⊗ %∧
U,@v⊂u↓P@∧dLR TT0Q(@$hP&B⊗α9α¬αβ∃¬↓⊃@∧f"⊂α T[270(@`X@1 ε¬hhαB3)@k' ∪ Tλ
∀∪A+'!∧2bAJAP@!4⊂
iR!⊂ ⊂,ARGCHK 0↔'-∪!&A%A>Xh ⊂J *%≥λ⊂
jSβS0E
λ∧∪!∨@A~bα¬E⊂Kαt@→↓'kP$⊂iP⊗@< εA>2αεJ≡≠p4Pα4∪J∧∀∃↓Q@∧j&∩εN @(0Q@$KZ~VJ$B⊗Iααye∀Z hT,$X@4⎇$λ4@∪∩3Ht⊂3@_~TP6!Q@∧P%∀)b UUH∂'∧β_4(→Q`*@)` TT,TTS<C@≤|4⊂λ&"daα¬1 εHJαu5)@ia≠@4πILL @π→αHA→
PA⊃β→_A∨A∧~∀&$b ∀rλ⊂ε&
B]b'P∩αOT SEPλA$B¬α∞|jB&2,!6∞x@BhhαB( _βi&@5*⊂TTSAR(T)↓ 6A9 &5≠
A¬!(A
∨HAαAπ¬→→B4⊂λ&6⎇2∃α↓J@εFβ"B
I⊗S@~Jλε∀20P∞f@~@4λ∀ %∃≤@λ∃*Yβia3
∪(1⊂~9ααJBbC+r3~Hβ"B∧ TTu∧
53p*&@∧]g⊂βALL'I@
∞↓¬_ αε∃∩εEαh*ε 54λ4d|( @*%λβ"A~⊃0 dλ(⊂[UUH∂≥4bt¬@4 ∀2∧→k∩b¬9 e,@⊃λ⊂HT⊃∪hλ_p3∪↓Q@∧e)∀h∧ @+U_∞N (h ⊂hαC"JZαg`I≥ TLH¬≤A%!1EAαεhPα(∃ Ip(∃¬E⊂0p)Iλ∧D]SαCALL, BUT NOTH¬πβ→1@z@rαε∞εd`4(∀εR2x⊂
"bα⊂2H`f&∀B]`∞JCAH _X↓
VQ∧r0≥" i$83⊃HπWH⊂2H`f&εBα 4*id4⊗*`∃OHλ
∀∪Q→4A%!1]]8εββQ!¬$e$
BbD¬⊃P@!2TTjD∃0
gTa≠εEβE*`∃OL¬-_t%'↔>%!α¬25A.~0hP&*J≥!αVV|rP∀(β"QI≠
nB)Yβk"P∃;U@+=&a
AU+⊂≡Mαλb¬-YxS∩¬X¬3j8,(∃*YβiP⊃
λ∧⊂∀*-*0≥≠λW M≥X λ
¬∀M`_
X@
UUH∂&@∧1`⊂Mλ¬4i∧⊃P( ∧
PUSHJ P →'¬(
aLhP& ,zhTJ∧EFhUX¬3hVL¬∧j∪'"P"→ ;D 1. $z|Aa∪ ⊃α"∩J⊗α:2∧J(T%∀λ$,,d ∧≤αq1↓Q@∧e)∀h∧ .,h⊂∀!→T`:β"P)~_εEαh∧@→≥8A$Xbβ↓A@4PJBVN@∧¬αeX¬3i↓α@
PUS@⊃∀↓
1 YMβ →Vhε⊂hPα4∃*9λ⊂λ⊗⊗βP+∨M
c 4hP& ,zhR¬%EFC@ ¬∧d∀&)P*∃∧¬∀∪A+'!¬↓2RPKZ0∀XT∧`8H⊃U)@!j$gSα @∪≤αα2 4PJRJ:p∧∧"c⊃↔3
@L(∂'d⊂ε$iU$g#@ HAS ALREADY BEEL∧A ∨9
~(LRNAααJBd
(zβKαp4Hzh⊂
'H εUNCTION↓_
>]∧z0∩¬λI@hPα33j@ ¬M D,-1(FXP ∩~(∪!+≤B)αAe∩N@%∧∧b'i"ajT ¬RATE ~A%A!∨M'∪¬→∀XA ≡↓_
-tλU (3∃0*I3sC!∧e))U⊂+g Qi)∧]SβR ELSE CRAP OUT @∨≤ααP≥∀yhr∧uYX$-∩λ~$=_Q*U,@tq,'∧h ∃SHJ FXP,RST5H
b~(∪!>αα~bAd 4(~ u∧Rλ∧↓Q@εE*UdπS "βP&"J∃QαRQbBQ$⊃↔2RR$
5,∃$λ4@⊂ε"bλ& KE LS@+ $⊂∀λLB2J@$
BbEE⊃P@!10!R⊂*⊗*Uh∧S@,4⊂λ&*≥↓αI2∧"2εJ8h ⊂Lλ∧TK⊂)⊗*UdπFN
λ∧∪!-~")αα¬D
∀x93Hα.qI@i!bP⊂βHECKIH
∞A=A:αYT(αi⊂'Q⊂ i#TF@
JRST UUH∂&@∧04(→Yu (αP ∀T,40
P 2t)αRQbAIB⎇≠→$%@8¬∩λT⊂π!`S&⊂!$U∧¬∀∪¬_∞MααZU%≥aQ M⊂ε''λ**⊗∀oYP∪) 0↔$B∃αiuU¬-9∧ tH∩J*uλλ$j↔ SEE D@
∪9∪ ∩→yb∧|d $83∪β!∧h ∃SH P,UUH∂:(∪∃'⊂εV@,x)48hαB2J*uλ∃*Yβl ∀D~∀_w+,zaR ¬*V <β∀pD
53sλ→P ∃ULπ⊂∩ ∧¬-3qU)Aα@
UP∨0β"∪Pα4ri~⊂π⊂*Udπ@→;=0 MEAH
&A∃_
RJJα~J>hε6εA¬~⊗J&-_4(→*%≥λ
∀E⊃ ¬∧h∃i`λJ FXP,SAPk~βλ4(~
U≤Bλ∧λi~f@1PJ~∀%∃%' ¬"I$hP4*VαYte≤'!∀l@uQ3$
λε*jT)k∧]J∃∃⊂&∀h¬BR↓∞ε2d*⊃αI→4*∧β∀u()
MH∂-$AαY≥%_⊂∀!→∧e∃αH∃¬E∃
#!∧iedT'⊂ ⊗.RSE@(4⊂λ&*∃~QαVαYu≤∪!Q M¬X∧r∧λβ(λP,T 0↔≤
P∀(⊂
* b")⊃iiP'Q⊂ SU@¬$R~(∪⊂⊗>4)αQJZU%≥aQ M¬X∧r∧λβ(λP,T 0↔≤
P∀( ≡λβ @∨↓β%∂&xA~>⊂∧¬-3qU)Aα@
HRRP∀AHY++∨→_λ%@8iu∩∧~(t9lβ"A~∃0 d∩⊂(⊗ T πCK@~∀&U∩N@"λ¬5)@iXbFBα MOVE R,T ;WAT@π⊂A$B&Mαα9¬,4iI∀`(h∪qD
Kλ∃¬D⊂3Q∧
50
)Uα!~∀%∃' APY≥!-~!5XKZN&@∧
4d⎇J4∧4⎇$∧$
¬ K∩∧TP3(TKλ⊃*HhπεEαd¬OVE T →+U)',~(∪⊂⊗>4*5αIe*V@%8¬C!∧fgk⊃dP ∀0Q @$hRV@,yH#≠Pα03i(βP ∩1+ ⊗>d⊃P%@8∧sd
pε$b⊃P)`∀UF@A≤JaαNdzRMααZα¬$α⊃(
λα
H∨-∀A)(X4h "QHI`≤
DλT`(λε⊂*λ( ∂INTS @)<A→β'PA∨AQ⊃∃α4JP∀(β"B)Yβk"fH**⊗∀∃∀@ ;↓
%β≠∀A'2⎇"Mα~⎇⊃αVV|2V Q!∃≤@rP ~E∃0
gS!→FE∃h¬OLB4:∪≠=(
∃ααJBc#↓↔44LzZ$*∧βu5∧ 1H⊂h→α&⊂'T⊂!`f∪ ε @)e!∀4PJ6 =hY∩¬∩H:∧`:⊂¬∧]H∀
AY BE CAH 1¬"fB∃∧J→↓A∧
J=5⊃P@!5∪∪d
K
∀
Zp∧%⊂∀⊗⊂ ;FIGURE @∪(αα0≥5β"A~α&'"λ**⊗_L_⊂∧DB]` T↓≠β %∧b0≤|αh∪ →q(∃hTtQ(λg`∞STRUC@)%_
≥αλεBVNDP4(~ID8(⊂ ⊗
%))jλβ<P@+M⊃∀Aαay$↔0
$zλ¬∩λT⊃tSi@#P ⊂LACE, @¬+(AIβλAQ⊃∪&A
β%
U→→2B4⊂λ&"α*"¬∩JZT`9α".j(αj*i∪α ADDR@'~α6@-8¬λλyβP ∃ND@$~(∪⊃%%i~A$_4jQ(R$∩vA$B∃α~α(∀l*D d`:λ∪uHZH( ⊂CE HLM @$0ZbQ
a B%]~ε@4T ∀`*u∀U(j ON T@≡A
→∨¬¬⊃$A/∪Q⊂∀(Lj0≥4Y∀¬%"β
∃¬⊃ ¬∧h∃i`λJ P,U@+=
+_∩m'⊂≥αα:DL≤αh⊂)@⊂ h(∪,P#)⊂d¬E UL¬∩⊗α$∧
∀z5B∧Ldλ∀`+ εE∧BDXR¬MEMBER, @+U_∞~Vbα⊗BB,~RMααJd`4⊃P '⊂αS
λ 0⊗A=_ α~β
αb∧→hB¬∧βt∀d pπ"P∩βF @)!⊂∀4PBB>A∧2bAJA∪@:Q0 j∪βRE T (ADDR@'~α0≤2 J5,∃%⊃P@!33uHT⊃∃⊗
_εE∧R))`∀ UP∨'λh4!Q hUX¬3hj3∞B)Yβk ∪ R,40 ;P@+PA~Jj∃αVt"⊗Iαe~V
I∧~ε $ββ"A→∀TR$
K⊂t @h
8π)(AA_∞&:αJ2¬$βh∪λ~uλ∪hd
(∀λIλ⊂ f∪βTS
H∨-∃~A$X!)(@$HI`≥-8Z2¬"β∃∃¬J@εE∧SdπVEI R,-HQ~@
¬⊂HKαqV
∧⊂∧ iH⊗X# LπAβI∂&|A¬_
" yd(hαB2
*S(∀EE,j∃
E ∧D]H'j$"T⊂)f'U⊂ iP∃βELL
λ∧∪⊃∀b5α~e↓15ME"Q$Q!∧E∀IP
≥αβ →
**∀FBα H@%I0 αIc!@ (!→¬∃∀T
"bk%
E"Hβ"B* tλ⊃K
λε*εBα MOVEI @$0Q(@$hP&"JdIαI1hε∩E"α#"A_1⊃∩∧
K
∀¬⊃ ¬∧iRdh'5∧¬∀∪M ∩i¬⊃0 (!→T`:Q3 ~%λεZ(TT ∩~(∪⊂⊗>4)αI2X∧D
¬ K∀5∀→XEhhαB3)@hεEMR, ~bαBRQ⊃Q M∧βt∩D
λεεEβEβ≥j`∃OS9 @+U_∞M]¬*V =4¬p$
53tf@d⊂ ∃ULπ&o⊗4⊂λ (*ZT`:n.B*9p∧h H**⊗!Rd∧IST ; ∀T(A→',∩Iα∞b2,D DL\Tλe≥0TC!*jgiMβ:∪≠=(
⊗%¬"Q2ε∀:B$A↔2RR$ E≥0T@_`f&"Q⊂ IKE C@+ $⊂∀!→T`:Q(∀EFβ"A~α&''λ)⊗_@000
λPUSHP,U@+=⊂∀(LB2J@$
BbEE⊃P@!5∪∪HT⊂K
ε&↔lle⊃ ∧]j∩ ¬ NCAH _↓ ∪ ⊂4PBε∩∩JαQ1DhP&BVα9α∧V⊂λ⊗∃∧¬
PUS@⊂A→1 @2D→5DQ!∃≤\α4∪D
KP )Qh∧
λJRS@(↓+ ⊗>≠:∧4!→T`:Q2(
E#"A~∃0 d∩⊂(⊗*UdπBAK
REPEAT 2, SOS -3(P) ↔β1→∨.A→_∞IααJt`4⊃P '⊂αS ON @
"h ⊂Lλ∧TK&P ⊂,(@
1αH4*VαYu≠p.B)*tλ∃
Eλ∧*
DPARGPDL Lπ$A∪1∪'(~(∪!>αα~bAe⊂4(→*Tm∧βλ∀EJ53tf@eFE∧∀e` PN TT,T
∪∃I' ⊃ααZT`:mrβ!∧d ∩LI TT0ZbQ%!$4!_∀$∩(∃
E*∀¬⊃ ¬*jSβS7Hh∪⊂⊗>4*5αR ¬Bk
⊂ ∀CE MOT¬
A%!2m∩
αB2f5∩ε ,Xπ#!∧fgk⊃d¬ @)PXZbQHR$↔8∃¬∧β⊗1J(31(λIpπ"FBαUUOS4π⊗t∪5_∞Z⊗hεQ2VαZE≥C"B
TVH
%∃0
gQ'
PUSHJ P →βI∂⊂∩∞Xh ⊂L**5"¬X¬3j6Q#"A~⊂πh_k∀∃↓Q@∧fG∃αEI A,0
λJRS@(↓+ ⊗>DJP (!Q c]X¬3j6P(∃*YβiP∩ UP∨&I"Aπ∪1∪'(AU+⊂≡Mα_⊂hPβ"C!*jgiL X
HLRP∀AQ(X@" ¬⊂KZαJJDλ4TP+∀⊂p3 Hαb&∩ebP#∀h¬BR
λ∧∪≠∨Y⊂∃ααJBddα4p*!α@
MLπ ~⊗JαI1λ¬∃¬⊃ ¬∧fSβP
∩↓)(@2L
BεIλh ⊂L**5"¬X¬3j6T#"AQU0
gTY_
HLRP∀AQ(X@" ¬⊂KZαJJD
u0TDλp3∪λ_λ∪∩)8(⊃TjXTC"A→∀TVD
K∃5)@c'εE∃h¬OS2Q2∪≠=(
∃αα@εFβ"B*I⊂π'5⊗_X_∧¬
PUS@⊂A@Y++∨ ~∀&$b0∀*묬 Pp3 E εE∧T*id4⊗-`∃ULπ≥-→t~∀&≤
& 2λ¬ _4⊂4F⊃ ¬∧h∃i`λ P,L@∪'¬$⊂∀!~¬-≤αλ⊃K
λε**α]i`∃BR ADDRλ
∃π%→∪' π LU8∧λ
Jλε$f∩ij∧]R`∧IST @
∨%Q+⊂~ε$*2eαα8∃ (αiP)βE PUSH@∀A@Yβ%∂
⊃⊗~∀%∃%'"αV@,z6$(hαB2J:λ⊂ ,P@ 2
∩≤4!~∧`:λ⊃V
¬∃∃α'h)"iQi+"P∃⊂#'iλ*jga∩cFE∧PβAINTT →∪¬!β$b4⊂λ&B⎇↓αAII∃≤
!Q LU8∧@~Zαga%QF@
MLπ ~⊗JαQ1
JBHKαpQ*@`i"PH& ∂OSE S@+ $A!∨%_
R⊗α!P@!2TTjD∃0
gV$jεEβE*`∃OS1A: HLRZ TT _QPR∩`-RQ)αε∃∩εeα≤
22⊗ ∧∧dL8T∧e≥X* hPα33j@"fP*∃⊗ ISAR~∀%≠⊂≡Z,IαQI_∃∧
&⊃∪@9⊂24D
pπP$SαTE@%I+!)&↓(∞>dzB¬≤8∧Q*@P*`∪
λ∧∪D~!αQe*V@%8¬C!∧e)hλ)⊗("∪ i#DNβSAVES TT
λ∧∪∃'HA++∨ ↔∞∩w¬→'=¬~ε@4X∧h
Jλε⊂ Sα@λA<
0∃%4 d`:α$$g⊃P ∂NP@ →&4⊂λ&2$⊃αI2]"RN∩Li12R%~εI"αJBMhβ"B)Yβk"P∃*⊂4@~∀&$b0∀rλ¬∃¬F,λλ_βE PUSH @ 1+ ⊗>@h ⊂MIId*¬J@¬ Pp3 E εE∧T*id4⊗-`∃ULπ⊂~Zeh4(→Yu )R(∀EE∀J#!∧a`fSα R,T
∪∃I' ⊃ααZT`;∃#!∧h ∃SH F@1@Y⊂4PJBVNDQαAJ8∃ +c"A→αgk"RP"⊗→βE JRSPλA-*0≤+!Q hPβ"@4¬"4PJBVN@εA2~β
HKαr1D 3H
J*q0
3dπDE, MAKE
∪⊃I→~A
1 X@"αH$%@4
Uα∧→`-P3λλjP31$¬∀q1$λαk fβE MOT¬∩AXQαR$∩vA
=$A
∨I≠β(AQ⊃⊗J,z→$Q!∀E∃+$∧%
β!∧h ∃SHJ @ 11π>u_$%@9ZU≥λ⊂si@)P ∃P @
β↔∀Aβ%∞β)≡AYβ⊂⊂4PJBVN@εA2∧hP&"JdiαNAbBA$Q!∃¬-9
αe4HU (3⊃TH→αb`≥
λ∧∪≠∨Y∩Aααa"
⊃Q%-3tmJ↔@∧h*Td⊂ ⊂,TT ;PUSHHπA
U_
∞RLz0⊂hαB3)@hεEI TT →∪¬!!2Hh ⊂L**5"∧α3∩*:αεEεBαUUOS110∀∪5_∞Z⊗hεQ2VαYt4pα".e%JH⊃J:αa)0βALLED @→∪-
A2≥*∃⊂β"B)Yβk"P∃⊗*`∃TSP~∀!∃%'"αV@-4∧,λ⊃ ¬εE∞β;; EL¬ π∨⊃
A7a!$Azα~NV∃∩d4 C]X¬3j6h⊂
jSβS4AUP∨`dA+,zMα⊗αYt-↓∀λ∃*Yβb`_4 UUOS10 @+U&baα4⊂λ4!Q%-3tlg∧f"↓λ**⊗-L≠X∀00, _hβαt%@5%"R∧h[¬¬∩λ8∀ddX@dL8T¬≥0TC!*jgiM X
SLπ∃≤AQ(Y+,z~-!Q%-3q6ε'@∧f@OT¬∩AQ(Xb∩ p
))Rα~-λ∧∀Dλp3∪λ↓b⊂&$RbP#)Ua)εEαb(!5*⊂[H`
AQβ↓11Q¬h4(~ID@x(⊂ ⊗
_⊂⊂⊂00
∃+U_∞MhM~.&BλεRQF@↓⊃,¬U∃
⊂ ∞ONAP ∨≠
≤5Y`83∪⊃(D⊂ε$eQP ∪@+ $⊂∀*-*0≤-α∀∞A→⊂ε)-λ**⊗∀∃∀@ :*** EXPRA
β⊂∩2,!α2→0R¬≥X* hPα3⊃λ⊂*⊗-L≠X⊂∀00, _hβαt4*ZT`84∧~: H∨-∀A$Xhβ$%@8→Db∧βqH
E∃∃⊗∀⊂+df∪⊂!"P∪'i`∀!
∪)10
9ααJBbk⊃⊃∪@93P bT*⊂"l∀)⊂' SbP$cλ+`iP⊃h( ∩
λ∧∪⊃∀aαRQe⊂4λ~ID@iH⊂ ⊗X_⊗Bα P@+M⊂A YU+⊂≡ hP& ,zib¬"β∃β!∧iedT ¬ @,9%' h ⊂Mλ¬4i H⊂λ⊗∃h¬OB∞@ε~(M"2:∃¬⊃1"h8∀dbα#"A~∃0 dλ(⊂[UUH∂≥4bt4!→%≥αλ∧K
Zαgl4@∧~(MαVN∧
αe%A⊃β@:∃0 dλ εUNCTION
λ∧∪∃+5!∃ααEDL
λ∧∪⊃ ¬∧fSβVEMT,U@+Q' _4PB"J2RαI2VαZE≥C"B)Yβk"P⊂T∧1(R)
∀∪)' A"bB$IiTXhαB4
Zp∧⊂( @ ;PUSHARGUMEH
(~(∪β∨¬)⊂ αIbq5L4PJ6 =hT¬"eX¬5
:βεE∧R))`∀ IAP@!12∩%\
BBK∀∧5,d
D`4⊂4Qj1 ¬εE∃h¬OS10:∪~=(
⊗5¬!2VV|20⊂KαjJE$⊃P jPαR CALLEDLIKE SP¬$4⊂λ&*≥↓αRQd
J=λI@HUX¬4f⊗⊂.B(→βe'5⊗*`∃OF@$~(∪!>ααA2∧hP& ,zj4J∧EF#ββ↓Q LLz)R¬"β
_βE M∞T¬
A"bV@,xi`hPα2TJ:α⊂ ∃ULπ'¬$4⊂λ4 c]X¬3ε)H⊂
jSβS5 UUH∂&, αVV⎇→V ααZT`:m0c!ε@
UUL2N 4%'↔&∧ αRQc!@$↔0
E%H∪Si@ j'fRac ∃N CALLED LIKE LSUBR
UP∨&Tpλ&"e∩`∩¬J@¬
λ∧DDNβ*** EXP@$↓∞ε2d*⊃αI→4*∧β∀u()
MH∂-
↓(Y+-"N@0Q!∀831q$
λε,!KdεACS
∪∃I' ⊃ααZT`:m0#!∧e)hλ)⊗("∪ i#FBα MOVL¬&A h ⊂L**5"¬X¬3h[
β"AQU0
gTX¬A: PUSHFXP,T 0↔ ¬≠⊂→α≤
N∃ααy∧-∀T
t*∧β54jAα@
PUS@⊂A→1 @22rJN⊗αA⊂KZλ∧s _⊃(∀jJ1QH
Zλ⊂
$⊃P "&∧¬∀∪5_∞@4Y∀¬∩bα⊂λ∀BDX DLπ∪≥∞β!∩2tj-≡M∧
Mα↑*α≡ 8Q!∀U≥∧
Bduλ¬4i¬,k3H_tj`_B]i'gSP#'iλ f&⊂⊂aiP!∃h∧ A0A!2-→↓L4PJN.~λRαDhε∀¬⊃ ¬∧e∀h⊂ ∀1_
BVα9αk ∧D]Ql*) H)`OTS FOR *RSETλ
(Lj0≥Q2(λEλ∧ ⊂)
∪≠=(
*λeBk
λk¬αHβ"U*YβiP∃B8∧∪≠∨Y
AαX!$R$KZN :λIr∧ID¬$DT
∧$dβS2dzc"B)*tλ∃¬J⊃∪∪IYc"B)Yβk"fH V∀"
F@
SUBI R,1~∀%' ⊗
Jα⊃1DhP&ε>Taα2JZT`:m0C!∧d ∩L TT,40 ∩wQ(A"
→α
⊗,qαNε4*⊃↓T ∧
~λi`hPα33j@"fP*∃⊗⊂λD$∩∩`.α8∃ (αP#*SαCTIOL∧A¬1_∞@:λ~$=~λiu∩∧α04
⊗#"A~p¬dh⊃P⊂λFXP)∩∩mλA'⊃=+⊂∩⊃¬α0≤Lh¬~Ih⊂d⊃i"P PβS ARA SAVED
SP¬∩↓λXj∩$p∞~>⊂∧αU∃8ZBb∧β0
iU⊂)`k⊃P*$"H a`∪ UH
HA)"*α~Jεl)∧4*(U∧05→ a`∪-1(λ∪≠=(
⊗5∧⊃- 5*λ4`*λε↔)∀!`∞@(5_
ε∞α5∧"Hα.th~β"P S&⊂&`T%bb ACS BUPλAα4⊂λ&6⎇2⊗%ααJBe∪YP* @∧D]T)'k$Q ¬ FOR RESTORING THEM
∀∪5_∞@4YPλ
Jλε⊗@1(@λ@$HI`≤8∧h
@bi"P∀`k"bλ*g""T⊗⊂''U⊂ ∂VER, @)!
~(Lj0≥Q(∃
E
α!↔h⊃TH→αbP$Sα CASE @∨↓β⊂→α5∩⊗@%X∧SAQ@∧fgUαE F,UP∨⊂$∩w6
J∀(∪Q(Xλ⊂ "U*i'0b")"TiP ∃ND@$~(∪ ∩2t)αRQc AA@HI`~¬IλR∧
(z2αDα1H @'j⊗⊂∃ibP H!h'h∩∀@
MH∂-$A→2≥α0≥∧αC"A→αgk"SP#⊗⊗SαAC@&4bQλR4⊂λ&B⎇↓α5α∀λaαE∧e∃d¬PE F,U@+=&`⊗HI`≤l≠_$*∧β3tHTλ¬))Qh∧ HAIR0≡~(∪!+≤Aα5α∀¬λβ, ⊂) 0↔ U!→&≤
R* jTl∀X∧H @c⊂ i⊃iP'gλ εP⊃ 4⊂λ&6⎇2⊗%ααJBc"α⊃∀BDXTT P@∨∪9)&A$yαRλT∧4MhTαU∃8ZB¬≤β∪u
1 ¬∧fSβP
~β)(@1hε∩DV⊂λ∀BDXPLLπ A∧z& 5HZ"∧Lh¬∪d
⊃∪λ
9α'jεBα P@+M⊃∀AαbV@,xjT`Hα.thZα⊂ ∃P AP@!13
%β5
@@"α u¬~λk¬αHβ"B* tλ⊃K
λε**βE HRRZS (TT ∩∩$p∞~2-~!α∞α u∧R¬Pλ _4⊂λ&⊗P+df∪⊂!`∩EAP
A=_
∀Q!∀U∃8¬⊂∩`h ⊂LY
∀~)+ ⊗>≠*≠Pα4∪j∧⊃P(*∧D]SαOW FLπ$A$B∃α_~¬∧e⊃Q LU*:B∧L~
∧eHα".jZαgc*S⊂+`G∃)P ∀WLεA)⊃%_
≡M∧z0∩∧hε∀¬D∃r3 D∀∪t∧ pπ"FBαβ≥`i#PβH@⊗A¬%≡H92∧
(x4[
λ~$<≤αl@_~Qprf∧⊂4QheZ⊂ T πCKLAβ%∂
⊗`∃α
∩≡B∩bαεJ≡β↓αεJ=↓Eαα$bεJ≥¬αε⊗J⊂∧¬∧∪⊂ →βE
λ¬β%∂
⊃⊗t∪
β⊂⊗≡*αQ2b~j0∀8∧b'a`λECK @≥+5
⊗I∧z→αε∀:MαNαZ¬∧dα11↓Q@∧e)∀h∧ @!¬%$∩$p∞IαD
Mαε$z5αBα)e∧4U⊗$ ⊂∧ijλ( ∂INT@$~)β%∂→
⊗t&≤Z&B∃¬10∃∃8Z@hPα2TJ:α⊂ i⊃a`2
λ¬β%∂
⊗b`(Mα0≥αλ∧
Jα".hitH∀jλαbb, @ ≡AQ⊃β&AIβ ∩"-⊃αRλ→`hPα2TJ:α⊂⊂⊃(TT ∩∩$p∞ε>~↓"A∀εB>BRαA04Ph ∀
(x4[∪αB4i9βj*4⊗)`→ ;R HAS @'e≠¬∨_↓⊂∞Iαα8∃⊂@ ¬∧e∀)j T πCKT∩∩`.m*N@"λ(R∧
λ∧p*!α@
ARGC@⊗`h∪⊃2∃QαI1E⊃$4!→∧e∃αH∀EF*⊂ )
∪∃U≠!
AHYβ%∂
⊗b4PJ2$$
E"e4∧ _LXX⊂⊂,,RP~~(∪∃+≠A_ αR ¬D
∀x93_hαP4Hxp¬Z: H ∧β)(@2Xεββ⊗εαbe+QP@!33uI@$P ∀T,-1(TT)~∀%∞ε6pεQ2R h ⊂L→z2αE¬⊃P@!4∪t $∀β!∧¬
ARGC@⊗fh∪⊂⊗>4r%αR ¬Bk
λ¬∃¬⊃ ¬∧aPd¬LE T,TT
λ∧∪!∨A∀A X4⊂λ&2$⊃αRQeYAAEλεβαbβ∀W!Q@∧a`Rdε @)PXnnn$∩vnnβ9α&M∧*~4X:DMQ3⊗$ 3QR)@$j,FBα JRST POPJ1~∀%≠⊂≡ZtIαRQbiE"R ¬⊂hPα0p)Yα⊂ ∀,TT
λAH∂&@! R4PJB>BRαA04Ph ∀
(x4[,¬∧f⊃!⊂ ∩,Xπ))'⊃∪⊂∃1e"RNε⊂¬¬∩Mβ#"A_3rP$
K⊂4Hxp¬ZεBα
∀~)β%∂!⊃_t&d"∩¬EK3∪;∧¬ε¬λε~0] 0↔βI∂&@@hπb¬∧IDααl9jCkrλ¬β!∧fgk∪αS @(4⊂
εJ=↓Ah→
$eRλ∧K
AαE i⊃h_]∧R*f`⊂E R,(TT)~∀%!+'⊂β YαQHR~(L
0≤∀)`
∩bβK _CE JRSPλ@QQ(R4Ph ∃∧IH∃∀nB0h→αcbP∃⊗,!VSαAC@&4⊂
Bε-∩Ih→HU∃∩λYU≠a↔4l@tQ(
I⊂3@⊗T⊂4Qj1 ¬∧e∀)j⊂↔
XUg PβS ⊃(αH$*J-α⊗εQ∧rε∞MeZ≤|βPh
*u∀@⊗↔≤∧A-DW⊂~ε≥→5 5*λ4`*∂K∞A~⊂πh⊂∀⊗ V@1+H
βπLZP~J∧~0∃ Q+PhUλID∪αB2J*uλ
% εE∧SdπVEI @λY#M+¬%π¬→_∩w
_∞ ,T ∧-∀T ∀2¬8¬0J(p3∪∧¬∀+UE@∀P#gU⊂_⊂ T πS
S@∨∃∧A(@2<rε $z8PhPc]8¬∀JIu0
⊂⊃i(⊂⊂E @% AA∃↓B¬α-∩∃∧β∪pdλαi≠h∪'aP"T(_P"T(~P"T(~`@0i(⊂↔A @% \A⊗Jβα⊃α⊗α*β∧~λZ%β~λZ%β"λZ%β2λZ%β4∀λT`(⊃P
gβE
λ¬')%Q_∞VQPh ⊂M8¬0I∀∃∀jJU↔k&6b".hi⊂1`→@'`∞-ZERO IF S@)I(nAπ¬→_~∀!1π⊂β(Y+-"N@0Q!∃¬-9
αeX¬3i↓ ∧]h∃i`λ REP +∀qαε∩%⊃α4z λλi3P3∧λαl$jβE PUSH @ 1α~(MαVN $¬αe8~eC(β"B*
4r⊂⊃,(⊗*Uh∧S@,4⊂λ&BαZ4B∧hε∀¬Fβ"A~∃0 dλ(⊂AR1
∀∪A+'!¬↓2εI∀λ4(→HD$⊃⊗f&lλ
_⊗⊂(FXP ∪:$p∞ε
βV∪ 4⊂εb`SαS @+M
A6≤:~&2-→0⊂hαB0h→3H⊃¬F-c"A∀⊂¬))U⊂"`∩P0@λ~∀%'↔&∧qαεIλ¬BD
""'g$f⊂∪b`g)H*ibP⊃ ¬FAULT @= TT,'↑λ
(Jα*JNα@-∃∧¬β!"i(~Nα ADDI TT0h`~∃∃% kαβP&BVα9∧R¬¬J5%∃K→phPα2TJ:α⊂"i∀_@
λ¬⊗Jβ:¬h→Yu *p∧P"~~_≠L_εE∧R& MD,E@% !→>~B~bAHh ∀-*εs@!23⊃λ⊂**,ERBPLLπε@"5BA∧↔:5%∀→hr∧∃α5⊃$
⊂πdg∃ ¬R IS S@)=%⊗⊃∧z0∩∧hε∀↓Q@∧e*Sh"P*∃⊗"`∩P4∧~(MαVN $¬αe8¬∀JK3c"A→TTu∧λαi(≠CE
λ¬% Aλt&≤Z&Bdλ∃∪
JiU≤<i→D-_Q!∀U∃8¬_ZTλ CE JRSPλAI a
~(~∃∃↓B
hM~.&B*αεIEe"εB↑∃ 4(→
%∃Rλ~#
@∃Su*Hβ$f"TF@
JUH!≤ββ$bY∃% a4⊂λ&N\JB*λ¬∃→βc#εBα JRST E@%@h
∧Q!∀U∃8¬_ZTλλ CE
ERP3 4%∪⊂∩∩⊂εRQHZ$*⊂ε'aJ εX@ $∩w#+=)∃αλε≤D~!P@!2TTjD⊃0 (
F@
ERP (βP&&2$⊃αRQd*J
Bdz~Dhε∀¬⊃,¬agSαTROLLIF@2↓αAπ⊃¬$⊂∀(L
∩$∀
E"cF↓P@!5∀Pd
∃&εβ"B(`dbP∃*⊂↑M
∩A)%'(A∃% kα4⊂λ&BαZ4DRλ∧
:α)*,Sβ
∀∪5_∞Z⊗JαRQKi hPα2TJ:α⊂"i∀~`FEβA"`∩P4∧t&,r2>∞\H$%@8It`((#"HZTλ Nα POP P →βHeα4PJB>A¬↓2εIλh ⊂M8¬0Dλβ, ⊂,R70+H∩w
→U'⊂A¬e)∃αα
E∩∧→hB¬≥J*Czλ⊂ kRh∧CH
λ∧∪!∨@A @2λH%nJ-~R>J*α∧4!→%∃≥D
%≥⊗λ
DNβRE@'Q_∞J∃∧rV ,_:2∧h@
∧⎇ !P@! ¬"g⊃ εUNtzP→5α⊃∩`*q1(
:v4uλYαD]g∪β @≠∨I
A
,r≥$α3sJ4⊂Q6)@dεD HERE
;@→∪M A2M~AE]∧b&"ε~α2&NαεC_hαC"J:αa**∪∧dg$U$`f⊂∀h∧ARTUP COD@
~∀4⊂ mmβ0`)tS )D∧¬c@4h∧ARTUP COD@
\@Lπ≤A
%%'(AI+⊂→1¬""*λ→Dd|4
∧D
8T∧9pεbiH$"`∩E8ε~)Xπ3@4∃∩⊃*(α`c*⊃i⊗⊂&∩ih#gH!`∂MES @⊃I
A ∪Iπ)→dXλ4'0∞gP#bP⊃'P''U⊂ λAVE DHE USE LπA$B∃αα$bMαVu"&"λ¬∩λT⊂p3 D∃∪hλZR3R¬@εE≥Nβ; @/∀A∩=∧r0≥λ∩⊂*@"P ∀HE U@'∀A∨A
_∞:NLr≥αxd∧@T∧P)SβRT UL¬)&bαR"∃∧~ε $D
D`4⊃psJ*λπεEβE&$iT≥ MOT¬≥∩AQ(Xb∩$p∞ε>∀R0∩∧βs@∃V(∪⊃(~β"`∪ XεbXXA:A>pε¬α8⊂&↓αE∧`SβBJNTT _\αYD$↔0λλ*j⊂-L,¬ ON A KL @∨$αα.$Q!∀l@uQ3$
∃∩h⊗,⊂λεBα;CLEAR AND DISABLE IH
)I%+! εNfNαHDhhαR1I@⊂ TS,[
λPAON
λ∧∩]≥*N⊗Q¬Y0∃≥ ~%~β∀F@X.FEαTεS@+M ⊃αβ0J91Pλ$T⊗⊂R\a0∀4PI ∃≤X∧q*D⊗kTIh*$gSα, →)Q:~(M"2=ααJBd⎇λ¬∩)@*⊂OPTOPC 8π≥:jN@%→HR∧Lh¬⊃**U0λ*∀P g"λ''P(⊂β SCREP∂β∂∀~∀%u~VN⊗α@
@5Tst
I3s@⊗**.FBα TLNL∧A)(αb0≥¬H*$XHα.r(d⊂πjiλ)j`⊂ERIOR↓∞ $→→U~¬It∧DhID*∧*(T]5AP@!(∩TJ:α⊂&$Th_[DB]P⊂ Sα@λA∪_A∪(A
→β∪≠LA)=∧Bε@4T DM≥∧z2¬≥→X$`9α⊂ ∀A@¬→
~(∩P~
∀*ε-↓α⊂EKhπ↔)∀h∧P,,TT] ; VALREPλAαααN@%)→d:¬It∧850 bH
S⊂*⊗h"gjU⊂
ODE
∀∪M↔∪!∂∀A)(∩$p
αRzα∀(⊂ VQl(⊂*⊗h"gjU⊂⊂λAND ⊂⊗J↓)≡A¬∀A'#+=0
∃$hP%↓h¬P)J1(⊗h~pr6D¬enR(d⊂π⊂≥∀lf`∀YP P%
λ∧6@!p¬e$X∧↔↓QKKU
λαi.
Lh@
.,¬)β≠A9 J~(6R`*5↓↓>thR2&Nαε∪ 7@εE.BDXEND @∨↓∪
≤A%)&~∀4⊂
&~pε⊃EASaE -8→∀c@Kα2J:λ⊂
,D10@'∃(⊂∀& ∧Dα2Tj∧∀K∃ @,)bjαDP⊂⊂λ≥b"aRb"P+R ad3βPS@3L@ZA$*0∀-αλ∪j$∃∪t
6Lβ"A⊃ ∧DPλ⊂⊂⊂≠AH
λA→∪0A-↓αBε<)αε∞≤*NN_)∀dMK~0hT_ib¬-8YD-≥5'DM∀p∞"_∨⊗⊂∩)h⊂*)`λAREP 7
_∞ 59_D-∩λ∧rλ~R3Qd
⊂1q*4∃r5 ∧⊂πj$⊃i⊂%'PαS
λ∧∪!∪=_λ%@8Yd∀HT∧L@U⊃4J*4⊂
)CE
;R@'PA∩←≡↓' ≡~H4D4c"A~q0
-∪P* h∃βRT 8π ⊗↑∀JR*λiD:¬e∩Hβ"B*85⊗S$
∃⊗3hhβ ;TTY OUP !-!α4H_rαEh¬`∀CE$c'λ%'a(Rdπ →64⊂
&Q I0∀∃∃⊗!⊃ ∧]iPlP ∀HIS JO@∧A/β9)&A$B∃αR%I1αJ
""-!Q$M α( (β!f∧BDX THAN LEP )∪9∞Aβ≤αα& 4hZ$L@tH∩λ~β"P$U∧¬∃∪PJ∪/βI_ αnα(U%∀_Zd*¬JK∩∧TSs$ 3QQ*)3t@∨WF@
] ;END OF IFN JO@¬#∪≡4⊂λ (':$-≤X¬_jQ13 ~u∀h
Ih⊃Sj(q(⊂$λpε"`Sα GAR@¬β∂
↓∞>IHT:⊂∧ggβE)"h⊃`j⊂'⊃ ε, SEP 5~β
~MX¬e∃∧9j@K]8ZB∧TQ1)I4p
)H* ∂ NIHλ~∃%
≤A⊃9↔⊂∩>8¬4$∀iH∀:\8ε⊃IH1kλ Yβk ∪I A,(SEP 4R4⊂
&~pε":.dz≥ %1Q M∀X∧⊃(~α⊂$'∩d∧OG,bP∩lhP$&N\JB9αDrN≡I0
e@)(!g∃∧@ ;HAC@⊗AQ_
αε4z&⊃α≥∩⊗εRLr≤4!⊃∩∧lzhTj∧∃Hd4BαkTJλpπ ∀ ; @+9_
,XHT"∧α∃3I4∀q1iX3P
)CE ] ;END OF REPEAT H@≥↔1⊂∞≥4∧#!,¬ ;EL¬λA∨_A∪
≤β⊃≥↔→=∞~*$⊃⊂&N\JB9α$∩N≡I1⊂K\I~E$zλiu∩¬xY∃∀λ∪U)X4R0d
⊗4⊃*1 ¬"↓ ∧P&gUαEM A,@
λ$∩w)⊃∀A'%Qα
& ∧∧L@H⊂
$⊃P# ∩EEH ∪'P~∃πB &N9~∧`$⊂p)Qd∧@⊗∩$p
αα|J0∃$X∧H X03Dd 5λ∩*4⊂πe`VP*'FBαCX$ MOVEM A,FFC ; HAVE NO FR@
A
⊂∩2~αεMαdz0∀:λ~0hTK ↓~p¬dh∪α DXSGH ⊗∩$p
αit∧`9Q(∃
)10 P∃'P!gSαS ONE
∃λ`H∩A≠=(
⊗5∧ 24hεC!∧ibj⊗αM GCTIM λ8π%≤*Qα≡~αR&6*↓"N→h4*∧*Ye$LXT¬¬∀x(∀)⊗(⊃i@j⊂ ∩D¬'(}$~∀&≤*Rj5∧
2<8a⊂K](Z4-λ⊂3 Iph⊃IH1`$ p¬`lH* ∂ G@εA:⎇84(Q!∀U≥∧
Be$β∃TJ:b".j(αibjλ+ i$SβUS "TOP LEP
_↓(
εJL
∀dX∧hAQ@∧e)T⊂ V"T$g$lαDXSET U@ P@ →&0A%≥"0≥∀T U,@Qq1∧λα j K⊂"g PαLE IL¬)∃∩VBR_h ⊂hαNr)@$j$`S$h
E D@
βU→(A %%⊗∞αI`*+(∪P)X4c"D↓2Tt∧
λε((∪αUSNSEPλ~∀4⊂ nR∃IαRt u∧3H∃ λαP ∀D¬%≠∪≥¬_Aβ&↓β⊂→αJz0~∧HZdL≤QQ M¬X∧r $∀∪j U∃⊗!Q@∧P%⊃!`
0↔!∃%~>∀iα&:M"&ε1∧:εJ
λλt*∧9yDd0p
$SβN (BUPλA =_ ≡⊃∧∩0≥$α⊃4D
⊂πP!SβMPACT ARRAYS)
λ∧∪≠∨Y'∩A"aEEEλε∪λhαB4
Zp∧%⊂∀⊗#ag∀*εE∧↓PUSHJ P →+⊃∪%'P~∧`.Lr&@$_⊃DM∀Tλ5-∃(Ye"¬Yi∃ @"Nr)$j$`S$h
E P¬β%∪=+&A¬%0
εJ⊂)αRz¬Td5Q3∧
P4Rλ_Q⊃4aP@∧fG∃αEI T,IN@$X @hαB3)@k"f@5⊗+ ∀TSR~∀%≠⊂≡Z,Iα¬2λ¬`HJαr3I~α$`Fλ+ f*QP ∂F * @∪&T⊂∀(Lj0≥4YP
@∃KC!∧fgk⊃P V+⊃i)&$Th∧ ;SET UP FOR @-β0O∪≥∞β⊗JJdJN@ Q!∧l@uQ3$λ+∃R*~αgj$QdεT
S@↔∪A∂
Aβ→∪∩J h ⊂J *%≥λ∪∀j
Q0
εBαL@∪⊂¬
h~8U$|β(⊂(i3∀Q↓⊃,¬d Ri( HAC @)8A%β⊂XA)⊂∀A~&∃~Qα∩Lj∀4!→T`:Q2(λ∃α*)*U$∧D]H i'jSαD _A→%∨5¬""*¬iDM≥¬`
Di~BJ∧i→D(hαB3)@k"f@0T∧TAPR@λ∩$p
"N-"Eαzα∀¬"Hβ"B *Tp
⊂∩ abg∃∧¬∀~)∪
≤A%)&@2Xh ⊂hαS∩*:
nA~q0
-βE SIXBIT↓1'π$
RV@AQ%∀4⊃0*D
+λε&λ⊗**∧D∞βIGNOR@
A-~⊗ $X∧tdλβ`i!⊂cbFEαX∧0 $@``@1e"P$↔9T≤α∩3HT⊂π fQF@
]↓∩w∃_
⊃α|1α&~pε&@%1Q h∪⊗∧B¬<→:E%KαH∩J*u⊂∀∃∀@
λ∧~(1nBα e-≤βP bU⊂*b$T)b`∀ UDRS5 UDRS4 UDRS1 @+⊃%&cαβ+ %&E αV%∩MIααXDM∃4¬H
X⊂∧i)Mβ EDIRS8 UDRS 1∧A+ ∪I'0A$rbN⊗αD¬$uα∀uε∧∃∪@,∀h∧2TL¬1'#!αRk∀jF(⊃_L)b`∀
λ∧~*≥*∃%ID¬¬∧βU4i@)b`∀ UD@∪%M ⊃ααIeE≤X¬λλε,⊂ bU⊂εEεBα
∃!A_
VNu~⊗@#$↓P@)1S@_ε,⊗aPTp ∩Bcb`∀PPN @)PX∩%\2 ≥∩λ¬∪J
h,hfjV⊂∃ibP#Qh∧P@!8∩∃'αα(%α(h4`Hα".d¬⊃q5
4⊂⊂λ'λ'c⊂!Ui)"g∃⊂
OB)
∃'∧H∪'Q0 αR ¬@HKαqSj$∀p2)Eλ⊂bλ(!"c⊃i⊂")Rh('εBαSA$ DS@↔!A_ αR ¬@HKαh
λ~h⊂ bU⊂!,P∃$"P S$`iP⊂βO@≠≠¬_
⊃⊃Q L@3uQ)T⊃∃⊗∃i`∞
H∨-∃~A (αbRRfL1I.→uαB8Q!∀l@uQ3$
∃∃
K3qLE8KPλ(∪α
∃:$∩w≥⊂A∨A%
≤Aλβ @()_d`$⊂∧j)K-FE∧↓MH∂-
↓)(@2M*N 0Q!∧l@uQ3$
∃∃
K21LE8KP g∪F@
MLπ-~β)(@2%"f <`∧JheTsS!QTεDD∞βENDHπA∪→⊂ α~J0hPα2TJ:α⊂∀*
F@
α0↔∪9∪ ∩&λb&J∃¬""* h∀l* xb¬$α⊃( X0r∩)@"P$gλ* λE F@β)U%⊗M∧b&NPhQ`≤Li~DLI≠$*αα∀uλ~α*`∪ UD@∪$αH4(Q*T$M*8U#Pβ"R(iH∩5
5α-FEαTεCALL @→∪M hf∩$p∞≡⊗αJ2∧t→PR∧|d ∃%~¬λ∀J@λ∪0eD⊂εf⊗λ ∧M) I@A% 4(∀¬e (3∃1!Q@∧ibU-⊂ @, ∩w
_∞:Z-∩QαRzαε@$yY∀4∀pfPαO@_~(∪⊃2∃RMαR h ∩α∧ε&JA¬A12nI261dj~@⊃∪7!Q@∧a`Rdε @)PXQ'∪a
&Q¬bb`"α#"A∀⊂εgk⊃dP @,Q!P≥
TERMIN λ
(M~.&Bp∧∧λhαB(¬@+ f*QF@
HRL@~A∧Y'&$*~P$KZN⊗Q¬*A↓λ∧uλ~α*`∪ F@β)U%⊗MJα~>I¬~&@$T d@1#"KQ ∧]bSαD OF IFNIP &~(~∀&lzP∀*λ¬∃¬HT⊂ dαDXIF BPEND SOMEH@∨.4⊂λ&∞j≡∃ααJBd¬h*∧,@Qα.d 4h∪λ~<MACLISP =M∪ ∩∃u"bRrhh ⊂Lλ∧TI@dP⊂⊃,Xπβ'π%0 αrdJNAjeh4(~:D$5B"!↔p∧iP∃$"`∩E A LISP: DEP
∪π∀}~(JαN.~λ∩β∩F1P@!2⊂ )∪βI $10∞εN≤J`∩¬II∃≥β*9∃$+P
,∃,∧]
UDRS58∧∪⊃∀b`∀J∧+¬λβe∩iR*⊂GJ%H∂→λαH4(_rDTSB#!∧P%)∀h∧ @+⊃%&d~(∪⊂⊗>4)↓MF⊃P@!33uHTλK⊗gF wlf@∨∃gc i".DB]`iaRdP!,U ¬S
H∂!9⊂∀(Jα*JNαD¬,%*6∀λHα".j@df&⊂∩ k"P∀dπMETH@∪≥∞β∪→α!P@!33uI@$P ∀,8LPNBUF- "xU¬ &%~P≤ Q!∧l@uQ(
Jλε('⊂αP
UDRS (h∪¬∪≤4⊂λ&*,jB*∧K
X∀Tl!⊃ ∧]d⊂iP⊂⊂2`ε $↓ ≡"⊗pε*V6α ∀`(c"B _∀⊂@⊗%∃∃β!∧`ge∪⊂*⊗*Q))P∀
λ∧∪⊃β1)_4U*∩JMα↔ L@3uQ$ε+c!∧af'Tc
λ BFCL
α∪∃I' ⊃ααXE∃~_!P@*1∀Tf_(
∧fSβVE 1,3
λ¬%→*4p4(∀ $4≤ββ"JX∀Tl(≥ M∂T¬≥∩APY¬ &%~P≤ Q!∧L%λ ∩eJA⊂K]λ_D"∧βu5∧
p∧j$λ_∪iFBα AOJL T,.-1∩~(∪!+≤B)αAeα0∀∀h~@HPα2∧II(⊂ ⊗∀dj"c∃∧¬
UDRS2: SETZB 1,2
λ∧∪'Q0 ↓M`h ⊂LYzd,Jλ⊂
_α$ihβE M∞T¬∩AλY#!∧p4(~
U≤DαH∀¬JQ34
)tβ"A→⊂TS@RP⊂F-Piadmλ↔`ISP:/]
λ∧∪'$"ε@0⊃⊃β@94h∃ λαi"P⊂P ISP: D∧P¬∪π
|∩∀%∧RJN↓@λ∃(I4Tv↓⊂¬ M↓8
P∀,⊂ε∩btIb4T⊂α".I_H⊂ gK⊂#bjλ* λE LOGIBA@λA%∩ε 59H∃$LyaP@!2⊂ )∩βI $10∞εN≤J`∩αβs∩
:λπnFBα MOVA &YA⊂
@hP&$iZ5 @"B( *Tp
⊂
ε#2
JRST UDIRS0~∀
6 =hY∩β
AaD@*p `→
λ∧∪⊃∃∩ ≤J∧K`iadVα ∨→!# @>hh ⊂LYzd
α∧k∀ @!(εEα`∧NMSTλ
∀∩↓∃%'"αV∩~*5@"U1 ~Th≥αd¬OVE @λY!9
@4PB6 =hT∧2e4¬~≠X⊂⊂,,T]
SE@)hA(@0hP& ,zidJ∧
!⊃ ∧]h∩a` UP ASCII FOR REAL DEVICE IL∧A(~)+ &∃→P≠Pα23λHH⊂
* ∧
JUM@!∀A)(YU ∪%'`~∧&≤
& 2λ¬∃¬DL¬εEαP
RST UDIRS8
IDPB TT,F
∪β9∃_A⊂¬E,$α4Tf@F@
JRST UDIRSX
UDIRS8 4%∪∩∩⊂εRQHAP@!0p2(T∃∃⊗λα<
λ JRST UDIRSX
λMH∂-
↓$Y!≥ ∩%]~"V~4b∃α∩⎇:0∩¬IλRα∪β∪ (f SP>" @!¬%(~∃U %&@D `⊂L→HD$∃∃⊗⊃∧¬∀∪)+⊂⊗B*αRQJXDM∃8εβ!∧a`dSα TT0@ xQ!∩∧U*:Bαr4∧c!∧P⊂$Q(!⊂*∃⊗)εEαP⊂%)∀h∧ @+⊃%&qα4⊂λ&BαZ4B∧hε∀¬Jβ"B)Yβk'$H*⊂5
λ∧∪'Q0 αR ¬@hPα21
λH⊂
*) ;FILL Lπ ⊗Q¬:&@$αλλλ∀∃stHD⊂πc⊂∪αULLS
∪β=∃→
APX\Z@λh ⊂Mλ¬4i H⊂λ⊗∀'!# U∧¬∀∪A+'"RαA2h9t`*c"B*
4r⊂∀⊗ FEαh ∂P FXP,PL¬¬+4⊂λ&N-"`∀jλ∧∪H*c∃@1
∪!U'⊃)¬↓2Bh(d
β"B* tλ∀¬H@εE∧T*id%λ(⊂COL¬&~∀%'↔&∧ α 2λh ∃,I~%≥C!→T`:β"dP⊂α,Q%AL@λ∩∩m⊃β&@!!&A≠¬∞ $~:αJε≥`λ
≡λε⊂ &or ded¬CkYβ!β∂πα8 !Q@∧ieRh"P*⊃dεE@1@∩∩`.⎇⊃↓"∩≤Yα6ε≤b&NAJβ⊂⊗␈$λ
]Y>⊂≤βystems
MOVEI B,Q%XALD
∪≠=(
,∀λ∩eI~5@"B3)@hεEI @εY#!A_λ (!~¬-≤α∩H
¬∀⊂
j∀)'hεBαX
∩w∃_
" xb∧Li`λλFLβ"A~⊂πh%λ(⊂
~∃%
≤Aλβ⊃A2lhRR:@λ∧q*G@∧fgUα@
Aααb`≠⊗ ¬F,7"!↔pεjiU⊂!"P⊂βALLED WHEL∧A&u"⊗JJ-αRMα
∩∃αxh`hPα1q*J⊂0@_∃αεE∧H%))jλ* ∞@1M(r$HI`≤@⊂πibH$c⊂+QP!`g∃⊂""aRb"PFBα LDB A,[Dhbh`@XYβ:$∩vfA→_∞IααHT`(αhλ, 4 FOR T@∨!LZb`~(∪'+¬$AαXd4⊂λ&∞J∃α¬cλ4(∀ T`:β"dP⊂T∧@≥∪0~∀&lzP∀,Tλ∩e$YhUEQ!∀l@uQ2$λα⊂2 0↔π
_∞
I∧∩&@%4λd`:H⊂∂/CE MOT¬⊗%∧⊃2FR⎇αMI@hP&*Vmα∃α¬bq-L4PIα6>4*%α⊃cλ4(∀ T`:β"dP⊂α,QTEL¬⊗@↓Q L%λ "e4∧ _→_⊂⊂,,CCOCTεe 4Hh ⊂Lλ∧S T⊂K∪j
v1U↓Q@∧d)∪&P!,SITEFT ∩wU ∪%'∃(A'⊃=+⊂∩⊃∧j0≤$α1V$
⊂∧$iCE MOT¬∩AQ(Xc>Dh
96α8T=≤α6Q%6 εE∧R*f`⊂N A,TNXST0 0↔αααN@$α3∪∧ ⊂4h
Hαg"l∀∧¬∀∪5_∞@4Y∀β
@Pλ)∩dgεEαi*!d∀∧¬∀∩↓%∃≠@A):β
5#Q!∃≤-IyR¬5J6#¬Q*D`+∀p
_∞α MOVEI D0Q)(R4⊂λ&2≤Aα"β4hXpε'cBD@ ;GEPλA≤*≡ ,YjB∧uYX$-⊂β"B) ⊂ε⊂")j∀"
F@
TLNE D,ST.⊃_
`4PIα*J≥!αRhε∀jF εE∧SdπV@'$AαX]→⊃'20h ⊂Lλ∧TI∀⊂+
λE ∧DDNβGE@(β!β∂
↓_
V6∀*H (!→%≥αλ¬⊗∩h*`∩E$ ∩∩m≠β↔
↓' ⊗J*αBε≡*α⊗B~:E_hαB0)@ ∧ B10∞B¬-∩⊃.Bλ∧U :Jpλ Ibhλ+PA%C@!e:~(M"2=α⊂¬BE∧∀Z$"λα""'f"`∀ IPλA¬∀A%β⊃β¬→
4⊂λ&Rdr∃α⊃e~Q:2~ZN@"hkα]≥Ehdb]8¬H#`∞
TLZA B,(PA%EX)↓∩∩m ∨: ε⊗b⊗≥*R*λj$`9(⊃⊂*H(⊂4HX4c"A∀λ⊂
&∪β B,(PA%EX)
∀∪Q→≥
A⊂Y'(]A+$4PIα*J≥!αRkα5#⊂β"B*I⊂π"P⊂α, ⊃∧ ⊗∞αβ∃⊂HHα.ui(⊂gUd∧D BLπ)!¬α¬⊗∞α∩∧h@
∧
X¬tAQ@∧P*∪- P!∀( @%Tπ$R∩$∩vA¬=)⊂A¬∀A∨9{y|4!∀α¬$β∪@'λ!⊗∀(⊂Rki) 0↔∪_Aβ→%∃β 2A]%∪)¬
2∃bα∩>j@l8QP@!(λλ
I⊂πP!∀( @%@π!2R$∩vAπ=!3β∧1
~(LRJNQ¬"0∃E8¬
↓QU∪V
:α→≥∧U&-⊂!∀( @%@π!2WAαK/$αH$%@9iu"¬z)∃$00SλUα⊂$cλ P⊃(∃i"Q4 cbFBα SKIPN @!M3' ∩$∩vA¬~fNA∧¬↔4≠x2\αr`∪I∀~∀%¬"2=α⊂¬BE∧∀X5¬J⊃Q%$uα∀uεG@∧ih⊂aiFE∃'(λST10∀&≥*∀Jλ¬∃¬Jq1ti≠Q#"A→U34λt∃∃⊗∃'(λST0~(LRJNPαBI$Q+PK\YhB∧|d ∀4rλ@F↓αEεE∩c'⊂"X⊂
<1-SAIL>,[
D10@'∃(t4Ph ∪X→Ye ((⊂
*-RaaU,h ≥ 8π↔α@D`A-~α. "y9∩β∧πphRαb1hZα* @B TT,
λ∧v∩A)%'(8V`⊂$KZ∩=αα*T`*⊂∧fbλ*"`∪T IF EL¬)%2↓_
>Q¬""-(QP@'b(821(
Jλε↔↓PβKAX
λ∧v∩@A≠∨-∃∩A)(αa@ ('1∩α∧αTTjDλπ∃@3
0⊗∩@A6⎇20∀Jλ¬∃¬F ∧D]PdπBJN O@≤@4bA2,
P∀-43
↔$ pπ⊂ H%`X@0
0⊗∩@Aβ∨ ∃≤A%!19-α⊃⊂KZλ*U"¬4∧↔$ pπ⊂ H⊂ L Lπ$A↔$~∀`,Lj0≥4YP
%"β∩`&⊗∀β"AP@∧ibU-&P&SβNL6P
∪'∃)5~A
≠ ⊗@hP& ,zhTJ∧∃J∃$⎇λ∧l&αE∧d∀&
A,OP@'e
(~∀m≠β &∀)αNyXT$
α(∃hT⊂su)Hα⊂#$Qh¬RE Lπ+(AQ⊃∃α
∩B¬αDzN@" h∀l* λU∀/ooaQ@∧d ∪&P @,SITEFTλ
∀∪5_∞Z∃∧ 2m⊗≤r6 5KQ⊂K\xZB∧lyi∃$⎇$
EM∧T
t`:Qβ"A_q0
*⊂a⊂ @,
∩A5_∞@4Y∀∧
@λλX__∧DNβAS@'U≠
A$zBMV⊂∧ 1H⊃hZα* Aλ ¬N@)I2A:⎇!αRλZ$(hαB3λHH⊂ ⊗⊗β.BP @π≤K≠9(Yβ:$p
E↓βT¬$⎇λ∧k&⊗λε⊂→λ≤¬ ITS(λ@@~↓uαR,r⊗aDεbβ@(⊂
'T)P
2@~∀&≤z**λ⊂¬@∃YDDNβREAL T@∨!LZb`AM3')4XA%αQ⊃⊗I¬""ε9¬~& -YH∃$⎇'qP@!(⊂ bU-!⊂ K)c`g⊂d¬∩∩lA∨9¬2εJ&⎇*MαNLjV $~I∀`9TkλλIpπ*2df&⊂∩$ibcCE JRST (T)~∀%≠⊂≡Z*α¬ %4X4`*Q0 .CE GETTABA(λ∩∩m∂(A5_∞ 4~Iu∩∧β⊃5HYα⊂'*Sa"`∩
λ∧∩A≠=(
N∀λ∩c(α"#!∧f"!λ V-@1406 @XYβ:4⊂λ&∞J0∩∧∃F`hPα(∀hZα'f@3dπNL6Pλ
∀∪5_∞@4Tλ∩eZX9d4l⊂∞FBα GETTAB A,λ
(Jα6 =hT∧
@⊗p4hdh
\@π⊂⊗Uα⊂KαFE∧PβAME A( 7βM∞&@$D9αjP⊃A90∀4PIα*J≥!↓"QHh ⊂M8ZD`9(⊂s*Zβ"B)Yβk"dH V(aSh¬~∀%⊃%→~βαP∩>¬~f~PhQ`≤l≠_$*¬9yT,$≠∀¬ 8(⊂sjYα"⊂#∩cj`∩E OU@(ααR"∃∧
JB¬∧B0≥≥D d@1(∩λZQ(∂←OF@
HRL@~A∧Y'&$*~P4PJ*JNα@λ¬
λ∧FE↔DXEND @∨↓λb`TpbP⊗NJ1`0β"C!β≥`
CLSET J@π'(hαα*∞Nα@D Pp j
P
CST1 JCSPλf~(~∀4U~V
R$`&*∞bα& 4~I∀@⊂∧m U$gg4'j`∀IL¬∀Q!P@&L α*@`i'6βD20 JC@_␈t~∀4TJ~9α ε∪αe1Q hT(9E≤-G!∃≤-K$∧"`Q!∀l@uQ(
%⊗h
4070 0Y'*≤b∃,e0+Q ¬)`IDi"iPβAN
SA$ RESCAN A~∃MαJ%∧~ε&∧hRN¬⊂JαN.~ b∧λβ"B$∧⊂¬))U⊂
CST3
IFN @'¬∪⊂⊃2XH$%@9 u∃∀_@
≤→D¬ (3∩1λ~α ON C@⊃
⊗~(LJ0∀≤α⊂ )H! ;TH@∪&↓∞J>≤Yα"ε~αR=αα:D
∃D
tM⊂∧⊂'Sα@
A∨_pλ4!→%∃≥D $:ub!↔tO∀jπβ⊗)*K⊂)"Vλ'i⊂)U⊂εE∧PβAIE @∧XE$$∩w)≡↓
∃ααh∀dLAQ J∧8→∀`$⊂KλN∧¬
JRST J@π')$βλ4(_8∀L*λ ∧)FE∧H!`dgλ!⊗⊃9CE @πβ∪α4⊂λ&*∃~Qα(:5%_⊃↔4d⎇8Z"b¬xY∃∀λ⊂ j⊂i*εEαdg!d∀)P!εBα JRST @∃πM(f~∀%∞ε&*α∩b*AP@!(⊂p)→β⊂!, ¬h~∀%∃%' ε*∞Nα@
↓Q@∧e)∀h∧ JCSPλf~)∃π'%⊃Eh→→d9∀Thλε@
JRST J@π'(f4⊂λ&∞J0∩∧%FC@ ¬∧e∀)j⊂%⊂βST4
λ∧∪πβ%
A∧X *~(Jα≤→`%λX
FBα JRST @∃πM(h~∀%∞ε&*α∩b(QP@!(⊂p)→β⊂!, ¬J4PJ*JNαD∧T≥8¬
↓QRPtjJnB4i@ ¬AKS B∩∩m'⊃& ∧∧
∧*)∀9hε⊂+R j⊂'∪βW???
∩A)%'(A)∞NQ_h ⊂L8→∀`$⊂KλE↓αE∧P∩))`∀ JCS@(LVd4PJ& 49
%~∧!Q J∧αQPiAα@
JRST J@π')&4⊂
t↔8T`(λ∪qD 1S@~823β!%!`∪T4:∪∪9∞"J~α⊂hαB( *Tp
⊂∩!i`∀3
∪π¬∪
A∧αbz4⊃↔4L2∧π⊂j'β⊂'iλ≤∧ALT> @∨π
+%&A=_ α∞|j6ε: ∧4(∀λ4Ldλ"c≠1Q Jα *%≥λ∩Pj:α→DDNβBEFOR@
Aαα@ m bαR"⊗pε ∀z (4`@"B0h→;SFXTBL SFXTBI PROT@∧~(hRN@,*JD`L→jD-∀h→B¬∧9J5∩p∧g#H)'jj∩dεE@&4⊂λ (*8eE$)G HKαp
PαLE OF @→∨
β ∩→ye~∧iz"¬≤hε→λ0rc!∧f`aT'`OOP @≥≤2~e+)RbPβ"C!)c _T@¬∩`(HI`≥⊂0SλT⊂πc⊂∩dεS@)I+π)∪=_
MαtzJ6εdbeα→`
$Dβtq$ ⊂πa`U$gg)CE MA@π%∨→=_∞Aαu~~
K+$`%λ¬εEβE( ∩OTB0∀∩$p∞Rε∀b∃αxd∧L@U⊃4J*4⊂
4)'j"PβP ∪∨8A∪≥$*JZεe_4(→X∀:Ss∪i@h⊂'(∀'PPRLεX@(hP4(Q'3@7h⊂
PαLE MUST BE ANEXACT P@∨/∃$A>2αR↑t ∀`$⊂ε"g⊃h∧@⊂AM_
α≡*α≤aQ#@7nh∃*8(⊂ jT ¬R-WI@
≥∪9∞A¬∪9β% %¬~⊗εJ≤Aα6⊗αI∧`8λπεE∩ gf'⊃P OG2NP@%<Xp⊃9mαJ>R⊂¬Spβ"C!)"`⊂EAPλ@@c
} $xpI@()'←dεP@%<Y6A∪9)∨-baP≠;vp
f@F@
] ;END OF REPEAT 8λc?1_∞≥JqαJ=ylrBJ<hP4 @70∞d 5λ∩*4⊂πa+∩dπU@'12A+≤*2-8∧h
Ih⊂
iQP ∩OT@π"α6ε∞α)u~∧([∀`9β"⊂*∩$iP(∪βIN@(αp4)@4εndλαhλPUL¬≡&t9α:Bα)r¬<α3∪∧λp54hT⊂3@_ZTStD 1H∃ λαP ⊂RLπ)πPA≠βπI_∞Mα
∩¬α⊗α8T "Q6
3Qq$ T⊂ 'CEβ≥R$kPdj⊂$SαTSFX S@@/%⊂ αNα
tLL#"AP@εE≥Nβ; PUSH@∀A→1 @1$JP≤~AP@'nh
P⊂βALLED F@%9~A/∪Q⊃&9∧ α:>∀jε " →e$4TU*
λ∩⊂)@" ER T@≡A⊃π& 4)@70∞d
p∧"j∩ ¬R IT @∪&↓'β
↓)≡A∪M' ⊗∃∧ αVN-⊃α&:αHE∃∃X∧∃¬@ε@
;lp
αy`4→JU∀+λ∀jH0rtd
4λ∃ λαP$g∃ ¬RRUPT AND SKIPS ≤~(p
mm∧
Mα~⎇⊃αV&u!A1α ε≤|βU)→β)P*∩ ¬ INT@%%U!(A ∃'π¬∪A)∨$A]_∞J⊃ph ∪[4εh _β*"i∀*h ∀S MU@'PA¬
A⊃
∃∩,#4
∧$b zd-∀iIu 4⊂εjiU⊂!"FBα;; 6↓~ε∀bε⊃dεR"∃∧~0≤uHYe%~ xb∧Lh¬∀λIλ⊂λ'RdεTS TO @)!
A&q"B$DλT`*∀V#!≥]P≠ FOR TH@
AπU%%≥PA∪≥$"JJVα
Bb¬y↓∀9λ⊂si@* dg∀P"$"H)`k"Q¬
;lp
α∞|rR,h¬∀d qH⊃∧λ3Q~%Hλ⊃K
λ∪5*:α⊂!"H$g⊂ H*i`a∪ ¬ @'Qβ ∩∃ph ⊂hαC"DH5p2*G@∧dε∀-⊂ ∩,L¬∨#+%(∩%\J→α→`<~βλ∃hT⊂4Q$ 3H⊂$λP1~:α j"CE JUMP@≤AHY∪/'Qβ⊗∩∩lAβ≥λααN : ZU≥λ⊂ j⊂a` TH@
A∪9)⊗J∃*BP4PJ"JJRαI2→jE∧⊂εεEαa`dbH)⊗$g∃("&∃S$h ∪AT∧∩`.4zIαhZ5$1λ∀ ∀⊂ε"k⊃d∧ (E,¬∞@9¬α∩1α⎇2⊗J~dzP~JAQ J∧αTTjD⊂∧kiU eDDKαSEE IH
)1%(∩`-∧
2Nt
5$90
$DT ∀`*⊃0 )∃h*εEαd¬OVEI R,(SP ∩∩$p∞&→¬""*λ∧tλXp⊃∪∧ 4h∩)@⊂)gfQF@
MLπ-
A_XQ'αH$%@4 4L@Qλ∪hd∀p
)⊂dεGE SP β)∀@Q
]≤Xλ (!_4@1(∀EKTplA⊃,¬P$SαTE@%I+!)⊂A∨+"α0≤2λ∧tλXpR3HE εE∧H!`fgλ ε,SPSP$KYαRλYb∧mX∧u∧λα ∂ TH@
A∪9)'
@ε"ε∞Xh ⊂J∧ %∃≥D ∃ 9⊂πgeCE$g*∀c(λ 4%≠⊂≡Z*α→2nα
U≤DαH⊃K
λε)h∃βIN@:4⊂λ&6⎇2N%αα%Bl@TqPa⊃+P bQP)c,βE MOT¬~A_Y↓'
a)¬_QHR∩`.≤b0≤∀(Z"∧dβpp*I3sTd 04RhXλ⊂V$
qP4dπ
AH∂¬∃8A$X\αiD$↔0λ
8T∧ ⊂RLεOλααJ>VαI∀`((⊂dS&⊂ ∩DTURNTO @'A(∞&8hP&"J∃Qα2I→e%∧IA⊂K](Z5$⎇(T∧~z5B∧h@
≤
hQP@!10!R⊂"⊗$T)b∀#
@@ ;↓∪⊂~R-∩JVBα@$4ptI~∃∪tAQ@∧fgUαE @$1∪!'∩B→$Q!∃¬-95E¬I∃¬≥λ5∧2Hα.qhZα⊂ ⊂C ANDFLAGS
∪≠=(
⊗%∧12&Bα8bDJ#"A~∃0 dλ εP⊃ 1⊂∀!→T`:β"P#∀#∀FBα JRST 2,@-1(FXP)∩∩m∞>h¬∩)@*bP+R j"k⊃i⊂ ↔E WE@%⊂A∩y→d8hαC"G]]P)⊃h∧U@%8A~J|iαN~βD90D∧∀Su*I3Q( λ4h⊃ @dεE PUSHJ @
"αbNB↑Lq0⊂@ ¬εE∀h+dg∞α MOVEH
A1ZbQ→1 @$KZBJ⊗α8U∃4Tλ`hPα2∀J+H⊃K →β*("∪∧¬∀∪A_∞Aα5BA2~
5∧~α⊃J!↔t⊂
jλ(!P!⊂a` IL¬)=∧J0∃%λIB∧TP3(UαεE∧TdπS IPSPC(F)∩∩lA¬βπ-λA-↓αRt
DD(⊂s @a!"i⊃b⊂$g∀h∧RUCTION
λ∧∪',⊃α5α∀
&l
`→βE MOT¬~AHY∪!≥⊃"2⊃⊃∪@:p5Q$λ0p P⊃⊂ g"λ)
EXCHD,@∪!MλQR4⊂λ&6⎇2N%αα%Bl@TqPaQTpλ+Rdε1: MH∂-
↓Y'
a)¬∩QHR∩`.∀*N@$z(R¬$α⊃( Ipp5 →βg ∪ THATPπ
4PJ6 =hYR∧K⊂∀hk∃⊂S¬
J".dλpε'a⊂α@%⊂A/&$A↓αBαZ4DRλk¬αe8∧∃i→βεE∧PdπBJN R,SPTπ∪≤@λh ⊂L**5"∧α5ui→β∧D]UβE HAT¬∃ααyt`! ¬β≥` WLLπ∨-∧J0∃%λ:@hPβ"C!$kf'SβK: HRRP∀A_Y∪≥%α∩0$KZ~εNα@)3P4K∀∀q0*(p∧⊂'Q⊂( ∩OT@π h ⊂Lλ∧TK⊂)⊗$T)h!T⊃∀@ ; TABLE @∨≤β!εA∪9)⊗J∃*BR⊗ ε~J>hh ⊂Mλ¬4i∧⊃P( ∧
MH∂-$A⊃1h ∃∀X∧⊃(~α⊂&'QY' ⊂RLεY6~(∪⊂⊗>4)α2J
$`:⊂J`≡o↑&'QY' ⊂RLεZ]∃α≤uEP'gβ∀")
∪π¬∪⊂⊃αα%BDJ#"A∀⊂1⊃ ∀⊃+w⊂ε'cL'( ∩N-(
%!
_
QV⊂∂A⊃TεDD∞βENDHπA∀*B,~@d|v)e¬∀qQ L@3uTd
K∀∀I@j!∀"
F@
PLπ A
a Yλ~(∪⊃%%hA→2LrRB∩`@%n¬¬*N⊗~αYB¬4→JT*∧iz"∧C"B *Tp
⊂
)∀DDNβG@≡AQ_
ααd
≤*λ¬r _p∧⊂$⊂dεDLES DHIS @∪≥Q⊗JZ`$(Q'3@7h⊂siX(∩⊃*(αP ∀N∧A≠∨-∀A)"*αB
α4zJ↑ε∀!α>VαD∧@8H⊂ ~
Su⊃(j"b2dεTERP¬β_~(p
mm∧∩eα⊗βλD:5∩3Ht⊂∧g*⊂¬RVENIH
∞A%_
NR∃*≥$α3sJ5β⊂⊂*∩ ¬ ACS ARE C@∨%IβπReH4)@70∞dλ5P2)H0S⊃$λα*`∩IL¬∞A$B&Mα-B⊗∞VαI∀`9Kλ⊃+λq0λ*λ εX@ 8@A)⊂∀A!εA→→β∂&↓β%
~(p
mm∧r0≥λ⊂λ)⊂ib`∩VED ≤@THU@&0Aπ> )α&9¬~V∞∧λ∩¬¬)zD,≤HXB∧Lh¬⊃**P3λ
9⊂πjf⊃∧¬
;lp
αizB¬-8T∧5E∧ u∩¬IR¬∧4λddz5bα∧βSh *30λ→→β)`∀RUCTIOL¬&A≠¬2A¬
↓+'λβX4)70∞dλ⊂πkbUαER, SK@∪!LAβ%
↓⊃β≥ 1⊗⊃α≤zJJ⊗≥"2e8hQ ∃≤XT¬D≥J
$`1 ¬εE∩`εTXCT:∪!U'⊂A
a Y&¬~B
λe⊂hPα16λd⊂",IPSD!R$KZJ-8¬∪j(αP aTP"⊗⊂∀⊗⊂ g⊃⊂#εEαd¬OVE R,IPSR(F) 0↔
1β∂&A¬%∃↓Tr0≥
H∀HZu∪tHXβ"B Yβk"dH ε,IPSF(F) 0↔β1'⊂≥1∧2bAαM→α>VαD∧`8H⊂d⊂a` (@¬⊗↑
∩∃¬$hP&BVα9α∧V⊂λ⊗⊃∧¬
MLπ ~∃∧11"→Hh ⊂Mα⊂u∧λλεX@(FXP) ;E@1∃∞VR*αε 2 →e≥∀U0jI3sC!∧P!`R`@
AOS -1(FXP ∩∩$p∞"εt"2*λ∧ri~∀h⊂i@i)"aU&,FEα`giPXT#,∀⊂@
λMH∂-4A→2αB~bAHh ⊂M8¬0Dλβ, ⊂,R70+D~∀&A∩Jiα2b&5JλD`@"B3)@k"f@4⊗ PSR(F)
λ∧∪D∩!α⊃dJBN⊃D1$4!~∧`:λ⊃V
¬⊂∧h)T!PλF)
∪∃I' ⊃αM:2>y1⊂K≤β06$ Q11∧
⊂πP,⊂βT @'=≠
A≠=%∀4P!n→bE≥M∧ ∀`*∀phH$g ∀SYX INTROTI@
)!A
α→bD6T∧⊂$SαTC %dA∪≥$
≥" →e%%≠L@U⊂0K∧⊂∧g
⊗αAP⊂A%_
R
Yα&:αH$[
→e$|αh∩*@k` NIP∂'$
,4!Q h∀→jE≥M∧εB
9βiP'∀ εF@2H∩∩]≤*∃αNβ_4`9Tc"I→β*)lT] SOS @≥!→
2d~)∪~R≥Jah→Qu (2(∀EJ∀paSβNS
JRST IN@) ⊗b4Ph ∀Lh¬∀I@j≥∧d∪)(
R,R∩∩m!%∨)∃∞Qα≤z∩* xb¬$α⊃(λitS#!∧i`∃BI R,1 0⊗∪I_∞Qαλ¬Bm≤XyD@8c"B
)uλ⊂%Jq1s cDD]BP⊂⊂↔α. MUL¬π!αq0∩pβ"B)*Tp
⊂∩dεTBK1 ∩v%%∨(A∧Y'∂1⊂≡≤4Ph ∀Lh¬∀
λnB2 JT¬⊂)) ;PROTE@π(A¬*J*λ9t`*q0 εBα S@+ ∩A$XD∩∩`.∀
≤Zλ¬4∧
⊂πP*∩ ¬ AOSHλA∨HA/"
"ε@4X∧C!∧d ∩RM R,IPS@C(F)~∀%'⊂≡M∧↓"I$HI`≥∀X∧u @i"P*∩ ¬ COUH
)H~∀&U∩N@" →e$|αc"APR3UλY(λ:λHLRM@∧Yα∩$p∞6Vα:B¬¬)zD,≥D D,5D ∧@⊃H∪hd⊂H⊃I@i⊂!gSαS
MH∂-$A$Yπ=_
M∧HI`≤D→~%J∧αr3HD⊂πc⊂⊂αACKUP FOR C@∨≤L~∀&U∩N@" →e$∀4∧#!ε@
INTC2Y: H@→%4A∧Yα$∩w6-~QαBα)u$0p
⊂∪ ¬F@(↓⊃β→↓_∞→α⊂ε~>I∧~0≤u1Q L@3uQ)∀∀K (g`∞S1 0↔⊃¬∪% %∧Z& 4D t2∧(_4]4λ⊃I@i⊂!gSαS
JRS@(↓∪⊂~R∀YD4!Q$L@U⊂0JG@∧d)∀-⊂ ∩,UP)'X∩∩]≤*∃αVαYt≤ββ"A→TTu∧ 5s∪i@eFEεBαIN@)Q30t∪!→% )¬⊃2H⊃↔4
∃(→d<*λ¬∪dλβgP*∪β @∪≤Q)3$X↓(∞"_9α¬<α3∪↓Q@∧h*Td⊂ ⊂,R ∩vβ∂(AQ⊃∃ααJE≤
$λ$≤αh∩)@* ∂ T, THEL∧A!∨A∀⊂∀(Lj0≥4Y∀¬∩dα3E
K4B"%)bbP∃,gl!U⊂*,dV!j⊂*⊗da`fβE HRRZS IL¬⊃&∀JP$∃j4,*¬`
)Iu∪t @h
JRST IN@) ⊗b4Ph ∀Lh¬⊂(l≥∧fSβP
'~α∧$;PAT@π⊂AAβ ∩∞@∧∧`*∃0 (⊃P NUM PFXEST SYH≥!α2Nβ_∀d~λz4`*v4qdλβig)VY⊂#iSαPF@1M∞A.tz∩∧αsSh∧¬
S@+ ))0Mαε@$9
∀X⊂∧
u∀U(h∧ INSERT0A¬∪(ααRε
d*M "λ→d"¬8∧⊂(bP!`S!jf U$gg)CE
λ¬!β)
⊂t@AAβ ⊃iααbBε$~!h⊃Q L∀Ix4Z¬λ¬⊂j94¬εEβE( cQh¬P
EPAT@π⊂z@h¬bkλβ"R)@#'i&H-`ENGP !∧z→αB
"≤Bλ~$,
∧π ≠[⊃0λ U!`λ-PAP π⊂4⊂λ (*λr(L*;∃≥≤wP∂) 3∪peZu⊃∩ ⊃,¬ai∪βC@⊗@4A¬<
J*λ∧Q)Ipp5 →βg⊂FBαS@CTLπ A≥JM "β⊗tk~u⊃3+Q ¬(#IDb`_PUH
∂
↓
Nf≥~≤4)b¬-∃λp∂'Wλπ⊗a∀*i(#O↔h cTdh
10$ $@→∨M∞~∀4⊂
&:αYSkjaQ hPβ"Ng`⊂ ∪TRUC@(j`⊃XHJ& 4~I∀@λ∪∩*:α⊂ ∪TRUC@)U%∀Q'3@7hλλ¬%JJJD 00s ~tλ
E%JJJD 3R5 _3λ∪ ~uλ∀jJU0u
ZQ(
E%JJJE%JJJE%JJJE%@εE≥Nβ; *∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃∃∃∃
∃
;8εv@@TT@QRAπ∨A3%∪∂!(@br``A6
~Nε∞E*N⊗R%→α&:α:DM∃0
"H'c⊂*⊃a`λNOLOGY **~∀lp
m↓α↓)))RQ)αRDJMα~4∧
¬(X∀"lyiEJ∧i→D*
¬λ∀dbλ¬tI~α"`∪ R@'I(
⊗⊃J↓)))RQ)(Q'3@7hλλ¬%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%JJJE%@εEεBα
∀~)' ⊗
%"0&6~J>M∧20≥∩λ:$,
I→d:∧α3R
I03λ I4p
⊂∀h∧RUCTURE
λ∧~*∧2b-8¬∂'VlL↓⊃ ∧]bTh∧IMAT@λ↓M!βπ
↓_
⊗⊗$*⊃α~⎇⊃αBVα(R∧R6∪JYαiFE∀lfbiU≤¬0~bβ A@$HI`≤-8¬∩)X5⊃1∧ 3R5 _3λ∪JYαa"iλ'c⊂&∩ih⊂)Vd¬BOLS
∃→M3β→εtzd`~)∂':≥JN≥uβP∂
;314jEtq1j94¬⊗@1>/SEGSIP∀∩m∂ ⊗⊗α:2∧
D
DD(∪U)XQ0 3βF @'e~A'≥&A:,*∩,AQ$=≤βP lL≤¬= 8q'3≠M(Td|αZN⊗≡≤J`∩k↔`j81tr+∧XGUESS AT TH¬ NUMBER OF SY2↓'∂&↓_
⊗⊗$*⊂ (αQti@(# _SG=0~@eα~b⊗α:B]≤Xz4MRT∧/E@ibciRm ;GUES@&↓β ⊃ααI∧*∧βU3( ¬R OF PFX SEGS NEEDED
λ¬≠β3
A:E2≥≤wP∂*λ1r3HuLLε¬tq1j94¬εEβA↔')U πWD ;@≥≡↓' ∩>∀
≡∃ααyu∀∀h∪j@"i⊂&Pai'P⊂ ¬FINIP ∪∨9&~(hR. 4x ∂'⊗α".i*fa"T⊂ ∂F Lπ¬∃
)&A
=$A>⊂
JJεHh ∩uα⊂tHXH∩sI@a
λ∧~(hP4THXdLQ(∀
Zα'a0F@
REL λAβ⊃ ∨∧AqαP∃:α)C
@↔∩sI@a
REHλJA¬ ∩>⊂εb¬2dZ0∀|!Q%$4S2)@ε@
D@
∪9
Aβ ⊃_∞ αλ¬D`! ¬""Q$g"P∪βB!N
λ¬%_⊂@]%_DWα4U∩⊗"Tλ⊂hUHZ$lLaQ$\@Sp@≡Oe`∞OB+1~∃Q%≠∪8~∀4SY`≠Zλ∧uλ→β" I⊂⊂# ∃N@π)&|qα6ε\*JL4Ph ∪[4εh Yp5↔J⊂π fQTπIN∀ARNAL-H
β≠⊂ y1r¬∩0≥αβ3P)X,π⊗≡∀h abKc'i-Q →β ⊂⊃ycbεJ≡~jBJ>βp4 @70∞d 2p5ε∀∂∀∪H→αb@≡,<PBOP-H
β≠⊂|Xy'Aβπ
[→⊂≡I6α⊂)H0Q3πe∂∩3JHαi' S⊗g fQ←⊗≡ T πS-PROP <4⊂λ4(HT4LhT∧l\~@
@⊂K⊂eHαεE∧∀Pa⊂∩CE A0Y≥∪_4⊂
J6αH∀C
λεpKX+∀∪IE,K⊗h≠1∀jYβ!'jSαD _bβ↓@ (*HU∀l→aP@! ¬""Q$g"P∪e`j1 A,B1
2⊃d(4(~⊂λ(⊂∩FEαb⊂,NIHλ~∃I≠ ∩ε@ε∩¬\8π1¬J⊂π&⊗L⊗-`nQT∧S@+9
>Vt!1EAαh ∃$X∧S)→βεEεBαβ≥aW. C ≤AA_
1α2p4(Q!P@'nh
@3e`j2 USED T@≡A
%⊗ε$)αεVαIdd|_@
∪s4aQL¬]@; MKAT2 <ATLπ~[≥¬≠
`9cb∃∀_Xbl@P31%XSt@⊗Ph¬TOLLπβλ[A%∨ @rar2ε∀"16~⎇⊃6"⊗"⊗I@aQ h∀HXdLQ(∪)85@_∃α"⊗!CE QAUP ∨→=βλ@J4⊂λ&F4a ∩EED`)3β"I_Ts@≠anV⊂∀&j dP-P.Pβ,PNL-2,KA]( ',r∀⎇YhBc∧¬P@)1P bH-a`≥, RM@)¬⊂bAZαv¬2∧r15IeZεu2≥*0∀∀zYd"c⊗εhUHZ$lLaQ hPβ"Ng]P&`RbP gλ j'fH+` TH AU@)9→∨βλβ!%∨!∃%)2A→%∨5∧ αNλ~$"λ∧∀I@h"`∩TY @→∪M(⊂∀)Xπ3@4∂∀∪H→αb@>0xd[π!β$[∧b&NQlJ⊃@2GH%∀LXeTL@U⊃4I@ f⊗g⊂d¬E<αar:=p¬T`8K04HzoC"HHαc$g⊃P
KAL A,D,C →
4⊂
&~α9b¬\8π ⊗λ)&`∀AH1 @6↓;ε@2 ∧∩$EK4
lUJ5,@PSu)@ ∧,1@`⊂∀*L2N∃αβ85j@λ⊂ &U d⊂⊃ ,,D!⊃β⊂⊃K8∃l*J:T`(Su3HE,↓QU⊃4IY3C"APL¬]@; SAMD AS MKAL, @¬+(A]∪ ∩!∧ αZεe*∃α∞,b18Q'3@7hλ
(TR1(dH∩3JHαi' S⊂ ∞AME @≠βdA≥∨(αα∀(∪s)~α*"bβE""c∩dεE MKALV A( λYY∃24
0 (αTS*H2λλP⊗β ]C,D!$AL,[A]E,V!C,100
RMTVC V!C,T¬β_~))⊗JlJ0⊂hαC"G]]P&Peb`∪ AHAβQ_∞5ααy∃$Bλ⊂
(3∃1$λq3∪¬D⊂U5∧ Sh∪jI⊃0 ⊂∀)'h"T* ES
0⊗vβYα6.
1↓`% h∀l+βK∂ H0Q3¬XSt@⊗UαCELL>,<COL¬)≥Q&P⊗>2jP∀≤YICrcIH∀(3!I@i⊗d"Pb"`∩>
~∃⊃
∪≥⊂A≠↔βXA!9e2≤bβ⊂kλAαE$c∀dε @7⊃:P⊃αα)U$∧∧(P.b,,[PN],C ≤XD``~∃%
'
Am 0∃1¬∩6@$→$¬λε⊗-T'(
,C,∧Xb`@~∃ε\αquu8hR2>
∧→0⊂hαR1J9β⊂ ≠V@π→:X@A-π0pλ4%hTe≤UDαα¬d~∧`'@εE∧Rc)g6βC], @ε~(Jr⊗ %8U@HLi→B@"PkGW+C"IIph⊂e@↔
TERMIN
~∀lp
mαl
.⊗M∧ α5Yh5$Ly`
95∩_∀∃P3
X(⊂q)Iβ"Ng]P&eQ+⊂⊂≤PL¬β≠
xXp∩→jD-∀h→Bl@P31'e∂∀∀I@h⊂
NAME0≤Xq∪⊂~&$Jε "β5P)J1(∂⊗∞ i#iKh)'h∂∧¬
D@
∪9
A6\2P∩¬ `λ⊗!V" ¬~∀%"Cε@∀~∀&⊂¬Bdt→AP@*S0
R_P ≠ ]B,PNL-2,[PNP≠
1( ε c A@4U∩6@%h4¬ $0K⊃↓QU⊃4IY3C"AQL¬]@; STRIL¬∂&AQ_∞≡⊗αI∧-∩λ¬∩λT∃stHJh∪qDλ(⊂λ'⊂d¬E IL¬)=∧ α2~:@hPβ"QλXR3Q∧λ4∪@⊗∀'
(@\R¬%⊗B,
Q↓qbr2,hzDBπβPλ'∨α8V@#q0≠*T∧ ⊗⊗β%~∀!\V]I!π: ¬3
Mβ#"J S∂ ≡Kαλ
∃→=
α→ph ∀
89∀JπβPλ'∨αλ
∃8zz\~)→∨εAA_
04U"⊗J6Lp4(1nBtaαMdλ"`$⊗VHλ∀⊂kC!∧¬
8εvvA5β↔~α¬↓
≥JN@$YPλDλ5∪s%@⊂⊂ ∃SUSALLY @⊃βLA≥≡AA%∨!I)∪~p4)@4εnd 4p ⊂∂$g ∀ERNAL-L¬β≠
xXp∩Bt
6∃@aQ hTHXdL@Q(∪*8(∪∪EJ⊂πεE∀&j dP-P.S'⊗⊗-T'(
,SUH
¬∨U_
"F⊂ε↓αE*"T&dgεBαλ
∀~(p
mm∧jε.∃∧ ↓
Jr∩>Tλ∃$|β(@∃ tH⊂*Ipε`∪)
~∃⊃
∪≥⊂A≠%αβ!≥&~)∪% AA_ 1K:∧`*w#"IZp(∀ @⊗('εBαTE@%5∪⊂_4U"⊗J6Lp4(Q'3@7h⊂hπT∂∀tλ_q(∂⊂∪b`g)H* λAT WE SHOULD HAVE A LA@¬⊗1∧20≥∩λ¬∩λT⊂∧"`Q ¬R
8εvvA⊂A∪&AQ⊃∃αd
∀3λ Yβi"P∪βR LESS _A%AεA%&Aα@q'!βπ∀|⊂∀'0∞gP(&⊂∩iP#&⊂cP#'T⊂( ∩OP@%)dA→&≥!0∩α _b∧uYIBb¬IλT`$⊂π$fλ-↑P_↔P#bj∀PεE≥Nβ; AS@'∃≠¬→⊂X ↓α4zIαY8∃"∧8~4*@λ∩5∧ 50 jλ!"P⊃∀'&⊗@2 ∧XA≤J0∀≤T
DD(⊂λ)∪βPE@%Q2@~∀lp
m↓α↓α2~:B¬<α3∪∧λ3∃p+~h∩⊂*@"P⊂∩@π→→LA∃+≥!αBJ,~⊗⊗∩Lr≥αRD)αBh→T*@3∩4jAα@
;lp
αBpε&MααI∧*¬ h∀l*λ∧u
)3Q`⊗λ∧¬∀vβY`~∧~ λ
I⊃(⊂*(βiP(∀'h"i∃,V⊂εBα;; 6β( αRD)α2ε∀*1αxd¬$DT
d@∃1(λbf&εBα;; 6ααV
αM→α4z λ
I⊃(λHdπM@!%→⊗⊃l~0≤$UYd,,J5Tl*$λ$M∀h$ε,λλ⊂∀`h S USED↓β&A
U_
∞RLz0⊂hαN`≥Nβ ∩@@h`AMβ3&AU'λA%_ αNαJ%,≥JZ$-_Q!P@(α"c$SαE @%5)β⊂@λ∧∧5α"⊗(∪⊗(',AR,V,UC
PL¬_z@h¬`hTIx2¬~βC"J
5∪pD¬@εE$Q)bP-Pβ] , Q!D:
λ∧∩&⊂¬bbe AP@*hπ⊂≥tXλ (αS∪hP!↔εBα UC\4ε`≥]⊂εβαbβ∃C!∧P⊂⊂λ''⊂`T⊗⊂PNLλ
*⊂¬ckjaQ$d|4
∧`)β"P* H⊂
h∪αX
~∃Q%≠∪8~∀4Ph ∪[4ε`~(αfgj⊃P+ f∃bP!bS&⊂&`RbiεEβE""c∩dεE RMP -ε↓αP∩hR`∃Sβ(∞WβE&'aH!P∞
A:~∃%
'9¬Z≥jA_0hRhYE≤*A⊃∀`)3β"HW_
=8~∃→∨A5 (hRR-)Y∀`! ¬εEβE
;8εvAβI∂&A$yα&Jβ∪⊂→α=∩0≥4⊂ P∪βF (↓
∨$A∃β'2A
_∞V:αI∀`(c"C!$i(⊂∀T∧ →6β↓11Ec⊂4)Mc!1U1βλ4)E⊂¬C∪~β ≠→[εE≤⊂1\h
]F
f@[P02
13,30λXfTXhj~(`f@1⊂εrc≠uFβ @"Lmf@[P1];$XYlbP⊃Ac⊃1L4S!1U12aEAAα!P@&Lλλ→K→X⊂⊂4,20 \Xh`@β84)Eβ E #&p
f@V→P↔74εXb`@f~)⊂εββ"β
_~V~006,5006~∀D``hXL`b`XP`b`XD``j~(hnnnαaIAE¬h4
:p∧∃kβ4C!*"`∩MIH∩∩m
∨$A ∪¬∨ ↓β%∂&↓!%∨!∃%)&-_4(Q SYMBLπ⊂⊃αD*ε∩⊗α 4⎇$λ$L∀zπ hSαh
]H* λE MAINH@β ∃$A>2α¬αNβ→T)pε⊂$TP P)RdεGLE W@∨%⊂A∪≤AM3⊂⊗
|aαNB~∃ 0β"Ng]P ∀HE RIGHT HAL@Aπ=_
RεLrMαRD)αBJ⎇α⊗JRJα2&Nα@∧λ3Q⊂∃$"P&⊃c*⊂$⊂d∧F
8εvvAA_∞&:αJ2¬$βh∃ λαP ∩ESPλA∨_A)"*α",_HU∩bλ¬r _p∧⊂$TP NTHE IS2 OR SY2↓β%ααp4)@4εnd
p∧g!QP*$"H)"`∪T OF TH@
A⊃∃β ⊂¬"ε2≤yα∞εdb⊗⊃αλ¬∃≥→X$`9α⊂!&∪βC@⊗DαIα6Vα:@hSαn`≥H& E Lπ≤Aβ8A⊗Z,qα↑z(B∧∀zYd$
+∃B¬$α⊃( Iuh⊂I~α⊂'cλ* λE L@
"α"ε22α0≤0β"Ng]P ∀HE @≠β%_ αλX∀$4H∩*4⊂π'i∪`f&,H-"`∩O,∧A)⊃%&A¬∪PA∪&AU'λA 2A)⊃∀~∀`-Xπ2∧p4PH_q(⊂i@f ECTOR FLπ$A≠¬%↔&t9αBVα*∧`:q0 Vλ g"5$"g4 ¬SET T@≡Ai%≡\4⊂ mmβ4¬$DT
5L@0Ss∧λS∪pi4⊂∧iP⊂+gi⊃)P&'SαG:
8εvv∩$y-β%%_∞VM∧∩&@%4πK¬Gα('dSαTE@$↓)≡A4
2V∃∧~⊗ $GaP@'nh
DB↑ i#TP( ∩OP@%)d|X@1eα0∀XT∧dM8¬∂AQL¬]@; T@⊃
@
Zε∀J0≥-4λ$M∀h@_~Q(
εBα;; 6$h\`%hε2`' ∧gg⊃iP∀#∩βR NO PARTICULARLY GLπ⊂≡⊃¬∩⊗εN|q$4'0∞gDYW9 ZE@%<@Q%M%-⊂A~>⊂εNB⊗≤Jε "λ¬P)J1(⊂hYα&↔f⊂h⊂$ PβK ∩~(p
mlK→0∪@⊗⊂λπWH⊂ lSa'f⊂⊂αL@∨π,A≠β2↓
∃αα
U∀(
∀hX(⊃piX4R`∀CE_;h∩f@9αq∀`9Q(∩(hβ⊂!gSh LED CODE @≥∃ &A$B∃αNβ→T)pεεE∞β;; 3,∧l&|r∃α_hb∧≤βs4 →α"b @π⊂≡∩*αJ,hZ$,@Pq4dλT∧P'U$"`∩THAN@πβ→_↓+ ⊗<hQ`≠[1⊃∩DLX∧∪ _4he@≠P ↔HIC@⊂@)≠ ⊗Nα@
Dλ3∀sdλQ(∪i@∀@
;8εv∩f8jP∃Mpε⊂MTX∧Sd¬∀shλ`g⊂$SαD@∪%∃∞QααI¬∀⎇Xyα¬$α⊃(
@gi"5'P#bU⊂+ f∃bTFE∞β;; TH@
AβI∂&A¬∩0≥∧X∧U∀⊂∧iP∩dε @)!
Aπβ5
A
∨I≠β(A→β'2|
⊃αVα8U~@β"Ng]P ∀WLεA:Lr∃ ,)~B∧∃α5⊃*4⊃⊃0i@b"b0iP#'S& ∂WS8∧~)Xπ3@1 ∧X⊂∂←⊂'$S∧¬
;lp$⊗p
f@P≡P≡ 4εnn@!
)∪-12A&t2&4~K∩HhαN`≥Nβ ∪≤αz|A≤αiE " ``)uλ∧ tH
f@[FE≥Nβ; @)!+&@@β↓AAAαdβjαα∪R)Dλπ⊂~JT∧ @h``@*↓u↓ε4α`$
+∧λ3Q⊗εM`≠Lβ = (1 ≤@\h
]⊃Q hPβ"C!ε@
SP@π¬∨(ααNεHhP4*∩,"NεIPI↓↓↓α`X@2"⊗ε⊂HI`≤$X_B¬≤~
E¬)zD,≥HXB∧∃α(⊃hT@
P ) ∃βλ~∃⊃
5@!∀ααα∧εαbd_HD ⊃↔4$01_& ∂CK MARKER~∀$∪ ∩R$*ε⊂4T∩NfN
⊃uu8HI`≤∀Xy∀`)R3Qd qHλJ;4p
"SQ⊂ i∀ h PROP@&Q'
↓'3'αH4*>∀
JJεKP&εMβIt(*p l
ca`⊂>,,@∪∨ β$b∩m_∞
ε∃∩εdQ!⊂M∃∀oε_λ¬ag∂⊗⊂IO@¬β$dαBRQ⊃Q%∀01∃λ_S⊃.A_4h∞)⊃*⊂FX>, →%M1)∧b$p∞J⊗"Rε
d(4(⊃~E%≠F_B\≤βO@⊗)!`∀!)(@$hRBJ∩$∩1h⊃_∃≠e(JB\5αλ∂⊗))`_T@∧d%]αVJ∃¬∩⊗ε∩$
∀dQQ HMJJ3cE84`'K∀Hj_∀*∃∀@
TTYIFA8∧∩&
→r4→E5≥Bαqpjπβ⊗⊗*∃,dc_B]j*,H$g ⊂UT FILE ARRAY~∀$∪ ∩R≠aF⊃89B\≤βJu↔K∃
K21LE
∃
#!**,gQ X
AS<FIL+S@0αZ≡∞Aβ`¬J∃⊗3hf ∧]j∃,P'jU(*`∀FILE ARRAY
∩∪Q)&xc⊂Wπ1\~0∩]K∃4L@oK
J⊗3qF%∃∃∀CE$g$Rc ]∧B`iP≤FIHλ@.α;α\<8∧∂EE⊂∧g$Rc_D]R`εIT↓
∪→
↓β%%βd~∀$M"RMq!.∞G`¬I3R2(fJ⊂
*
F@
ESYSARtzP_Q!P@*t⊂u @h⊂ ∪AR,@∪→LY7'βI:~(1n
p∧∧+∃Ptht⊂V∃HicP"UαCSGSY2AL@εA)%U)⊂A
*0∀∀zYd"¬8ε0)Hh⊂ Wλ ¬S@35∂&~∀4⊂λ ('0∞gP!"cRdεS OL∧AαAM∂6,rQα
⎇*0∀⊂4V%D⊂Q0h~αibP∪βF @)!
@E'A∞@$z∧¬≤
$!P@!αE)h⊂βBOT↓(
4T→0∪kβ+B'f ∂CATION@π⊂≡Vu"⊗Iα4zIαZbV∃α≤*21αα:∧≤QQ K[4εh @'j"P∃$ j5αALUE CELLS FOR T _A9∪⊂⊃1¬*0∀∀zYd"bλ→d"¬X(∃∩Q!∪@7nh⊂*(αP$gλ(*`∩E @
%∀A')∨Iβ∂
~)
2x92β#∧¬P@*q1u*∧λπεE⊂αXVCSG=0~\4⊂
&~p∧∧`+∃Pthuα-FEαh cbUhεE∧PαXVCSG=0~\4⊂λ&2|→↓9.uBP∀≥8p
J81tr+⊗XFEαh cbUhεE.CE"`⊗CSG= :αp4(Q!P@*t⊂pI@h∧ IS2λ
*≥IJε2≠P4*2|→↓9-α
IJv03λF@
SP@π)>αα&MIdJ2MK9∀m¬X∧Q$
v30I@d∧ BLHππ.hh ⊂hαC"AQTpλ!PαOT SYH
4Ph ∃%*ZDCPα)∩ *)*j∩⊗⊂NIL ∩w¬)∨5∧B⊗ε∩-⊃α4z
@ ¬∧h∃h∧@∨∧β)%+$@4*J,a⊂&ε$"0≤∩¬PJ)*sI→α⊗.%SαOB
R@_J!β ∨λA≥∪_19↔:|⊂4)@70∞a_tSpi4∃∪h
5∪pD R3λλgi)"PβT@→24⊂λ (*~T`(Su3HG@∧R$$UNBOUH
λX1_
&0KZ& 5HZ$`(3λ∃)@!'jg⊃⊂
ARKER
SYALC8∧∪¬→=∞-αe~fε2_I`≤4z λλ→α OC
S.tzP_%\b0≤≤~I∀`9H⊂sjYβ*"iλ εOR↓'3≠¬=_A'∧
≤(β"C!)bcjT⊂!)lSicUcTdεS@3M∞U'≥'∪ )hε⊂hPα".hYβ"⊂'Q⊂)`→M@¬∨1∧:V⊗Nα1P@(4pfQi↑P≥8~∃!β≥ ⊗@hP4(1m⊃ ∧E%∃X¬∩∧∧α∩∩*SαBOUND B.IH
$nβ↓α&Bα c
∧α4∀ @→⊂#↔λ ¬PFXGS BPURF@&↓!/&|J0∃"∧@
Yβ!'jSαD $⊃_
&1¬20∀LD∧B%%*ZDB¬h¬λ
@*)*j∩⊂)`∃N@¬∨+≥⊂~∀4Ph ∃≤X*E$bλ∧uλ~U∀hλitH∀k⊗Kλ∀λkλε⊂ SαD @!→&A7¬*J* I∃≥↔(∀jλ0q4aQ@εE_L⊂∧ $HISEG
λ∧~*≥α≤∀z@
≥K!Q"" ∃∀JZα$~ 4εnnf@`X@25"JVR@h ⊂Hα,¬Dα∩*)∃h∧H
$ λI+9
>Vt!`⊂Kvp
f6
:αg!'UdεD
0,,$ +≥ _∞V: h ⊂hαP@↔∂↑W∧]S'a`j∩`πN CLπ+≥$"Iα~⎇⊃αNfl∩0≤@λ⊂S ↓a` SPACE
λ∧~*≤*≡@-∧λ%≥K*8r\=9j5K∩*8T=≤α6K&⊃ ¬εEβA
λSPCBOT PFX
α~∃%_
I]βP&I]h ⊂hαR1I@⊂"_@0,[
IF@
A≤
& "K1P@)4⊂λ'] . 0↔∪9∪ ∩&λ B¬¬ `4⎇$ DM≥∧z2α∃8ε4d⊂""k∩abFE∩h('28∧∩%ph ∃hα.q)@"⊂'cλ$c"P∀`dfεBα;fo@HA'β∪0XAoJ↓QCm
↓i@≥β&yβ@&Tε&.m_M≡~;p↔λ0s:2\α "MA@εDAC9H@E→M DACIJAIKα3';↔ h ∃hα.q)@"⊂'cλ$c'0_XεEβA
F,∧z`5pI`≤dβpp*I3s@_gjg*⊂i⊂#'T⊂( ∃RE FIXL¬+≠~↓5αVα8T"∧iz"¬∧βP3(Zh⊂3HD⊂∧g
SiFEεBαSEGUP BPFXSG+GSH
!
a'∞@*≤*≡N≠%SλhαQ4λk⊃to'Uβ
λ∧⊂∀(hRNB∞∀zQαB5_4*
¬*J54π/%@∧@ ;BEG@∪≥9∪⊂~≥∧z→αBαZ$*∧h∧h¬λβ'i IH
'I(A
∪1
A!β≥
R4Ph ⊂hαC"AQL¬]@; @
%∀A')∨Iβ∂
AM)+
↓)⊃β(β∪&A≥∃(
-$λt4q1⊗λ''i DARE MARKED F@%=~@@"tz0∩l)_$`:λ∧FEβE( ↔ILπ∪≥ π"∧t→A⊂HJ∧¬`≥<α5∩ @jj⊂$SαTE@%I+!)&↓'!π%β⊂⊃αα
U∀(∪∪h`j$gSα
∀~(@@∩Hα"V 4)zT`(∞C"A⊃ ∧`h∪α UNBLπ+≥λ4⊂λ ($∧J"Ii∧cPα""'h ∞AME FOR NIL
λ∧∩&
α0∩∧βR3↓Q@εE+∪αIL: L¬∪_∩m_
&1=→αZεe*∃α∞,b1α~4∧L@H⊂λ#∀P⊂
THAT WAY @3=*Aπβ8O ⊃αα8U%
~@hPβ"H∧↓) ∃
*5∩≥αDXPNAH
A=A(~(∩∪β!8A(~∃Y(t4U2RJVαIβ@!5∀U*Iα.s →q0dTbP!`Sα ∂(AM ∩E¬ 4(Q!P@'nh
@4h∧ANDARD UL¬¬∨+9λA-β1+
Aπ∃→_@ZααB>→jD,"λ¬∪DλT∧P S&⊂ ∪YMBOLS W@⊃∪
⊂⊂∀'0∞gP"'g h∧ HAT¬∃ααI∧,M$ u 9β⊂ ⊗ALUE CEH 1p∧∧`)u⊃.Dλ3∪λ
:αad SYMBOLS ARE
∀vβY`~∧α⊃3 →βabg∃)$aWλ&j`∪T HAVE SUNBLπ+≥λααε
>4)α,h@λ @c⊂ ⊗ALUE CEH 1∧
J,⊃Q#@7nh$
q1(λ{4pλ~PP g"λ)i`→ST@~\4⊂λ ($∧M≥Yh$`:αg": QUNBLπ+≥λ4⊂λ ( c]8∧th)&⊂ Ta)&⊂∀lia)∪⊂)a)∪⊂(cI∃&⊂$cTa+⊂(S)j#↔⊗⊂( ∩M@π→&A '3'β@A#
_9$AHIβ_AE
_@:D)α"∃$
1αF4a0∀Dλ∀b⊂3λ
_SQ∀⊃⊗)λ→α⊂ ⊃FL.LE L@
Iβ0A#
_9⊃~A⊃4Iβ_AE
_@:e!α2Q$
1α⊗α;∃≤
↓Q hU8¬0JJ⊂ε∧dSαITIAL P@+I
A2M~QαNαJ%,≥JZ$(hαC"J:tpTIG@∧h`T) lP F@
AS@¬%_t%#β+$z2>ε ¬∀4!Q%≥M8*$cPα40**P6+¬JpTS↓Q@εE)PαRL: QSUBR
4PJF~NαX%∩αQQ MJ:T*K∪I→αεEεBαQGRTL:∪"α"≡J⊗
!12i→@HKαj∨
P#'iλ*ci"Ph∧
λ¬∪∂' ( h→x$
∃(≠∩be(X∀%$_)D(KαqSj$λQ4J)AC@∨~α↓∀4!⊃∃
∃EDM∀~H$`@ ¬∧aλR f≥λ⊂(`jU'`OAD %
QFL,∧C∧X1_
&0hRRεJlJ0⊂@ ¬εE∩c'⊂)Pdf⊗-CE QFL.E@$βP&&J~6 *∧QP@! 41*(α`b,,IRAT@¬_~∀%$Iβ0p ↓αα_∃-∧βs∪h_λ #!↓ 41IEQ0 ,,NIL
λ∧∪#
0X
"∃β!∀M∀_9tjαQQ HM→λTeαβ∩*(5⊂S↓Q@∧d"I f≥⊂λ(`jj∪βH >!↓∧Q!⊂MiEdD+∪I→β"W!Q@εE$Q'⊂$j∀T-FEαhc&↔⊂d∧: IRACOM
4PH&Fεdb~&2-→12~(∃$∀AQ LDH∀cR∧
∀
5∪s @`b⊂∩CE QFL.AL,,@≥∪0~∃ 4KZ⊗ 4D t2∧α1SD 5∀c!$c' USELESS$[
∪#→_] 2h∪∪%β
_∞ *∧QP@! ∧hb∃d¬PARRAP∪&0Y∪%βQ
04PJ∩e∩a`⊂M_~U$|β∪p(D #"A⊃41S¬@ ∧Y,,L¬∪_~):∩$KZ⊗ 4D t2∧α1SD
4q3λZtc"AQR1SD SpT)→βn"20,[
QFL.LE:∪∪Iβπ>h∧α(hαB4)Hαb$j⊗ RATBL
L@
Iβ0p ↓αα_∃-⊂πf'Pb⊂∩FBα QFL,¬→
X1_
&0hRt4)_d`$⊂¬'a∀dgV-CE(c&αH@~@PJ&Jε≤z5↓∀hP&F"αYT)⊃+ ~P5⊂IAα@
HM$AL: QAUTLπ⊂∩x_Bα ∧D]Yαh∂dA!+⊂⊗
d(4(~_dbt P¬IR3β!(c&↔∪*≥∧dT agfH⊂¬∩∩mH ?$ DM≥λ¬β!∧hf$Th*⊗⊗∩i j!∪∧¬∃→PIβ_tA#β+Q_∞2x_Bα εE∧Tc&↔&∃⊗⊂NILλ
*hH%n⊗t!α>→∧J~9αTz∃→qP@!α@
ESYSAP==($KZ⊗ 4D t2¬8ε4jHαfP Uh∧@∨→=βλA¬∩0≥∧X∧U _4c"AQ@↓Gt)0)Hα⊂ ⊃A%DDDIRATBL @∪%¬∞ <Tλ$`),Lp$λSS →a⊂!'α1A BL¬,eαβ# ∩I~5"¬→J5∧⎇X¬λ
→α)`⊂OUPλA
*P≤@λ⊂λjT&⊂SβR~∀4⊂λ (*⊂ (→α"≥∧BDX"AUP >dzε⊃XHU )0q(ED⊂U5∧ Su⊃$
)0 S ∧ BELOW!
λ∧d`J%# '⊗αJ~)⊂εα"~~¬~αQQ$M λα
→α$ih⊗ ∞IL
20$ QMACLIS@ 0Y≥∪_4⊂
&~pε⊃EAeX4(∃`
f∃α⊂NILλ
(LJBBd∧(∧Q ¬∧dT( ∞20Y≥∪_4⊂
`(↔8T`(α⊂'cλ$c'1_XεE_∩⊂⊂∀RhλALD: @#⊃'⊗@1e ⊗ε2 ¬3λhαC"J_)1⊃λG@∧di⊂a`∂M0Y≥∪_ p∞εVαItd|_@$1P5)Jλ⊃⊃*@$abWQ$i"aU'i,P∪$i`∀
λ¬∪%βQ
1hM
~εNba2:&`h ∀M(_4`9,¬∧hS$i`⊂,,NIL 8π')β9 β%λβ↓⊗ZL~∃<I~$,≥Iz%J∧iz"∧
X¬∪IIp1_i3⊃4d↓α@
IFN BIG@≥+4Y6~∃ _
5I≤ `⊂L→`∧∧α@
I@bX1_
&0hR∀tT∧Lh≥ IN0 %
IN $0Y≥∪_4⊂
9pε∀Pα23F¬l+ @$fεE⊂αNV %∧pλ&
q1E "Ii∀`@"W"!↔q3Q∧ qH∩(iH⊂R(yβ*fFBα
∀~)# ∩I~5#Pα5∀JZα λ,,L¬∪_~)∪
≤A%)&@2Xh ∃J:∧`:αj≥∧TTεLISP. % ;FOR ITS, ( ≡]1∪' ↑8A∨+%αV@"α#"A⊃43u*J∃0
,,NIL
λ¬0∀$HI`≤,h@`8H∩1I@⊂ TS
IFN @λd`104*→E≥∧βu5π∧hf`PβH ∪'@@@∀⊃↔44⎇$λC∪αβλ
X0s∩*:λ∪u*J∃0
∀CE QLπ+)!U(X@2tJ0 (+Q⊂HKαq3HD⊂πc⊂∩c'⊂"_εE≥Td∧S@!=+ ⊃α≤z0∃≥J*T:⊃1_~α⊂ ∩UL∧A)∪5
A
∨HA⊃Eh ⊂hαC"J~αkf≥αhj`↔RIP
X1_
&0hRF@-)G M
X∧Qλ_λε⊗'∩d∧
LGH∂$t%#∂=α(4λ~~$
∃0 '⊗ ∞IL
;QN↓%→'%↓αFR≤*REαα≠¬≤-J⊂
∃→J2α∀3#
:α⊂ ⊃SJC@_AM!π:j⊗Mαα
U∃≥λ9d@10 P∀ ∧LN↓¬≠&~(∩¬#≥%→'%∪@!44q*J( "!↔qStD R2α D⊃0 )∪βR MESSAGD
α∩\αYE"Ia∧`@"B3I→α⊗ε'∩d∧
λ¬#)'∃)"@(M
N⊗Rλ¬∧$⊃↔44⎇$
d-∀~H∃~∧X∧TIi⊂&b∀i`cb↓
α∩\αYE "Ii∀`@"B5
*5∩⊗'$fεBα
∃#a')"βP&FN-"E↓∀HH%n~⎇⊃αBVα)∃$
4λU∃∀z l-8∧p(x εE∧Tl)bjP∧ →≥%_⊂∀!Q$
∃→J3@!404J(4∧P∩BDX(ARRAY ?)~∀⊃#⊂⊗2≥!`⊂M→P¬IR3α!⊃,¬f$Th∧ OF A @#U')∪=_ αX~$[R¬∂e⊃ ¬εE∀i`
CL8∧∪#'Qβ ∩Vα4α(Hα.`∀∀h∧ATUS @∃π0R~(M
*∞EED`)3β"AQTpλ!SαAMES8∧∩$KY"NR
"VMαα:∧9β fbTT@
QSYMBLπ_@J4⊂λ&F
∩Jε@∀∧PhUλ¬4J:⊂sP)X4h
∧αDX(STATUS PU@%M!π:j⊗M⊃Q MI~5"αQQ$L4d ∧`)pε'cK-FE∧T b$lλ_X↔εBα REPEAT HL¬↔2|9-E1∧~0≤@Ph∀)
3R`⊗↔↔)(!SαT _X0X -DhP&Jε$Ja↓`hRt%@8Yd"∧βqH _SH∩ @%`OG
BG⊂∪#¬∪≥_
V5α(4*∩@∧@MJZ∧d4∧⊂∩CE!`_⊂∪#π∨5!→@¬∀4(H" M_Iu,∀HTα(hαB4(i⊂πg*SP∩FEαhc$l∪αUM ,,NIL
λ∧~*∧"2:εl*MhQ)∃∃¬4¬Be∃K5∀1h⊃ID⊃P4h"anCE Q¬10C!⊃_X@2L2N∃αβ;∃mZλπ6e@∃XnFBαTE@%5∪⊂_4P1nJ%
R,!Q h⊂β"TjXU∃∪↓~P3Q @d¬ @'e' ∩⊗lJ~∧~Itm_Q!P@!αE≥@; +@∪≥Q%≥β0ZP≥≥ljε∞Jz↓*6Vα:BRε,Tε -<X zλ4p∞ @QQSfAβ#πLUBε6β|@⊂
)j J∃iP ∪YSP ~αP 99Hh ∪[4
∃∀∀5⊃$
<h⊂∪~y9z<βy`≠E=XAKq
KahAα3?IααJ%-∩λ⊂⊂[2⊂ ⊃UL¬¬∨+9λ@@5m∩P≤XQ!P@*Q∀5λXHεiα∀h∧E 8π)"*α0≥$α⊃4J4∃r3DλQ0p*Zq(∃ λαl@ T ¬ ,↓∞"ε∃_4*&∃↓αaEK5∀∀5⊃(⊗)" Qd¬I,RDVBA∩,RDDBLQP≠20Y76OtY6wjb`∨eUK2+4εFEαd¬KAT1 [+IL¬)∀rε "β6+)X0p 'Wija)-P ≥X,0
TERMIN
∪≠-β ⊃DαZ& 5HZ$`(35
K4pp)@⊗i`∃BR,S@+ $Y6Au))3¬UXf~(∪⊂⊗.
!E↓9→e$4SP)E4π(@-MAC@%<Y'+¬HY6Al~RJ2λ¬C@"@α Yp5_H∃` NTERNAL-↑S-MACRO,SP¬$αb`~¬X:E∀e5FhPα32h~α_@∃RdεTERL¬β_[y 6
∀*ε-J:T*K⊗`⊂↔a`∞.B@∧Xd~(∪⊂⊗.
!E↓9→e$4SP)E23s¬XTQ0)5α)`∃BR,[ ]I@∂→∧αaD4!→T\
F⊂
\Lh¬⊃
)P3*ZQ01¬X3qQI@⊗)`∃BR,[ ]UREOF,2~∀%≠↔β(β ↓.→jD-∀h→BlLh9E,$UXT`8QS@⊗∀h¬BR10
αvLr≤,xeC⊂@"B3)85 ∃93P
"∀' f⊗U*,Vb∪αDPAGEFN,SUBR,[ X))e≠⊂≡Icλ4(Q!∧l\~@$¬p∧g*⊂i' fU))bU⊗a)"PePSU@¬$Y6β3π∧XD~∃∪%@A0@1eZV∩→e*∃2JzD
@∃1u¬Jpπ @,GC@_Y→βπ:~(∪⊂⊗.
!E↓9→e$4SP)E4∧⊗a∀ ¬AK1' ⊗
⊂¬E@4↔0⊂Pα,1
T@%≠%_λ4!Q"α→Y4
i→β*"i∩αAL-PDL ≠¬Iββ⊗YM+¬$YlA0⊗B$b∩c⊃Q"α→Y4
i→β*"i∪αAL-G@π≡@6∃∩⊗ε-e~V
IeYα`,x9t%#"AQ@∧fePh∧1 +IH
)I_
ε1l
V@$yIt"β∀u()⊗-@ ]IALB
~∀_w#¬%∂⊂~Vh∧∧M∀ptj$⊂∧h(∪α1 IPPN2
0⊗@Xπ2∧tzHR¬<YIB
πMRπ∨α;8M⎇λ~→,≤α2y9H30∂`$4⊂ mmβ0λ↓⊃3∩4jEλ⊃R+ U3 ⊗λ εLONUH
XA⊃_∞@,)HRb∧9yU∧dXε⊗λ ∧U@!10@1∧∩&≡h¬3%Aα@
;lp$~;∀l∀yEBβ@⊂∧ ∃NKS>, RANDOM(λAβI%β $hQ`≠[4∧αε@=<p~λ12P !lh ←GαS↔⊃∧ε6/∂\XNM8;⊂⊗≡T∧ i@8A`∪#∂!β ?,LW%H⊂
g≠z2P !lso @QQChAβ##'LhQ`≠[4∧αε≡⎇n7'⊗≥_ND≠x %p¬P∪παλd∞α42P≠2|: cons@Q`π≥nBπ≠{kKTλ⊂
4~yP4`3 so @QQCh~(p
mmα↓β∂↔↔#π'dλM}=~0↔→yP @9←iCE1rA4
11βneβGαX
,={_P→4yx !tch @QQejAα β@&≤-F(hαN`≥Nβ @=H βK|εW&NβY0→K⊂4w2→|2r by the se@Ek@↔l8 $
β:vq→y⊂7`& TYPEP of a fo@IZP_Q!PD≤βs3(Yβ*⊂⊃H(f$iU≥⊂ c∩l ∞@+4pA#
1≠⊂~ViQαF∩⎇*
2∃RαF∞yZ∧d
α
H
_∃0∪λ[∞C"A∀λ⊂0I_sU3'$∀4v)XSs∞D
2∃3I6∞HEeH⊂2
YR{FD∧∀4P)h⊂πf@: QARRAY2 #
MKAT LAST,LSEBR,[ ]
IRA↓
∪!≥U~~∧@∩∪≠∀ α~2|rV4∀T"↓$LjJ¬α$zV
2(h"∞a H&&Jλ∧∧\X∧∪λ[β"Q∧α"3*((⊃∃* ⊃0εB!#R∧Bdi @ @¬∪∂≥U~~)α$&6α(∩¬≥→X$`9αεE$Q'⊂$'∩d∧GG104 α↓↓αε∃↓αaEK3αc∃F"c~β
⊗
T∧6,7,8$9]SZ,,[2,4,8,16,32,6$0bd`!c⊃U@2FV∪∩c⊗ε#%@ εE∧H⊂⊂⊂&T`P$*SαK!X1⊃+≥⊗α
NhQ!∩αα∧ ∀4(R**⊂sU¬Y⊃Rs @cR⊂↔∩ij'hβE⊂⊂⊂λ*"`∩MIH4Uh%n⊗t!α>→∧J~9αDr. $xqPBα↓⊃∀l\~@λ
(3Q∪iU⊃∀u()⊗-P↔X_FEβE→P≠≠ NOTE WELL! the sqmbol hea` KeLAMOd4∀vvvα$&ε∃∩εe1¬~V
Ibα~NV∃⊃1α2≥*αI1∧*bBIbα~εBα
"b∧X_5∀zDλ∃-∧βs∪h_β"Ng]P⊂⊂≠zyz be allh∂GCcons@Q`π≥nBε@⎇Y0→≠0x9P≥42P 0p¬KGKα+∪'lp∞≡}n8
∞0p nt p ←↑9:@A&C'MβLε2π≡tλ
=β"G]]P∀∞α42P~w:2`2p¬kahβQC@;&c↔Iαneβ#∂3∃βπpπ↔πOL∧W$≥~0⊗YT∨TFBα
∀∩%≠↔β,↓β ⊗R|b ≤EJd
5⊃SEJ203λ⊗ jj∪βL@∨β⊂~∀$Lj.~Y∧*JJN-!2-**4-⊃TjXTC"A⊃32p*@⊂⊂
RSEPλ[%∩εAJee%∀~¬E≤%Ee∩uJ↓P@! ∧fePhε GC-DAEMLπ≤Y-≥∞∩ε,j0≤pβ"B!→αe`kλ πC-OP¬⊗J4b0≥:β∃QhgPQG@π∨∧Y≥∞ 8Q!⊂L@2p5D
⊃∪)@k"`∩FLOW,VP@ _YE!∩2⊂¬E∧∪β"J8)α")Yp5H
823)X23)→β*"i∀*h ∀,T∧]≠β%∪⊂~PhP4
6α(∩¬]h→E,*IH∀l∀H⊂λJp¬V)Vd¬,SPLICING( '∪9∂⊂∩∃d*P∀H~$:@⊂T∀eJt⊃0i_3↔#!∧¬
MKAV [TTYSCAH[≥"J&:<*JO@KZe%≤8∧tEI5∀pj:K∃∀hiiεE∩h∧SCSR:∩\αYE "β@∃L∧¬∀∪%_ A6peE⊂∧g0+15 8εPF↑l@\@Gq∞I$hP% 24∧ ⊗↔∃P∩
λ∧∪∪≤β↓-E] ¬BdLd∧
f⊗βZ∧]J⊃P∂`8X ↓
|πBHhαB+E6+∪I→αεE∧Rdε0+PdX@2LqA-Q⊂H%m∧5r$λπ⊂⊃Kβ")
RMTAH1 [ X
K∪M~P⊃E9∀`*⊃0 '⊂d∧ ≠'Q%∪≥∞αj6εJ\*I1J:T`(Su3HE,↓QTS5λ→(⊗dαR!gSh R0Yπ>mα2I1e~V 4)zT`(α⊗_@00λ
)Xπ2π≡\T¬∧dβ∩4j∧~;@⊂≥y0 `)∃CE@3*β⊂↔⊗\Tπ>≠x 0Yβ`
4U∩6@$→$h⊂∞f∩ih⊗(∪& SP,L@∪'@XY',r∀⎇YhBc∧∧β!∧f`∩A [BIBLπ @24
N "β∩PiE⊃⊃∃Q ¬∧fT`P∩cS'a f∀lfV#S'a f∀lfFEαd¬RAXπ⊂∩ε∀*12~αYd
∀{QP@*p)α)ZP(⊗iX0p∞FBα10$∪⊂⊗Jλ∧¬@9α)`⊂]
IFN SAIL,[
IPP@≤@λπSmX_0hT~
∧`&LεP≥QLSP
8πgKJ↓aeKmαK?WM∧∧F.X∧w4]4p∂ns h∂LA%!!;Jβ⊂⊗␈$λnM→<@≡|yz2[yFE.B]bg"λ'c⊂$Q'⊂ ∪AIHλ~∀4⊂λ ('8F}r|¬λ=_;YlT≠x 2→y⊂3 2om hep¬JAi<@@~J-~RY1∧¬W/∨DλλLT_{p↔≤β`Gkβ#'[∃∧εvO&∧∧d`:∃∩3i@ fεE∞βf`∪eMhAC]⊂@@~J-~RYβd∧↔>λ→P↔\α DEFUHAi<A`∨?α-2`!α@
IRP PN,,[Lπ!)∪=_
ε1e∩⊗NQd
VaJy∧`9α"`≥
λ∧∩&m~¬↓∃
α0∩bd~∧`! ¬∧j⊃i&dgβE MSA %RSP 1b2J-8¬∪↓Q@∧DfT`P∩i∀h∧V,&R@'%04(Q'3@7h∪SjHαP ↔ELL! @QQJAgβK7⎇DεF.≤LW.h→P↔\α
∀vβY`~⊃~$,=λIBb∧iJ∧$bβλ⊃K
⊃∪∧
t⊃0jλα
8εvv@AP↔W≤εBε⊗Tλλ-Mα7q`!ted @MKckKαsS'πd¬GJ@λ~0↔λ8∧hat h∂eI∃` 9↓¬##'M∧¬↔4≤{h∞M_8
εBα;; 6α@Agi¬i`↔M∧ε&␈/M_L↑hε⊂ !nd p@⊃X[@?αh .30o@\Ae@?α↑FNv↑4εn∂∀∧&NvLX∞∧⊂7s & p QJ↓P∂'lAP@'nh
@(⊂7s⊂≤26⊂ "ei`≥NβiC@3↑+⊃βπ⊗{WQaQ hPα"3*((⊂
i⊃ch"& εLPDL,F@1A _@2≥α⊗∞B$bt4 cXQ!P@! ¬≥@;8εA:,*⊃α∞⎇α&⊗M∧z→α∩⎇*∀dUD∧9pεh&⊃l⊂ DUP@→`XA¬∪≥_
V5∧*P∀,d ∀2¬K~∧-~ iu"∧α34 Hαfbg∃ ¬D
,¬'
↓→∩ε$*H ((H"(Hα34H∀⊃∪u(&"FE⊂βX% MRA CLπ≠!→∃0⊂∀(Kα(Hα34H∀⊃∃4 Hαh∞E⊂αG% MRA BIG@≥+4~∃⊃≤α($&6α(∩∧EYi0hPβ"Tλtα"3*((⊂λ Qdg#FBα ∪≠IαA!∧p4)Iα!$→Z$
¬λ∧c!$c'2h∧S,[
∩∪5%αA\JRMH→∩dlEIT5α"&nCE MRA EXP@%∪5⊂~R`4(⊃→U∀
¬iDM≥¬aP@+αD]bSαD OF IFNIP &~)∪
≤A⊂d`@2Xh ⊂Hα3$H∀⊃⊃0f&β"B!→αi`@5'h ∪20,TOPS(
d`4⊂λ$→R$
¬HYd-@Q+PK\YhB∧|d ∀4rλ@F↓αE$c∪α D1@Y6~∀$∪⊂⊗Jλε∩,0∧,↓QR⊂ RBDf`∩A O@≥M∂6,rP (αHλ∧∧⊂∧c"H)`df-FE∧Bd¬RA@π≠*~(∩∪≠≤ αRz
3αβ∃∪j
hεX@0
X
∩∩m⊂~⊃∧z→α_hR¬≤→→@hUβ".hYβ"⊂'Q⊂ FN @λb`4⊂
&~pεVN⊗d*NMA→U∀
λ∧SiX3C"A⊃30 H)`dfβE$c'λ%'a(Rdπ _∪5%αA∃=λ (αB")ZP(⊗hi3⊃+λXp∧'V⊂βH αY%≠β∂
1
2x92dtX¬r)@T∧OUTPUT,S@π%∨→1:~(HJ6J¬∧jε∞I~5@"B")Zp(∀HHαgc⊗∀ ¬AD5⊂≡_hP$&6α8∩∧≤βKPEKwPW!Q@∧DfT`P&@,Xε␈:~(∩∪≠≤ ↓9:lJM %5%$lM8∧r)@ π ≠βI∞TU:4⊂λ$→Z4
∧β⊂ ⊗⊗β←]
M@'∧A1!∀BN!H[¬¬∩Yλ∃≤@Q!⊂L@4P ⊂⊂βALLI
~∀lp
mαtzR*λ¬q)Iλ(⊂~~2P9`9mb`∨X↓QKCI∃`Mβ4¬w!α@
;lp
$Lz∩%¬D∧-P3∧λα"`⊂OSIT, EXAMIL¬∀Q'3@7hλλ
↑<⎇⊂_2P0v≠4πcate`λAgα+GW↔w#'πMH∞%D~;@⊂≥40p∀↓←eIKβ⊃0∩αλ¬~
≡h~0→H9wP 4hat
8εvv@AaQJ↓[CGQ%]J[Kβ∪@⊗@|H⊂∀[8∧errupt @!C]IYα+@∩ε\∨∩α⊗α;Y←λH⊂↔Yαf the ki@9H⊂∀'0∞gP⊂⊂ /d∧AS]QKee@,επ"ε,X
-lh≥_-My9⊂_q0∂`+β!0⊂@ ¬εEαD@ .SEE UIH
(fH~∀&lZε@" xD%αβ∀u()⊗-@ ]1~∀%≠↔
2α⊗@4→ED`85P3¬I∀p
a∀⊗ ∞IL,12
H↔βPA∩⊗α u≤MEJ5,∃%K2¬@,C"A→αe`jλ ¬P⊃β5∪⊂~∃e~V
IeYα`+⊃Q hPcXQ!P@*u0U
Iα05 @d¬S FLπ$A≥*∃∃1Q hSαq∃)Yαh ATO@~AM_
αRD
Qα
ZRJε≤)αBJLrRMαα9tl-I ∀`(βP ∩EAS@∨≥¬
2∃∧J0∩∧8Z%$→`
≤≥(Zr∧≤~8U_hαB3)85 ⊂∀d¬ARK,SUBR,,QMARK _`4⊂λ&6\
Qα≡~bN@,* ¬Fβ"B)Yp5_H,εG,SUBR,,@π ∩Jd91@4Ph ⊂@ ¬εE∞β;; NLπ ∩∃¬:⊗ $βλ ≡M→(⊂→↑vq7`, headers @→←d4SY`≠Z↓⊃∪f∞β≠λ∞M→(⊂⊃Xy1r9λ3:w1]4p∂ns>λ
)Xπ3@4λλ⊂⊗]yz⊂ "e al@1←GC@&+⊃βO,ε↔.;]~,≥≠_Vλ4p∞ @QQJA↑β∪∪↔I∧ε6F@⎇{@≤,8ε7`78ε@Eπ¬$DA[U`∂Qβ⊗(4)@70∞d∧λ≥~T→Z0→≤β, and "CDD@ $α⊃β@&Tεf∂>@∧∞βtp∀h h CE∃YfAMα{@∩ε≤¬λ
L88 zλ2pq`( h∂LAβ##↔O(h ∪[4ε`∀∧≥_wKα @)!SfASβ→βO=∧εFF∂Dλ
(
r)@*"`∩NAHλ@6≤
J∞∩∃↓β≠Wv≠S'⎇`∞N∂∀λ ↑→<[-≥Y(β!≥]P≠ whetherpπ←[Kβ##'lpλ
≡h_ ≤<<Xp∩≤α o`!α+@⊗∂M_md_XP_p∧d`%∃`∂Mβ≤¬voε≤∧Z.ww↔εBαλ
∃≠-
,Aπ¬$YπβHY'+¬HXXb~)≠↔
2α≤%%H4%∩J:T*K!QR4T∧λ+⊗h``i,@πβ $αb≤$~ λb"),@πβββHYπββ⊃$Yπβ⊃β$Yπ¬ ∩Id~∩εε⊂¬D8⊂1∀EHq⊃⊂*%⊂q⊃λJ@εE!P```i!```Q)⊗!`Pb i,@πββ ⊃$Yπβ⊃ββ$Y
β β HYπβ ⊃β$Yπ¬ ∩∩⊂¬D8⊂00*%⊂q⊂(_∀K⊂hH1⊂4AQPq⊂(Hα)⊗!Q ∧AAR,CDDADR,CDD@ β%t~∀&lZε@"λ⊂
:αa),,1~∃Q%≠∪8~∀&lZε@"λ8D$⊃∀@⊗∀h¬BR10
αuα⊃P@! ¬∧fR`j_@*dg ∀ERNAL-@πβ%π⊃% @2≥*∃∩EI∀81∀T¬F εEεBαIRPS A,C,Xπ
∪1@A~2|
RAαα(U%-)`-P3⊃J(31(λZTQTH→αbV!∩ch⊗!∪βUNDP,L@∪'Q∪
%∧r0≥ Q(∃$|β(∃~⊃0λ⊗⊃h(&'Q ¬ MIL¬+'αbB2Vα:αduYX$-∃∧$-∀z¬DL@U⊃4I@⊗ A∪Tλ
∃%∃(
⊗J≤)2:J-2⊗JN*bJ,_ADM≥EIT\βP3%I⊃3QjIλε A∀T∧MINUS →α∧"⊃E2≥*∪
HiD@85β"Hi⊂5∀i~Q(⊃IH5⊂hλ~Qh⊂i@iPSQRT →→=∞P∩⊗β
αe≥ λ∃≤B itL@U⊃4J*4⊂
⊗∀ ¬MOB,SYSP
MAKUH
¬∨U_
⊃I→U∧dβq⊃%I53Rh→αV&`RdεUM1!+%π=!2A∧b&NQ¬~f ,X¬P)KαFE∧∪e`j0T∧S@+ $Y7πtb~*$"J6&ph ⊂hαN`≥Nβ @≥∨Q
A/1_BAi!JAgsαk >D
\9→0→≤β fO↓H~∧`-Xπ2Hα4U)@* M∧, TIME
∀vβY`~α∧λ.↑⎇λ⊂⊃→P0v ,oca`)∃HAgKβW.nM⊗∞fLε+∧
8π⊂ 4hat@=`∪↔⊂¬bα¬M
↔4~8 P≤βo that
;8εv@@the @¬YC@Kn≠3 >90∞ .8π1@4ion @5Cr@E%]IKpα⊃β >h H∞M→(⊂∃Zw2⊂ /d∧ACYα@⊗j∞,W∂.α<Y,E@εEεBα MKAT1 @%U_
R→XBe≥X""eZλπ)
*3P
$↓ME,0
λ∧∪≠↔¬(bA$B6∃2≥*∃∩K0
@T∃∩3(Uα_εEβA$i(∀P V!K-c$l$c$l ¬X@!1_∞∩⊗~α0∃,IED
≤9→∩∧IIt5⊂π!gSαS →'1 YM∪⊂~thP& ,8~C
∧∃J5,∃%K4;)λ0%F εE*⊃i&dgβE$i(∀P V!K-l!gSαS →∂∃)π"
∩0∩dxZB¬∧βQq*KαFE∧Se`j1 A,SU@¬$Y7
:HCααaH (*HU∀l→aP@!32p*F(⊂λ*T$c →,SP¬$αa1%λ¬4I_T∧V→CE
λ¬∪
≤β+'→∃'&@0Lj.εQ∧Bε@,Iyd:@∀p
a∀⊗⊂1
λ¬≠↔βPbA'Lj∀|β∀
:αa),, 'Lj∀|β∀ε⊃ ¬&ePh∧1EXP@→∨⊃⊂→2≥*∃∩K0
J"H[¬∧dβq⊃)@⊗_FE∪e`j1 ARRAYD@∪≠LY'+¬HXYβ !≠&@1λh ∀l8~C
¬8¬P)J1+0hYα&⊗f∪βCATILπ≥ 6α:T*K∃H→α&'aK_@
λ¬∪%!LAαYε10∞NV∀b&Mαα(Dm¬)zα¬≤X¬
*⊂ε aPT∧RPLACD,NTH →≥Q⊃π $αb∩&Nα D≤UAP@(αhV#∀ ¬TURL∧Y
∀*RJ@∃HUE¬EIT,@4+∀hZα i#H&bfa⊃i⊗"hU`f⊂#Qh∧L,ASS@∨ε1β''λ¬@hU(YTLhHU∩d~H∀`%∀p3(Z⊂π fQh⊂ALPHALESSP GEP π⊃¬$Yπ∨A3'3≠ _∞ "J e¬-EAP@(R3∪λ~TP6$ TQ0i@g!V)Qh∧PLISP :~(∪⊂⊗.
!α¬2≥*∃∩K85k⊂β"UλZS23AQ@εE]
∀∪5↔β(bαα¬ %8¬0J%λε∩!A(λd~))⊗JlJ0⊂hαC"I~Tλ⊂%E⊗s∪h_λεa,U ¬,DEPOSIT-BP∪)∀Y→ ∧αb∩B
l⊃12ndzε∩ d"⊗Bx Hα!⊗"∀!(
C,,[3,4,2,3]
∪≠-β ⊃D∧ 2NV∃⊃11⊃⊃24P@∀l\~@$¬H0 ⊗∀h¬BR0X@∃ε⊂¬D1 ¬*"T&dgεBα
∀∪5↔β(bβ<Y',∩I1K
¬$L∃F hPα32h~α_P/ ⊗)`∃BR, →1A)∩HXH~∀4PB6.ε ε∩∧R6∪JYαVdb⊃dεTITY( ',∩I1Hk∧L$Y`ε⊃ ¬∧fR`j_@1& ∂NUM(∪ ∃_
R~K∩e≥X*"bdiI∀$3K!Q@εE$T()P K⊗-b$Q⊗(jgWF@
MKAT1XεUβ;M+¬$X0X ε¬c⊂4*R-∩6&8hP4*&∃↓α¬1eYE-F⊂+XK⊗h_⊃ ⊗∀h¬B1]
∪∪I AεX10
⊃KXBbe4@ ≠ εE∧Bd¬KAT1 [A∧Cπ;≥*∃∩EK4"
_+SλhαB5λZS23AQU⊃4IY3C"AQ@εE$T(⊂ @,,[>,<]B,,[GREAT,LE@'M:~(Lj.εQλ∧∧
@∀p
a∀⊗-P.I⊂a⊗→βE*"i∪dgεEβE&e`U_P⊂≥1' ⊗
⊂¬Bb⊃0λjPd∧ _d4⊂
6.
!EαnβKU≥0T@⊗)"f`RdεDER,2~∀4⊂
&J¬→α¬2~b`≥≤~:4`8hε)`TihV)Ua)`∀ SETSYL¬)β1t~∀&lZε@"λ⊂
:αa),Xππ:@_h ∃$X∧S)→βεEεBα MKFV PUP !∀zA2BαZE¬∀z¬E≥0T@⊗∀a)&⊗F@
P@∞HA5↔β(bβ→⊃`1e~V
Ibb2"Z∀
I1HhP1l4Ph ∃≤X*E$`_~D`94h⊃I@i⊂#)Ua))P⊂dεD LSP¬%L~∀4TJJBM∧ 2
K84`9Qλ∀
)qh∀*Yβj"P⊃'P""PβH β%∀A!%∨≥( 04T"⊗~Bα)uα∧8~D9λ⊂
$∀'kP!∀ ¬AK↓∂⊂≥↓`h ∃≤X¬∀$λαi)4dcgλλ)j'i⊃P)`∀ATUS SSP β)U&A
,r≥∩3sDλp4q*≠ εE∧Se`j A(
≥*∃∩K85hhαU⊃*)23C!ε@
MKAT1PUSH1
'+¬HY6Ah∧E¬-9↓P@!32p*F(⊂λ'T⊗# ∪U@¬$Y6ααu∩B⎇4(Q!∀l\h¬HλHαc ∃N,@
U_ 2~α:T*K∪R)AαE∧fR`j_@ @π∨6l*0∃"β⊃TjXTK⊗dαR!gSd¬ENT
∪≠-β ⊃E¬*0∃<α3Q¬Z∀SuλXu⊃J:αa),XεA;,rP≤Lh∧β!∧fe`U_P∃!Ph∧CH1
'+¬HY6Ah¬d85⊂r↓Q@∧fePh∧1 CAP π⊃¬→_@25~V
Ibb≤
H9∧@⊂εεEαd¬KAT1 CAT@π⊂@6∀
JJ&-⊃258¬0J%λε!`U!`λB
λ∧∪≠↔¬(bAβ9λY
≥*∃∩EDD@Qβ"A→αe`jP ∂R1
'+¬HXXI∨H~∀&lZε@#∀λU (35iλαg⊗#∀h¬BR10
αv-:",aQ L@2p5ε∀λ¬#*SαCTIOL∧Y
≥*∃∩K0λT)1U)@!j$gSαλ
(hQ`≠[4 U-≥D ∧
Q(
X4∪∩*:α⊂MAPCAR1≠β Y5β!εY5β!π∨8Y≠β!
β⊂→%∧J0∩¬Iλ∃"∧βtQλZ@εE∧Se`j MAPLISPλ@2e~V
IeYα`+&p
f@F@
MKAT MAPCAR,LS@+ $Y6Atdnnn4⊂λ&6\
QEαl
A2J:T*K⊗`⊂↔R
AP,277\~∀&lZε@" X∃∧~β∪∀jXTK⊗dαY≠@74ε~(Lj.εQ∧jεB∞|q22NαX%∩e4S∪;vqP@!32p*F(∪0*λp3@⊗∪)ja)-P ≥⊃≠β!π¬_ 1I8εs 1 ¬εEαd¬KAT PROG1( 2≥*∃∩K0λV-m`≠CE MKAPλA¬∩0≤;%IE≥0T@⊗⊗β ] $β9P≠c"B)Yp5⊂∀)'cg&)`∃BR,[ ]
∪≠-β ⊃α∀z0≤@⊃+∪
:αa),,277\~∀4TJJBM∧ 2
K8D,@∀(⊃λYα"`∀E AP@!12A:~(∪⊂⊗.
!α¬2e~V
IeZ≥k&1P@*⊃0 &Rdε~∀4⊂
&Q J6.ε ∧¬≥M88∀dbβ∪∀jXTK⊗dαY≠@74ε~(Lj.εQλ∧∧dM8¬∃&)`∃BR,[ ]LIS@(αq1E]8εphPα32h~α_P!SβNS,SUBR,,$C2NS,2~∀%≠↔β(β
+≥π¬→_@2e~V
IeYα`+⊗p
f@F@
MKAT1L@1¬⊃6~Vt~ε $β∪
:αa),XεA:K11~
c⊃P≠;qQ L@2p5ε∀⊂4TH≠0p3 E⊃P jPαR,[↓2Kβ%Iβ3πβ1_⊂∀(Lj.εQ¬~V
J≤
21Hj5,∃%K2¬@#"B)Yp5_H&)`∃BRCALL,@
',∩I2m¬i⊗ %8¬0J(p3∪↓Q@εE$T()P K!P[VAH %PA¬β↔Q%βπ
↓
ε.dJN@"λxT`*v3 ≠Q ¬∧fR`j⊂ K&)`∃BR,[C]01~∃Q%≠∪8~∀4PJ6.ε ∧¬≥4pλ"Sα@λ@2e~V
IeYα`+∧∧C!$c'5ibf"TiP MKAT CURSORPOS,LSP¬$αb`~¬T∧aQ@∧fePh∧ @#U∪ ⊃2e~V
IeYα`+∧∧#!∧fe`U_P"i∀'i⊗&∀h¬BR10
αu$*JJ>⊂¬Cβ_Q!∀l\~@<-J:αde8¬0J%⊗h↔&⊗@εE∧Se`j MAPATLπ⊂⊗MdbN@,* P.P⊃H~∀4TJJBM∧ 2
K9d9βg!P∀&*`∪,TIMES,@ &42⊗J⊗t~∃ %~Yu$LYjBd
λ∧⊃)@ ∧ @:4⊂λ&6\
Qα¬dbN@,* anFE∃ ¬RMIL∧~(hP1l4Ph ∪[4ε`⊂∪h¬S@(β⊃β-
Q≠β0αb≡J⊗
"⊗JAdj& 2IHU≥≥¬∀∧L@H⊂
$⊂h∧ ORD@$~(∪⊂⊗.
!α6ε@¬De≥X*"eZλπ _Mβ0∞n~(∪⊂⊗.
!α=(X∃$4T Ju0TEKh⊂∞@24εnn~(∪⊂⊗.
!α6&p¬De≥X*"eZλπ _Mβ77
H↔βPA→≥~A2J:T*K⊗`⊂↔Y≠[@7
~∀lp
mαLqαRλT∧4|β∪∪j@dg#@, NOTE T@⊃βP@V@1αi1↓%D∧@Qλdλβb`∀ T¬β→+∀Aπ→1&~(hR&JA∧ 12mX¬Bj@λ¬⊗↔Wa⊗⊗-T&*`∪,DIFFER@≥π∀Y)&l*M %~Yu$LYjEhhαB3)8UH⊗h≠2(0EI∀p
a∀⊗(dPPαλ
∃)∃%≠∪≤4⊂λ ()~%α∧∃EE@5hε⊗@,*, ∨;λXY7∧bVMHI∀4Q0 "SαCE,TIH~bF@,zI∀,@U↔#!∧fe`U_P ≠A!$]LSUBR,,XεHC¬t~∃)I≠∪≤~(~∀4PJ6.ε ε∩αU(X∃∃∀≠∃De≥X*"eZλπ ↔∀ ¬ARRAY,1\~∀&lZε@#∀¬$
∃(≠∩de8¬0J%⊗h↔$T04TH≠+@≠CE MKAPλA→%' ∩ε∃∩εe2e~V
IeYα`+⊗!P@! ¬β≥FEεBα
∃'U
RR`Bε@$yZ2∧St@→H4λλh4s⊂*¬λ⊂3HD⊃P4iIp1~Zp1q!Q@εE≥Nβ; @'U
J>-"&tX∧h
Zq1_,P!gSh LER @∨+Q!+(@4A⊗J<y1αhXT$1⊂K∀⊂ε HβE_;lAβ≥λβ
β'→=βλ@9∧
2Nt u$DX∧Hλyβgb∧QiP#'T⊂ A⊂ ANDFASLAP.~∀4⊂
&JβαP⊃2\"⊗ %∃HD,@⊃0
" h ⊂EL¬λ@2$J6⊗Md:J,~@ Hαi`∪,PLU@&1_
∞y`2d
λ∧∪≠ εE∧∪e`j1 *ASUBR,[ X
\C∧Xd4U"⊗J6Lp4*&∃↓α¬1eZBJ&u!2BJLqE %λ∧R)@!PTERPRI,TYO]B,,[@!I(Y!∪ 2BJ~bRJAe"f =X5Be[∃F∩c
F¬C
hβ"B)Yp5_H∃⊂`@,SP¬$αb`~¬X λ$E⊂c"JHαi&dSα
∀~)∪% A∧XY7∀*ε⊃J(T$9
K270EE⊗p "Pb⊂RD@π⊂@2%J&v
bb`≠αβε
αFE∧∪e`j1 *!A1' ⊗
⊂¬E@4↔0@⊂I⊗!FE∃ ¬RMIL∧~(Lj.εQλ¬*-h→Be≥X*"bdX¬P)E#"A→αe`kλ(*`∩E,VP@+I
P∩&pε∩U∧_y∧`(b.r)@$j⊂*∪β @≥∪0A∨$@D@Q&2αBε≡Lr≥αNβ~2HhαHλL@2p5D¬T⊂
i⊃T∧V.PURE
H↔βXA!+∀∩2>
∀`$(→Y4
⊃H~pε H∀bj*h∨⊗)`∃BR, →
M→') 0b~(Lj.~Y∧bεBN-"VC@EID
¬8ZE-αβ∀u()⊗⊗→βE MKAPλA∧
≡⊗
∧zJ:J:T*K⊗`⊂⊗XεE∧Sec ⊗ TTS@%pY))'HY'+¬H~∀&lZε@#∀
5@vX∞⊗∀h¬BR0Xk¬)]λXb~(∪⊂⊗.
!α<X¬⊃λJ∀pfK)ja)-P ≥D~∀&lZε@"λ∧∃*Hα"*)Vd¬,SU@¬$XXH~∀&lZ~Yα<~BJ>$*≥⊃pj
Sk∀jXTKε!α@
MKAV SYH¬∨1&P∩Y%~f ,)yE~@λε∩)Vd¬BOLS
∀∪5↔
,A→β'2|
⊃2~
~2>ε ¬D5≥X*"e≤*)@hPβ"@↓Gc"C!)ba*∃&⊂ j∩βMS FLπ$AβU)∨2|
⊃α~,
RVJ-_4(Q!∀m∀∀5≥∀R3H{ εE∧Se`f⊂⊗β+inter`≥C0[@∪?α\&f/≤¬;nL+;8,>Xπ}.Th∧,%IDQM,0
∪≠-β⊂⊃αl
.∃6α:E∀Lhp
:α⊗ε_CE MKAHλA≥"J&:=↓2NQbaD4!→T\D
5%∀→`rm∧βT∃*E∀p
⊗→
λMKAL *:FIXH¬+~[Q⊂
6∞D
Jε∞αHU∩e8¬¬F εEεBα M@%∧A7',∩N⊗Fhh ⊂L~*α∧
EK4dM8¬
@"a`∀OR,S@)I∪⊂~≥d∩&@%8π#!∧P⊂⊂λ&e`fλ* ∂-¬αP∩N⊂¬B`*⊂πW!A(λdf4⊂λ&R-∩6&8hP4(→Z$
¬8∧rλ~T∪7!Q@∧fePd∧ DEFS@⊃βI Y'⊂4⊂λ&6\
1αm\J0∃$X∧SH→α⊂
#-MAC@%=;'!e∩∩N
¬C@"B3)83λ∀hZα)`→NTAP⊂[M⊃β% 5≠βπ∀y2N¬EC_hαB3)85H⊗dVi`→M@¬∨2L→6∞λ~$≥HZ%~@5⊂0IHαh
V%SCT,QUH
¬∨U_
Q!∧l\~d¬@4hεf`PβRO-DAP β→%' ∩vαdTl$β∀*Yβ!'jSα@λ~∀4⊂λ&6α(∩¬\(_$]
β#"A→αe`kλ! aeTh¬OTE-EP⊃∧
0∀0d⊃dε,V%@¬.YE_∞⊗Z`4(→Y4
H⊂
pT∧ ≠Yα+[↔Lπ↔*@∩a!f∃α,@∪≤β4(→Y4@λ⊂
pp¬xp@¬]IKeq;¬"~(∪⊂⊗.aαo↓dπEl∃⊃Q L@2p3∧x⊂∂Kαa(FBα MKAL [`,,¬y;¬D~∀&lZε "λε`∃RdεTERL¬β_[[[CGβ∪?`%X*∩dJX (eβ"A→αe`fλ-PINT@%≥¬_ZX[5CGe←βbv
EdI⊗
⊗2a@ (αC"A→4Tλλ∃α⊂[LEPλ@2d*Q)2$*N⊗R
j∩bβ⊗sλZα⊂LET.,DESETQ]
∩@@A6\
1α¬db5 $!Q Jα∧∧∧l\→D¬@8(+1+
⊂3QλZK(λnS&V⊗_CE TERMIN
λ∧⊂∀(Lj.ε1¬~⊗@$eJ42e8ZD0@"B3*8(⊂ j⊃↔(λ,[SETF-XX
4PJ6.εb↓.&:αHU∀t→EU≤-HeUBk∃J42bβ"!Q@∧fePd∧ +IL¬)∀rε "β4q*Hβ⊗`_1'Y∪M)~@¬F hPα32h→α⊂∃dSUH
¬∨U_
Q!∀l\→D¬@8y<]
≤β<Vw≠T¬var-` Kaα+;∪↔v≠g`%XHRbc⊃Q#@7nhα)Yp3λ X0p 'K ∧E,MACRO 0⊗@[Yα:>$)αRλ~B¬$α∩4d 50 jλ!"P⊃⊂a'k"Hα
∀∪5↔β_Am≠βπ∀yα6ε≥∩0≥lHUBcλβ"B)Yp3λλHαc&`PβRO,DE( →≠α4PJ6.εbα`≤$XiT≥)t∧l8∧SkX⊃+ε⊃ ¬∧fR`f⊂"⊃c&`aT'P
DISP@→β
P∩∩(h ⊂LY8∀b¬8HT4l_:$`5αb$iT& abH&`ai∪β]DE,,1~∀%≠↔β_↓0∂∪↔4¬V∞∨-uS∂@↔1⊃%E#"AQ@∧fi⊂P-f`PβAID]
∪≠-β⊂⊃α4bε@%HYbm≥→Z2dl∃EC⊂@"B3)83∃Hqpp∩cdrp|]MA,%%@π% XDY)%+Q⊂⊂∀!→T\D6v@hεs 5npp→;5αP⊃F⊃P@!32p)Dλ¬dg∃ ¬RNAL-DUP-P →≠∧XXb~(∪⊂⊗.aαoOL∧F*@99P∪→qz0∪@Ay0⊗6λ¬Bc
↓Q L@2p3∧x{p↔≤βtant-pp→;5αP⊃F⊃P@!32p)D⊃⊃1J930λ&⊃d¬AC,MA~∀%≠↔β_↓ ⊗~≤z6BJ)T~β∪0!Q@∧fePd∧ DEFUNFRLπ≠≠βY≠α~(∪⊂⊗.aα$Xh$`:α λMA@π%≡Y5α~(Lj.ε1¬~f ,)yD9pπ!V∪`V⊗_Mβ0∞n~(~∀&m∩¬αnlb6ε∞βQP@!32p)D⊂∧"i⊂d∧D,MM
∀∪5↔β_A%Y6hh ⊂LY8∀b¬λ→∃∃αβ∪3!Q@∧fePd∧ @'∃→⊗∞αJ∩dlQQ L@2p3∧λβ!'jSα@ Y5~~(Lj.ε1∧"⊗~Z
⊃264hP& ,8→B¬≤X¬∀%Y1K5)@!'jg⊃⊗
M
λ∧∪≠↔¬_A/∪Q⊂[∪≥Q%%+A)&@2lh4(→Y4@λ⊂dU$ ∂UT-IN@)∃%%+¬"M $β3#!∧fe`S⊂+dj∩'j`∀-TTY-IL¬)∃∩VBR~b6 (β"C!∧fe`S⊂""c∃αST,DT∧Y →(
NPhP& ,8→B¬≤X¬∃J:α⊂DV
∪≠-β⊂⊃αα:E∃,8¬*K4⊃4¬Hα+εEαd¬KAL [de@→mgh[QsaGQ-y0⊗∩2a1L4PJ6.εbα`≡→9P≠≤βt ≠Gα{;OSα.V∨&≥xOKαb+⊗→
λ∧⊂v~∀4⊂λ4)~%α∧∃EE@8pR3HE⊂qsiJQ01¬I⊂4
JP0q%Hβ'i&Ph∧,CGLπ→;∧αa2n≡Jb≤:β∪⊂%J∀K⊃JE⊂qw!Q@∧fePd∧ A1 2∧hRR-)Y∧`! ¬∧fR`f⊂#T$g"0,@∂∩~(∪⊂⊗.b@2∧z)∀`(⊃1Kλx+⊃aI@ε@
MKAL SPRINTAR,GD∧XXb~(∪⊂⊗.aαNαα)∧`&+⊃a¬E,C!∧fe`S⊂!"`Q&`ai∪βIN@-∃%'
Y≥
P⊃∩∀j$4!→T\D4l8∧S@Ql g⊃ ¬D
gp¬S@;&kπ∂K|πEL≤UEC↓ ¬∧fR`f⊂-Jdg ∀D¬%≥β_5@[O@⊗K;∪7∞≠@⊗␈?KT,*AFh⊂β"B Yp3λλx5∪"P igh πTY≥ ∩6L"εNz¬CλhαB3)83λ∀i@i*⊗)Sβ,CORT,2
H↔α0A'>⊃"≤
%J4`5λε→εBα MKALV EDIPλY⊂X@∩⊗$BP (!→T\D4d
¬X∩l@∩4uXα FE∀`R∧fR`j→0i"`b ¬R
SA$ MKAT2H@→ 1⊃∀4TJ~9ααZ4,@⊃0 iK-FE∧↓MKAL @UM@!¬%%β3LY∩ed"V -λ~%∀
α4c!∧fe`S⊂ OADARRAYS →λd~∃ 4HA`≤,h@@xH∩1I@⊂*`∪EL@'_h ∀Li`M∀k⊗aP@∧fePd∧ ALL@
∪→∃&P∩εbbε $Hi∀d4c"D∧λλ∩**λ⊂ ⊗-`
APAH →
%→⊗Md"&J⊗≥" ≥∃α+∪(~⊃∩4H↓a`∀ORY]~∀!≠↔β_↓αP∩ε`h ∩α∧εR-)Q∧`! ¬.@(⊂∧D]QdεDOF @∪
8A∪)&4⊂λ4)_d@d⊂¬'a∀dgf"_∧fePd∧ LED@∪(Y1α@2HXDMβ"R(iH∩SH(dgV⊗β
∀∪5↔β_A1∪'↓"b2QII¬
∧AQ L@2p &λ-` N↓_[ ∪Q0⊗%AQ%H↓ ∧]BRε@λA∨_Aβ
≤β∃∨¬#!⊂≤4)~BLY8∀b∧α∃3(&"V$∪T∧H@+5
2∀hR&@"A→T\D4:Q0%λ∀αe'a↔d
∀4P!l4Ph ∃≤X*E$`_~D`94h⊃I@i⊂'b⊃! f&λ εUNCTIONS ANDP¬β%∪¬
2⊗α1P@! ¬$c∪α @∪)LXA6\2P∩∧→H∃∀l9It9hε f⊂i&af∪βC@⊗YM+¬$X0d⊂∀)_d*∧α5∀eD∃P3λ~S(∞@=T¬≥∪_4⊂
&~pεVN⊗d*NMK1⊂K]IλU≤* ZU≥λ⊂Q$ 3H∃ 4h∪j(α"`∩0A~>db0≥<βQ`⊂⊂d∧ARM@π⊂∩x90hPα32h~β⊂!f∩T¬MESSAGE,T¬π2Ja2∞I⊃P@!32p*@⊂
AR-BREAK( -≠¬$X@2l
H (αB3)85H∃
K+0 "U*i',T¬))$αa2RR⊂h ⊂LY8∃ $∀piKb"`j∩⊗+ ∪YSD _YM3'λ~):∩%\*0∀λ∪qD 1S@~Zq3⊃*:c"C!∧fec∃α @≥∨U+⊂≥Iiu-3k∀jXTKε⊃ ¬∧fRc+⊂'∪βRE@(αb0∀⎇(ZBe≥X*"bc⊃Q L@2qUDλαk f∩'`∂K1 ~εdB0≤@rk∪
:αa),,23
H↔
XA%β⊂[-β0ZT[¬∩& 5EJDe¬)→e"e8¬0J% #!∧fec∃α READ-E@-¬_[!∀J0∃"β*K
I∃⊃4J
R+∀jXTKε↓α@
MKFV *-READ-EVAL-PRINT,$TLR@βλαbN@,* ¬Fβ"B)YqQH
(α`b-*-E@-¬_[!∀J0∃"JID-P3
:αa),,1~∀%≠↔
2α≡∞R< 2<8¬∃h∃α# ∪U@¬$4PJ6.~2αεJ≡~bεJ≡~b2NV∃⊃11E⊂h ⊂LY8e $λ¬))Qh∧ _]I'(YM+¬$YQ%+)⊂αaD4!→T\5d¬$`)t∪r)@*⊂.NLπ!>LrQ2NαX%∩bF⊃P@!α@
MKFV O@¬β%%¬2P∩x(∃∃∀≠∃D
∃(≠∩d|(~%∀
α#"A→2qUD
Q01
H0S⊃%JQ01
H0S⊃%H4TP+∃α)"`Q* a&⊃F@
H↔βXA⊗J∀zI6
∀*ε-XYe )4SsIX3P
,T¬∃:⊂¬d*@⊂∧ciPαV~∀%≠↔β,↓%∪≥$*J96αλ∀9p1q%Y⊂πgeK+∩`∩PH,@≥∪0~∀4P1l4Ph ∃≥X*E$`_~D`94h⊃I@i⊂'"UβIO FUH
π$J0≤u4λ∀`(α⊂ ⊗ARIABLES
λ¬∪%!LAαYε10∞ 4→XTdM8¬⊗∪αAMESTRING S@⊃∨I)≥β≠∃' ∩JLr≥ %J*T,@P31$ 3Pλ*Td⊂PRLπ¬1→∨βλβ
∪→A:~(Lj.εQ∧ 2NV∃⊃2n∞βP!QU⊃4IY3C"AQ@∧feQ+⊂""Q jf*⊃⊗""c⊂h¬LTF,SUBR,,1
H%αβ_
>∩,2ε@,JAP@!32p*F(⊃Sj(q+3jZα( ∃T,SUBR,[ @;→_∞J∞*aD4!→T\
F⊂9⊃04EYβj`∀PUPλ@2≥*∃∩K0λ_pε)'Uh∧,1
λ∧∪≠↔¬(bAπ1β$[%_
BVαEE≥0T@⊗⊗β ]CLRIN,1
~∃%%!&A∧Yε@2\~2>N*α∩,HZD,2 →b∧P4s
∧↔#"A→αe`jP V)Ua)⊗-Pβ]$!A,1~∃Q%≠∪8~∀4PJ6.ε ε∩α]K→re≥X*"beλ¬⊗)@V→εEαd¬KAT1 @∨!∃_ 2J:T*K⊗`≠∀⊂πh"Sα,0 $4⊂
N¬ J6.ε ε∩∧3t⊃)@⊗ SU@¬$Y6β0∃∩⊗⎇α⊗ 2Fε@hPα32h~α_P'Uh∧,SU@¬$Y6β:I>-!1HQ!∧l\~@$ 3Ps
X⊃1K
:αa),,.INB¬→*X`H~∧&lZε@#∀
$,P31(e∀p
a∀⊗-P.I)"g Sbc⊗→βE MKAPλAπ9β⊂⊗⊗2bN@,* P.P∩
λ∧∪≠↔¬(A6-∩≡⊗→e~V
IbaH (!→T\
F⊂d3Qu λβ⊗)jPαR,[↓2I2,r≡@$λeCλhαB3)85 →I4p
"Sα,@→'U
I2Xεe∩I~5$3Kε⊃ ¬εE∩c'⊂)Q V-FBα MKAT1 @'→αP⊗∞α(T
⊃+∀jXTK
:α!`∩DA(λf~(∪⊂⊗.
!EαN4 6∞εda2NV∃⊃12NαH4@∪βaQ@∧fePh∧1SFAP,SUBR,,SP !∀*⊃1DhP& ,8~C
∧8h∩l<X¬
:αa),,STGET,2
H↔βPbAπ
∧[')∨I
@∩NαX%∩bβ∀u
:α'i,3
∀∪5'αA<rA2↑DJ≤Bβ3tλZP5∩)@g)FEαd¬RAFILEMLπ
~(∪⊂⊗JλεV 5K→⊂hPα34H∀∀qP!Q@∧fi⊂P(' Sb@
MRA NAH
~(∪⊂⊗JλεBJ>∀"_ (!→U∀
λ¬∃~pp3AQ@∧fi⊂P**,PβO@≥&4⊂
t⊃↔4,@Q∩(iH⊂ c⊂F@
αIRPS A,C,[C@%U_
&Qe*.&2bbV~&d)αV∞dzN∃2,
BB⊗t!2VBα)t(+∩3Hf"b"WF@
MKAT A,@
',∩I2n≥h4*R-∩6&8hP& ,8jb¬-(X∀"eX∧Q(_λε#)Ua)εEαd¬KFV UWRIT@
Y+]%∪)
1
'+¬H~∀4Ph ∀M*
2∧
EK4LQR3λUα$g)U ae@,Lπ+)
%→⊗Md*≤DβqR)Hαi`≥C,,[@)I+ ∩!ba2`(Q!∀l\~d∧
@⊂c!*"`∩MIH~∀%≠↔β,↓≠'∂
%→⊗MbbF@$I~5"dβ4qhi3⊃4aQ@εE∧Sec ⊗ TYI,%TYI,LSP¬$αbRRfL2¬ #∧∧C!∧fe`U_P ∩EAD@→∪9
P∩2≥*∃∩K0λT4Q0(I⊂∧g"K_→εEαd¬KAT TYIPEEK,LSP¬$αb`~¬T∧aQ@εE∧Sec ⊗ TYO,%TYO,LSP¬$αbRRf|2¬ #⊗!P@!32p*F(⊂λ)∩dεT,LSP¬$αb`~¬TZ¬∀Lh¬ε⊗@εE∧Sec ⊗ PRINDX@⊗Bα %I∀p
a∀⊗⊂1H~∀&lZε@#∀
¬∀Lh5De≥X*"eZλπ ∩T)!V_L∧¬∀∪5↔β(bαα`≥¬)→e"lx)$,≥KYE≥0T@⊗⊗β ]%PRO _hβ(4(→Y4
(⊗hi⊂5∀i≠Q+3h%"aj↔d∧S@+ $Y6AtK
→≡0hj4PJ6.~αd¬$4T∀I∃α∩`∀ERPRI,LSUBR,TRUTH,0 "4⊂λ&6\2P∩¬(X∀"dβtQ(_λε&)Ua)⊗⊗→
MKATDA%β⊃∞!IJ5,∃%K2¬@)∀Q(_⊂r⊗HINGS,∧Aβ→1_∞
αα(TD9:2¬$α⊃2*$∃P3
X4h⊂(j⊃0 +⊂i")WβE_;lAπ"α(5"∧α4h _β$j$Pd∧@→2h
]]¬~0~∧→ID`8h⊂g∪α'T GEH
∀
R*λ:"=~βC"APPss)X3P
?⊂+!(∪βRG: T¬¬!9λtA4*JJ2M~QiααjE%KαH∃K*g""T εLOW8∧A-T2Vj@'$¬ (p∧ ∩CT: @-1∪~⊗cQβp4Ph ∀M*∧∧
@⊗pJλαg",@¬!>∀92-*)DM≥EJE%JK*T`(α"`∩FLOW]C,,[@- !∃Ee2∃β∃EBe@ εE∧Se`k⊂⊂T∧,C,A
∃)∃%≠∪≤4⊂λ4((r LY8∃ $⊗QU+-⊗⊗⊗⊗αFU@5h~∀4T~0≤lXYe"πβλ∃I_P4q'⊂+! TbX
V%H 4*1iααdTd3Qu πH⊂
T)"b: TTYOF@`)¬"εB↑∃!`∩¬9_t`(3∞H∂AαEεE∞β;; FLπ$A≥=_ 6
L∩0≥αβλ⊂)I⊂πaP∀ ¬HACKS @- β'
A¬_
"λ¬R( ibP⊂c*"i∃βARDS,∧~(hQ↓↓αlZε@2 _$
≤UEDL↓L, _P4q!QHλλ Yp5Hλ ibV$g⊂⊃0,BASE
~∀4⊂
&~pεVN⊗d*NMK1P@!32p*@⊂( ∩IL¬→4*12Y,b⊗@4YEBb3⊃5HYαεE∧∪e`k⊂∀)$g&⊃dεGTH,V%LEL¬∂)⊂αa1,HYd=⊂π"KP ∧]bSαD OF IFNUSELESS
λ¬∪% ↓αP⊃2]rE %h¬`⊗↔)⊗/ Wa⊗⊗-U h ∩ED,TTYLπ
YQβ!/%PY'&<rε %QQ L@2p5Dλ+⊂C!*"`∩MIH~∀4⊂λ&Jm"ε!Eαa119→e$4SP)E5r5 u0
⊗RdεTERRUP@)LXY!<J0≤Lh¬⊗X_εEβE)`@% MKAT∧A67A; ~∩|b2JAe
∩>IJ%αdIyDe∃↓Q%≤
A→T\
d7`*↔0"∪βH →%@Y# ∨1→% Y⊃_∞ $J*hTIyDe∃∧π ≡Tb ∂LLRP
MKAV ↑@λ@2<~≡ε≡2a2∞eh@hPβ"Ng]P⊂∀∃dεDF-FNC@)8XA+≥ _
"X¬TH&⊂ WRNG-TYPE-AR@∞X~(p
mlM*0∃≤XYbl<βk5λ_hε⊂+T'#Vg∪β(β%≥&P⊃α<→6 $z:4<UD∧4→ET≥EAP@'nh
DRdπ ≠→=''β∂∀RA6-~Qα
*α& 2λ¬∩λ~α⊂'i⊃ ¬R
IRP A,,[UDF,U@¬,Y/QαP∩V=!2↑h⊂λxpε⊗#⊂an`⊂N,,[@+9 →64r≥∪K∃)@!'"-T¬%¬_4⊂
↑Jt96@%~λRl
(p
Yβ)bbSα-GO-TAG,WRNG-NLεP⊗ε∀:M $x5Td⎇8∧p(x+⊃P)→α⊂
ACTX
4PJ6.ε2αB922
¬ %∀_∩∩H⊃P@*⊃0 &Rdε~∀4⊂λ&6\
P∩∧α3k)Itp `QbV+$SβL →#%_∞ $%I∀`9αεE∧Se`k⊂⊂βH∂6α ∀d4K4jH5⊃+
@!`∂MSTλ
(Lj.εY∧jε∞ →d*@10 )∪βR,VMERR,,MERR
λ∧⊂∀(Mα≡@$βtλλ~α
,[SYS@)∃~Aβ)=≠&Aβ9λA'%*~5β#"@↓Gt⊃TiH4p
1ilik⊂β @→∪Mβ$A%J& ,→`
,@U⊗2)X3H∃)@)"`b∪`g⊂)⊃`b(&Pdε FASH AQ∪%!βQ
Aβ%≥→∨εA¬%≡jYPhPβ"Ng]DU∃
∃∃∃∃
∃∃∃∃
⊂"g"λ'c⊂(∃i"P&∩ih⊂∀∪αO@≤[ ∪¬∨ $@TTT(TTTT(TTTT~∀4Ph ⊂@"Hλ↓~⊃P f⊂ij≡@=,∧∩`.=*εJεu"⊗⊗⊃¬~ε~∃∧zP∀4H∀jλu∪t↓QHλλε⊗ λα$I⊂πibQF@
H ∨ε↓
0β"H∧↓10 lThεC :βi0⊂hαHλ↓_4∧ ⊂UL¬≡∃∧→0⊂hαC"J:αa**∪∧i g⊃'`
BIH
β →∃α≤*22LhP4)@70∞d ⊃0 "H i"P∃$ NGS WHI@π⊂AβIαA2LZ∃α~bV∃α≤*22Mbα& 2λ¬∩λ~α⊂ ∪PEC@DL
0⊗vβYαV:∀J0∀∩3Qd 50 jλ+`∂RK O@≤AQ⊃⊗5β0*5λ∃ λαlP T ¬ NOT @≥
''βI∪⊂∩dhQ`≠[4 T
∀8XB∧TSs%@ε@
LISAR8∧∪≥∪0∩∩`.d
N@" →e$4T∀HZα$k"S,V`∪EEHAβI%β %αiαεN
⊂4(Q*ELLX→c@! ∧R"⊃hεICE ;WHER@
A$yα<X¬λλd i PβP ∃→α5)yPhUYjELLX→c@!53U→ ∧]kR ¬RE TO @!U(A¬β ⊗Aπ⊃¬%βπ$*JMααIph∃Yj$,IX∀`'@∧W+1
∀∩$X
Zεe*∀4*(T% X∀`'@∧W+1
∀∩9(
ε2,(4(Q!P@(β if∀≥ N L ∩w→β'2|
∩&:8¬Uβc"U ~T⊂5λ↔@∧X∧NβPSEUDO @-¬→+
A
⊂∩0bαVN⊗ εR=α-BR&J∧
R*λ¬∩λT⊂ssJ8451)@*⊂ ∃N@¬∪≥ %_
≥hP$$↔8d@9⊂ε'kR`εGA SE@)@A∩>t ∩∧|βH∪I→α⊂'iλ*εEεBα;; 6@
~α6 <yx%J∧α34 @i* g∃⊂P⊂&Uij⊂$⊂hεE <ADDRESS OF ARGNUH
|@t@p∩ε$"J-8∧h @c⊂ i⊃d∧OC> + "4⊂
εJ<b ≤≠!⊗HKαqSj$⊂ε"l∀))P⊗H& ∂CATIONHπAβI∞A
)∨$A=_ αB$`4
ε∀:0∃,PεBL∧@ ;HLπ⊃ &↓
∪ "u*5α↑DB≤B ~2α~ xb∧
(z2∧St@→Hαl ⊂R IN AR@∂→∨~∀⊂w¬
Y∞MαLr~Z∞α4¬≥LX∧v)D⊂π,XASG NXXZSG BP⊃0∧
N≥αuBbεN8ε∃EλεTht⊂π,,⊗αSG NSY2SG ZP∀Ai0
iαβ ∧L@U3 ≠ ⊂πgUM @∪≤β4λQ!P@*p
a*∃&∧a$⊂αOP STORAπE @!βIβ⊂⊗⊗αHE∩∧8→D:3⊂5 _π`∞S
λ∧~*⊂2@4≥4εC!$g#+⊂βS= ; 1-π≤96
~αh5_hαR1ID⊂∧gβ∀αCS, Tπβ%≤β8[∪≥→
∞MeYv@$yt∧lhε(
@ f*bH!bf&∀n@
SPCTOP VC,ILS →7Yβ⊂∩V*α≤,IKPhPβ"C!& ∂C S(4T*bBVt:∃αMpε∩pβ"R(iλ⊃4k→αciVLT¬., Tπβ%≤β8\[M3⊂⊗≡~b`≠mIyr∧l→c∩¬≥→X$`9α)P∀∀lfbiU≤¬]@9M3⊂⊗⊗α:BeZα7#!)lfiVd∧= :βQ0⊂Hα".h_∀H∪hd⊂ε IU⊂!`→ST@~AM3⊂∀Q*5∧≥Izα¬≥→P →α)V-Tlfa'S⊂ λEAD@%:4⊂
&~*αBε≡Lr≥ %1Q L@V⊂ Tc↑@≥@~∀&qBbjN8πS@Vβ"B∧I⊂∧ibQF@
] ;END OF IF@
A∧
≡&:8h ∀Li`
∧y→d:@⊗c"A_T∧,Tc↑P≥.
∪≤a1β'∞βi`+cGH%ED~8r]∧_z4MRT∧/Dj⊂1s*9oK0K⊂4qgetq1j94¬εEαa(λX~SG= ; 11β'≤W⊂~bβλ∃≤:αTq(zp∧m∧NβTAKD∧A+ AM→βπ⊗β!β∂LA¬
=%∃αα;∪⊂@"B3K⊗TqgW,ε! VY)c@-@¬11U~≥y>≤*≡N≠!P@+ ∧D]QdεD OF @∪
8A!β∂%_
≤4Ph ⊂hαSDk⊗Tq`≡N↑!(#⊗)cVa∀lY)cO↔ibcTdh
SEGUP BS@2I'∞@.u~eJN8¬%≤,z9∃@%,#"J:⊂p
'T⊂)`→2,ILS,Xπ!+∀)αNfl∩0≤@λ⊂S a`]
λ∧~(hR2>
∧10⊂hαQ6
3Qq$λβ↔εE∩c&⊂"T εP⊃∂LZb[⊃%_
V5lb0≤@U3 ⊗Kα, @/¬%≤Abq."→bTj\β∪sJYαVbh⊃,#iV⊗β=TOO MANY PU@%∀A~&DrV -4¬¬∧V⊃4jGαh
\PFXE@'PY6@&hh ⊂@"VVGW10λ#⊗ πS-8~∃ *UQuu@K+"lDα3U)Uαf'g∃d¬0≤↑H∩∩`-¬"",d
D`4∃∩⊃$ Q0*λ( cbH!'jg⊃ i,FBαX@⊃∪9+⊂∃@WY∧L@U3 ∃VαZP∀∩$p∞∩~:E∀L*ZD*∧→k∩¬≥X9α∧4∧*)⊂P)`⊂A@π
AY⊂~2Hh ∀LiD¬DDα3U)Uα[[@7,X@⊃∪9+⊂∃@WP
f@Xπ ;MAH
%∧b0≥≤X∧Tdλα"`⊂EL¬λA∨8A⊃&u*5α
,J0∀:λ~B∧dX~5"¬I ∃~∧)_phUα∪∪i@*fP≥u0
i6β ∧L@U3"!↔h⊂Q*Jq13D
⊂πidU$k"P⊂dεD NEGATIT¬∃αLrV -1Q$L4D∧d|βP
fKXX⊗-CE WARN @7a→∨:αYSmmβ⊗∪ @dεUM10
"λε3jT∃r3 D⊂q4JH23S∀⊂ε'iQn@
,¬%$β∪⊂~Vhε2>Nα8∀<(β"W!Q@∧i"T ¬AT↓1→>u*5 "¬j%∧≤βU⊗V& ∂NUM
∃∪8`t$KZ"ε&∃IαBε<)↓"ε¬αJ>bLjε@$YK∩J∧βqH
9α`f&λ εIXNUH&~)%⊗B,
QαbDJ0∃,UDα`*T⊂sJAα@
IRP X,,XεbXdαaM #EFRc2Fpε⊗λε≠@74π:4PJ& 2≠∂)→β_∃lβE*"i∪dgεEβE$g#∪βRM [HIGHESPλA≥1∪' A%_
V5β[UeDα∩3JYα@
IL¬
∨%4A72⎇:⊗NQ∧r2&Nα∧∧L@U3 ≡KnhXLLπ≥+~4⊂λ (*:∧:α'h⊂∀ εP⊂Y%→&@2]αVJ∃∧2&bjYUhhαC"AQ@εE&∪βC @!→'⊂∩ε≥ 4*Nαλ5$⎇∧
∧5~β∩3
5α-`⊂UR@
A→%' ∩thRNB∞∀zQαB4`4(↔0∞gP NITIAL ASSEM@¬→λααBVJ*α~2yjTm~λyr∧DX∧Q$¬⊂∧ @ HA!)
λ¬'!πQ_∞Aααλdbdα3∀eKt⊂
i⊃P#&'SαUM@:4⊂ EA I∩2z8T8hα@↓GpV⊗
qh∪K∀⊂ cH'( ∃RFS FIRSTWQXCET1 @≥+9≠%⊗AA→→&≥↓α4X~De~ z¬≥Lh¬λ
95⊃1JD⊃R3λXUβ"AQTp
a∃* IL¬∪)∪¬_A%α9 ∨5∧J6BVα(R∧TQ1$
u∪tH_q#"AQR1SD
⊂1r)@#P[
λ∧∪¬1a!'∞zβi0⊂Hα.t @iida∪ ¬ @'1βπ-¬αVJ∃¬~⊗≡XYe @ ¬∧h⊂cb`∃P
∪≥a1!'∞βiuqeX%EEλ∧qgetq1j94¬εEαih!a∪βPλA∪→&~(LrBVJ5→uu@E`((*`∩FS>/PAGS@∪44⊂
t⊃↔4,@Qλ∪hd⊂∧c'λ( cdSαG
.EH '
0∪'!π _∞@" _e_hαC"Hi4Tu
@]
λ¬# "≤*QE@!∃bbdβR3↓⊃,¬c'T⊂, ∪ETQ~∀4⊂λ&:αYdm∀4π ≡Kα-FIRSP .∩$X
N⊗*α≡∞AαaP@!21Qd U3S*)hεZ0, WA∩H∧A9≥U_
6JX¬E@75∪sd 03V$
3S0*)p0SλT⊃P P∪'a`j∩dπN@'t~∀4SY`≠Zλ∧∀I@h"`∩TY @→∪M(A
∨H@E→∪M DA<JR!αM"Mα→i∃$L→Dα*∀∪@⊃λ()'h⊃i*,P⊃'i⊂&∩ih⊂)Vij"fCE_;l@A
∪1
A ∪Iπ)∨I2A'∧*≤Li_4MIyb`$λ∩0↔λ* ∂PS-20 @]←e@3 ¬Bπz;⊂⊗λ87p∪@MSE@3β∀ε⊗(β"Ng]P⊂ 2esetuponeachpπiC@↔!7W@hRB2I~5βPα44
H #!_X∩2dεITE2t$hP&E⊗b⊃1Ii∀`@ ¬εE∩h∧$ FEATEX8∧∩&*bB⊗α)∀l,h¬⊂)D #"Hhα`j&∀] 8π∪≥∪Q∪β_A1∪'(A→_∞I↓E~RεR-→α4X~E-∀X∧j!QHλα!~0R0I@h⊂∩FBαIFN@¬∪∂≥U~P⊂&∩&≡jYRα εE∧Bhc iS'`b)F@
IFL∧A"tZ2>≥`BF"VtY↓(Q!Mh¬3H~Qh !QR1SD
4q3λZtkα*~Ss0)@⊂∩FEαDhg"∃βIO %
IFN SFA0∪#'
∧@@∀Q&∪αλ∩∀dQ ∧hgSαESEG;BPRLπ)πPA)22α∀dd
d:⊂Th
_L4pD
⊂,hλxt⊂ `T⊂)"ε⊂i#P)Ub RF@β)U%⊗M∧b∩4h→R∧dHZe¬∀t dL@∀⊂ 'T)P""SβFFN@@≥ Aβ∂
8A++≥∩":-¬*N⊗:$IαV∞b2%αeαJ>R,~P (!Q#@7nh⊃J)pεP!∀)'j"PβT _A→_∞Iα$JN@$→h4*∧β∀∀I@j"aj⊂ S PROTE@π)λβ
eααI∧*∧x~$(1q(λg`LE@π)>⊂¬`h∩h∧q(T⊃ptε@(YεEβ@
BPRLπ)πPpλ4((r Hα0SJ@_V⊗ T πN@+4∩w)≡↓!%∨)⊃∞Qα≤z0∃$YjE~∧βqH∧
⊂∧"iQP!bf∪)FE!⊃R@ L¬∪_X1β%∂≤U~~*$b→h⊃→dL@α".jItλ∪λZβ"f⊂⊃'i&@+P ∞IL @
∨$β' ∩εt"εJ⊂hR∀ddεBBdεILλ ;ANALOGOUSH 2X↓)⊃
A %⊗εXε2-hYB∧StS!QUPu
*nB,↓↔h∧∀P∪βR LISPλA∨_A'+¬HAβ λIβ''L@A6@!(
,8¬∪j*λ⊂"PβT@∨$αj2,hzDB¬h∧Q(e(⊂∞FBαQF #M h⊃→dL@α".j85Q(λ⊂"*i∩`∞G QF1~∃Aαft∩$`∩%]∩!↓u¬αJ>≥∧∩0≤%∀¬∧J@Q+@_b")2βF @!I_∞≥α4zJ5$hP$$⊃↔4dB∧π( @"hλTPROGSP β)∃≠≥ h ∀<8∧∀h~L¬∧DL∧@ ;PLπ∪≥%→αRt
4
∩λiu∩∧α⊂4i∧⊂4TH≠(⊃Sj$⊃pk*
Su⊃(j ON L@∪'Q&~(M∩∩2ε∀9`⊂Li→@HKαs∩*:α⊂'cλ!`λARS FOR READLIS@(0A≠β⊗9β⊂∃1∧J6BIxD(hαC"J:αb$i∞α ∪≤!_∩%\J0∀MI_∀b¬9h∀l*¬ ∃%~α(∪j$∀⊂λ'λ∀""aKXX∀FBαFEA∀URE@&h∪
βQ→&~∀4⊂
2∩4rε +!⊃∀@)3α"πc if∪βAD FI@
A9β⊂⊗∀hR2$X¬T
)nB3I→α∧D]S$i`∀ LπAYβ⊂∩⊗ ¬T5∀x*2lLeX∃$|β5(&"P*∩β BE PROTD@π)λ4⊂λ4!Q$`)3∀∀I@h)P~ H¬∪_∩$p∞BJ⎇α⊗JRJα2&NαD∧4⎇$ dL@β"C! ∧EOFFN0∀∩%⊂
&0HI`≤$Xh∃,@∃λ⊃)@c⊂#*SαCTIOL∧~*$*0∀%λ_t,4dεB)@$f∧DNβDEFAUH (A∃_
⊃α|1αBε<!α5Yh5$LyaP@! ¬*jTi$'%Nα NIL 0↔+M$[⊃U_
-β≤¬ε.≡=_L@P97`5ti`≥J4⊂
VN,r∩%@!⊃∀`)3α"'jyr`2 SEND i`≥i∃`CK,εF/⊂β"U(`f&$Nα ∪≥%_∩%]+@≡<H⊂h→α&⊂ )np KeA`↔S,ε hPβ"S
Su⊃(j≡P≥hX 6
¬∩0≥$X:@hPc]∃`
%H∩1hfef⊂∪βBTFS LF@'¬→εA
Mβ⊂∩
¬2∃α∀
d*⊃(λ@2cac,P GBFX2 LFWSAL@εA
=~ε $4 dL5x→@hPβ"T%@≡X
QITIMES 0↔β1∪β'LA~>⊂∧¬$DT
5L@0Ss∧¬@εE+α8
u-%)∪≠L~∀]⊃-∪⊂∩D
∀M⊂∧fbTP+$j∩d¬E@&4⊂λ ()_t9αef≥αb"b)Pi⊂∩DB]b"`Q⊂ i"PP j5'h⊂'Q⊂!()CE IG@π
!α∀α(hαB2)@$dc H⊂¬∩∩m∪~& ∧∧4LHT∧
∃(≠⊂hPα21hc(λ $0Y≥∪_4⊂λ4!Q L@pU⊃J7@∧a&∪βC@⊗A-_
> Xε∪KαqTHX(⊂ j∪βRAGE @
∨$β_∞
ε∃∩εeα≤z0∃≤_xPhPα3⊃J83⊂o'V,λλεBα F@'¬→εt∪ →∨π⊗αα258→D1,¬c'T⊂ f&∪βC
SPC@)= A&5→2&2~b`≤LX∧∃*(αP&$Th∧]
~∀4⊂λ ($∧M≥λ8$`:α⊂$c⊗∧¬∀~)
:Dλ$`*L.B%@∧X@)∃≠!>∀
J&2JαJBH_4,"λ+∩∧∀h:e$hβ"C!∧¬
T¬¬ @λπ L∀*
5≤8⊃↔4LR5∩(→α⊂ f∪'a`j⊃b⊂ ⊗ALUE FLπ$A¬A_∞J≤hRP∀∃λV∪@!23R)_L+ →α]` NITIAL AH 2|~ε@$X@
(3∃1$λβ'i0αPEND
~∃%∂π
@ε∪@! ¬(#I∧X<EL¬ 2M~A.B:N&@%P'dβ( cSi` <5∪≥∪→α∩`.≤J`∀* xb∧⊃01∧λS∪pi1 ¬(#IDX∧DBD@ ;WIH 1∧∩∃α∞b≥3⊂5λXλ⊂V$λ3∪∪hF@
IG@π
!α' L@⊂∧g$Q @ 0↔≤J`∀* xb∧Li~B∧R3⊃$λ4TP+⊃ ¬εEβE
λ∧@@∪1
/'β1
u@T¬↓QHλα(jtp3λ] BLLππ-∧b~↑Nb_KαqSj$⊂3∪ @aFE⊂λ∧g$c∃βAL=t`⊂∀)α∪'!πQ_∞AαL2a2→J2e\α3$
ZQ(⊃I~⊂π*fWF@
;BBHGPRO @¬≤dfTA¬≥~β⊃M@*λ)dk∪4¬Hλ'+⊂∩@¬≤\@
α2
&=αJ=α∀∩0∃≤t d)Tq`_,,!)QP ∞XX@¬'∞A →')∪4A≥¬∪Q αjRα∃$)I5~∧(h%$∃4 d*⊂p cH'# _PSG NFLPSGL¬!π∞β_
Nαα8r∧uα⊃V
qh∪Kλβ&()QP ∞X⊂SG NXSPSGL¬≥ "m~≥αik∧m≤t%@+λ⊂
-⊗⊂)`⊂DLORGP@ →∨I∞A
→A_∞J≥∧2bBz(r¬UαV≠-(λ SP@ →∨I∞A! 1_∞J≥∧22Bz(r∧V⊂λ'T π
λ∧∪'∧~∀⎇D ∀4`Q!β
@Lα.i@"bb0h∧ LEAST OL¬
A∪5!+%
↓
→>q*5αN,:6⊗:αAP@!4pλ!U'h⊂$Q&⊂ILS( 7∪5!+%
↓
→>q*6tQ!P@)1S@_$cg*ST∧[
SPCBLπ ⊃α∀p4*
∀B≡BJ{P$%:α8T*∧x:β *,b.j
Su⊃(j"b0αIGN∃MS
BL∧df@+P%AEH$`),Lp!QPSS&&m
∧KXV⊗!∪αM23A
BNM2364$ZbXY _
5I≤⊂4*
q1Ih⊗¬Bd∀h¬LH⊃ ¬!πα10∀∩@XY¬≤αqF∧Q)D)1t∀I@↑X
.5
&=αJ<4PBNB∞αIuα∧)` _α)V-PαIGNUM]~∃t∩∩@.,r⊃αxd∧L4dλ$L<βU3!Q@εE$Q ¬ BIGH
+~αb`_hαHλL∀)b4;kβ+C!⊂⊂∧g⊂αNSGtz`~∃t∩∩`.,r⊃αxd∧L4Tλ$L<βU3!Q@εE$Q'⊂ ⊂AGING104!_%ED*8skja⊃∪@:⊂2q∧
4λ∀iH0r`~Yβ*$fλ εIRST PAGE @∨↓
BLhP&Bε<*V@4PJ0∃Eλ*4;kβ/EXT∧,!∀c←↔iQcidmβE(
8π≥λβ⊂∞→αL20∩¬λ_tL@Qc"AQ@εEεBαIF $↓∂ "α
T`!αE!&∀h∧IMtzP~6α*T`*λεa&∀h∧IM
λ¬∪≥
=%~A]"& ,T
D`4⊂ε`eQP NITIAL SP %+
(XA∧
NMαβ[B`*⊂4teKhλ∞@7n!&)U$fWXL__↔,XεA'
':4Ph ∪[8∧∧,Qλ∪hd∀p
)∃aj⊂~M≠
λ∧vv@X¬EA⊂Lr0≥h∩3D¬JH∪ @kP ∪EGH≥P@TT~(~∀4Ph ∀t)~D',εg$Q)ic@+L¬∪
E~≥.i_de≤u9d)Tqc!⊂⊂⊂≠-_
:py≥¬∪Q -Ep¬$*⊂Tr+∃ibcTdh
-D|←'≥'∪ (hR&~9¬R`∩l*J4<=5K0hR∧∧α¬<~)b¬\βQ1(Hαb⊂'∃d¬BER OF IL¬∪)∪¬_A¬∪PA)β¬1
A'≥≠≥%→↓"vβK%@%⊗j(λIq0 g h∧
Hβ)
⊂A∂+∃'&@9αB∃%8xu≠mβ0∞!∃)cciK-P
]
∃:$∩w≥⊂A∨A%
≤AUQ6
R≤:≡L4Ph ∩t→J4`4λπ"i∀∧¬∀~)∪
≤A1_∞
&%~≥ _(d*⊂To(*!&%TU`∞BITB*BT@¬'&Ph ∩tYJ4*@⊗b"!⊃ ∧D]Nβ; NOT@
A<*21¬∧2&JNα@5~λ∧q(yαbg*λ πE@)LA~&∃~Q4PH$$⊃⊃∪@7nh⊂I~α⊂!&∪βC@⊗Bα↓"N⊗*α0∃,iZ$Z@λ⊃pjεJ#"A⊃4pλ!PαOT BIPλ~∀$∪¬)¬1↔&t∩4b∩$KZR"~4¬ 93∪λλ ¬ @%∃'(A 2A∂π%_
PhP$$_)D`8p¬P'⊂αITB)
R
≤J`∩k⊃Q HL(h%$∃4εB!⊃ ∧]a⊃c` NNIH
∞A=A
∀*∃α
M!α
2|~.L4PH&Bε<*V@4PH&NB≥"0≥αλ)∃"e8¬a$j @¬→>≤Zt4+Q∪@83Q⊂∪βF .ELSE
~∃9
BNα8skk∃*4=~X∧⊃a↔p∧g$U⊂+df∪⊂
@+9∞A' εε 4D
¬-∃H)B∧hε5h≠(⊂
'H()"iQi+"P⊂d∧@→∨~∃≥
a!'∞zβiE*N=→⊗B≤KZB$βλ⊂*(α`iP⊃'i⊂$SαIT AL¬⊃αb2>hR0∀S∀∀hw,εP⊃)'∂&KA∞~*uαN≥uβP%*qti*λβFE'∀h)c@==1*SGS%PG ;ALLLπεAβ1)⊗J~αε $βλ∀λIλ⊂λ T fbj⊃i)P@!!
∀~)∪
≤AAβ∂&t92l4Trb5α∀∀hw,εP⊃*SGS%PG
∃≥a
→!≤9uuEU~≡M⊗αλphThε∀
8o(∞@2*SGS%P@∞~∃91'!≤9uuIU~≡M⊗αλphPβ"R(hαP ∪FA( 6~)∪
≤A5_X∪≥M∞JN8πSk∩*8u~-λqP@%Q3∀hQ3P aT)c↑@=3*SGS%PG ;AH →∨\A~>⊂∧¬∧∀λ⊂∀ cbP
(≠∀FBα]∩∩m⊂~⊃∧J~*λ∧qH⊃ ¬$c∪α SFA,[
IFN ML, N@'
%'∞zβiE*N=→⊗B≤hQ0∀,J8PL@TptJ8o(∞@2*SGS%P@∞∩w¬→→>8ε~>I¬α∩A→¬αε≡∃αBAY$hRt∧↔8T`(α⊂$c∪α SFA
~∀lp
mαu*6
⊗α$∧`8H∪Si@⊗b`_ISP ≥PA≠≠=%2A≤*≡ ,YjE_hαN`≥Nβ ⊃)¬↔
Aβ1_A>2α≤⎇(T∧@Qλ∀jXU∀P(h∧ OUT E@-∃%3)⊃%_
≥ααZ4,5YD∩
⊃Q$`)T∧&iQ↑X
NSEGS
IRP SPC _Ym0
-%J5"e8ε4eJp4@⊗∃αC →1Y
$~6"e≥→P⊂+⊗K∀v&%∀⊃V¬J⊃P V∀ εL,XXP
IFS →∪→0Y&4a2
9eBb 2∀BQ2
¬→25α∀λβ(λP,FLP,XFLP,P,XP,SP,X@'@Y'π∃h4*:uB6N≥hπT`)T∧&iQT¬N!SPC!SG
TERMIN
0⊗vβYα$X¬⊃
)23Q$ tR1i→β)P#∪βR ALL S@!¬∞⊗M∧
∀⎇hT¬$Dα4h
p∧g
βE(
ZX==.
IRP SPC _Ym
BMdrb525BA2b5BA2~e↓2b~e↓2AK
αe≥¬K¬≥αβ∀pj+αFE!λih!PTc↑P≥ZX¬0~∃i0
auβ[%@+λ¬g!SPC!SG*SEGSIP∀~))⊗JlJ0⊂hαC"J:⊃∪∪j(β↑P≥MEH∨%dZy:α85∃≤u9e≥¬8p
i@,)`⊂SG>*SEGS@∪44⊂
B∩dzJ;Tπ4jλα&'i⊃T¬<NPSG ↔≥a!'∞|αRN⊗≡≤J`⊂hαQS
tQ`≡Oh"&'T π-99
→!≤9. 5α⊃S
qo@∃∀bcidVα
∃
a!∨%∞βif~2∧zJ:Tπ∪Hk∀⊂ cJdεP⊃
a!'∞|αRN⊗≡≤J`⊂hαC"KQ ∧]bSαD OF IFNPAGING
∀~)∪
AAβ∂&t92l4UR`∃CTπ+AQR4T∧
t⊂k¬KqP( εLP,P,S@ 1
BNβQP@(H4tλPic@=9ZP∃04⊂
j@+∂'[T¬,+L∧C'∧→εN≥U~⊗≡NMP4*R-∩6&8hP4
NαλDd⎇(p∂'XTpλ)QF@
PDLORGt{¬!≤84*~eα0≥∀wP∂(#&()QPYRIGHT "βIaAαl
NNε≤BVN⊗αJE~∧α3TjI5∃5λT⊂πc⊂∃ ¬CHNLπ→>=I↓)(hQ`≠[4∧ααR%%"RRλ¬∩ ~h∩4dλ(⊂ "Pb⊂
ONLY FIL@
B@!β⊂∩D
u∀MHZ2¬∀X∧q**Q1∀H∃∃∃∃
∃∃εE∞β;; **************************************************************
~∃
_∞:NαH∀`*∀b.iI5⊃4H→α)P*Tbb⊂(∀ ¬VIOUS@→2↓≠ ⊗Nα@((∪u*D⊂πc⊂⊂αPS
S@+ ))0LJ0∀MI_∀dMαP5 →βg⊂!SβDE
0⊗@[YαR ~2∧≤βq⊃$ 4h∩)@⊂!$g⊂i( PROGRAM S@!¬∞∀Q!P@%Pp #∪βFF
Lπ¬)_h∪%∧*ε@" 9d`8Kλ⊂i@dεC O@∧Y8]I!π:αAP@%Pp #∪βN~∀4⊂
&:M"&ε2MR∃hQ)∀4rλ@&¬R∩4hXpεbg∃⊗-FEαib`∀Z @
%∃βε@0hP&N⊗αJU :λ⊃THX00k↓⊃,¬c)⊃b`aP∩ iP'S ∧ @'Qβ ∩∃∧z→α ~4,:β0λ*T ¬ BITλ
(J↓0∃4→JT(hαW"!↔q3Q∧ qH∩(iH⊃_L∧¬∃∪→_ α⊃λεαU∧_y∀`(βV-FBα MOVEI FREEAC,MEMORY(
b~(∪⊃%%4A~J,*ε
Ei$(β#εEαa`∂RE @
%∃βε@0hP%↓jh∀e,QQ$L4d
4LEK0hPα2∀J+H⊃THX00k¬@%!)`B]ibjλ ∧DT↓' ∩ε∃"& 4tλ∀$∀Q4j4∀sh
85Q(λg`
MAL¬⊃ααy∀`*c"B*9p∧h'λ↔%!"⊃*εE∧H)b`∀DDT FREEAC,
P~∩m⊂~⊃∧J~9αα8∀L@β"W!↔q3Q∧ 1S@⊂⊃_X∃(⊂c` NG
IFN ITS,Xε~(Lj0≥Q(∃
E⊗h
400 _XP```@β↓-qr∧"2>J9y6Bε<b0≤;hπl&↔TεFEαTεCBLK TT0~∀%αrP∀JXPhPα33j@"P ∀T,[44@`X@1 εβββ∧∧
gGα)`⊂DLORG∨-PAGLLπ∞⎇{ Ez@QQ J@PpS 4∃∃⊗βE .T¬β→+∀~∀&lzP∀*λ¬∃¬Km
_⊗⊂4@```@αYq`$hε∀ @i#oVT cf'Q←(∂1D⎇0∀Q!∩`(pS∩d
∃β!∧P↔+⊂d∧UE
λ¬0∀⊃↔4,@Qλ∪hd⊂∧c'λ$j)FBα MOVE P,[-H
β- ZbX1
β↔αiFtQ!∀l@uQ(λk∀⊗eYα# eQ,(⊗@1,,FAKFXP-E:~(hQ`≠[4λd@⊂ε)P∃$)'jQdεEεBα;@∪≥%(eαA%_
&Q∀⊃α&:M!J2 →dMTλ _β$j2E @∪≥%(e :(~∃',∩RRDλE,@4λ∪jZα⊂ ∀OPS20 SYMBOL TAαL@
~∀4⊂
&~pε⊃IAeX4(→Yu ((⊂kf+ ∩NLπ:4PBN⊗RRα¬ Q)∀`)5P'∧ibj⊗α B,
λ∧∪→'!
α c04(→*Tm∧Tλ"dLi~C∀⊂β"B)→αjf$H V_@0,∧~(L
∩$∀λ∩bjv¬∧% εE∧R))`∀IH
∪(β∩∧4)→dMP@≥αd∧SH↓αP⊃MαH4(→Yu (3(⊂%Hαg ∀VEC ⊗@⊂I`≥4X∧Ti→βg⊂'∃d¬BER STORED IN L@∨εbfnA¬&@aEBaAAb`4(~94M∧βH∂¬@%!)lS↑X
4Db`→@a⊃∪@8p∧"aRP#'iλ)lfa∪βHλA$
∀dQQ J∧αTTjD⊂∧g$U→(DB]PεEαd∧DBD,[ &@b`∩⎇≠↓α,h¬∃HXh¬P∩]
∪≠=(
,∀ε∩bDE⊃P@!2⊂ &∩P_V∀⊃e∩`∪HT+GJ%Lπ⊂∩⊃Hh ⊂LYzd*∧%I∀`)5T↓Q@∧cj∩ εN
λ∧∩A∃I' ⊃αLr&@#(aP@!2⊂ &∩P_V∀⊃ ε%EXP)~∀% ⊗20h ⊂J *%≥λ∩3I~α→"FBαINIT2@t∪5_∞Z⊗J↓E"λ@
!Q@∧d ∪$P⊃,(@∂∀KM⊃(@.<Q⊗ 4X¬j!Q@∧fgUαE B1∪⊂~& ε%@"B1jIQSB!Q@∧P%∀)j$SαIT2E
∪≠=(
∃ααJBcλα".j(αfbfPαER TH@
A
%→∃αD
0∀$β⊃(λitH∪λ~α"`∩ USE
H∨-∀@dY6βaQR⎇≠1y.xdU :TεD]LXε BIT BYTES _A]%∪)
↓βππM&~(LzB,haP@!(∩TJ:α⊂$g∩h∧2E
λ∧∪⊃∃∩`∩β∃JE Hα.tH~u∪tHT⊂¬#'βE M∂T¬
@∩a0∀T*;∀hHα.sjZα( ∃T T@⊃
↓'3≠¬=_A)α →∃αα tL@U⊃4AQ@∧a'Uh∧ 8π∨+%αV@"λ¬∩λT⊂3pI)H⊂λ'RdεTER @
∪%M(⊂∀(LBJJ@$ε∩e%A⊃β@:Q0 j∪βRE JFN~∀%⊃%%4dX@:T∩Nf4HA`≥≥→X$`9λ⊂
PαLE AD@ %M&A6LrVMα|r∀4!→¬∀dα(EF
~_∧D]LXε BIT BYTES
λ¬⊃→%
fP⊃:T∩Nf4H@∪@8q0
⊂∩αEGA∀IP
A1~≡$Aα>→¬~f ,)yB¬$_!D(hαB4i@jj∧DBY`∂UTPUT TH@
A≥J6
>bαRε
d)αRt
DD(⊃R)HαFE∧⊂βL@∨'_~∧%∧RJNP∧J0∀MF(PhPα2∧J)p∧P_K-`iaRh
@8m's@7⊗{1βS∞∪3∃α'+7C↔ π?WQ∧¬⊗r¬λ∧nGI00s ~tλ∂&∩ih↔)Vd¬BOLS(
9:4⊂λ&Bα9u-β"BTbj-⊂∃⊗εE∧↓JUM@!∀A⊃0p¬3(hαB( _⊂∧k$H ∧,1@Xλ4!∀∧$I∀∧"≠∃D#@"B(
4r_k∀⊃¬6 εE∧H ge H*⊂.4h⊂∀(Mα0≥αλk¬αc⊃Q M∧)zU"Q!¬≤@rS@~Eλπ⊗@2
α∪⊂I%∨%β 2nε≤~&IαβAP@+↔#"A~∀su*AαE∧e∀)j⊂$SαIT2X
~∃%_
&Q∃↓`⊂KF@ε@X_⊗⊗⊗βASCIX∧A9!Lp rX_4dM8∧∂II4pλ↔∀lfa'S)n.FBαINIT2@
t∪!%%∨∩b@∩n
~≤MαH↔ ∃βgP&≠yryP_0r6 9 p∂QSαc∃βSα/⊗Nvtλ
t→⊂
v\⊂9|`-bh∂XAβ#πLQP@+↔#"A~∀su*AαE∧d⊂d∧TF
λ¬:$KZ⊗ 4D t2∧α1SDλα→_εBα
∃∪9∪ ⊃J@π Hhα@↓Gp∧g$PαS INIBS "↓∪:&∃→Iα→a∃#(β"C!≥]P≠ FALLS IN
INH@¬&t∪5_∞Z⊗Jα→1@HI`≤∃X($d+0 gT*⊂ ∀HE @→αA
∪,AQβ¬→
0A/"Lb∀4!→T`:Q2(λV LSYH&Zβλ%nN⎇∩R&:8εR"∃∧∩NAααH∀)⊃(⊂*4∀p
a∀db$`T,P ∩E@π∨¬ L~∃∪≥!
MEPJ6 =hT∧"dβ⊂$λi5J⊂e⊃ ¬∧aPd¬L D,LAPFIPZ@λ¬∧5 εE∧R))`∀ IH
∪¬Ld⊂∀(Lj0≥4Y∀∧2c⊃⊃∪@8S⊂1d
⊂πP'∪βP
AQ⊃β(A∧A¬+¬ →∪≥∞β_∞∞∞αZ$,"λ¬∩ ~h⊂λ TiFE∧Ql!d1⊗ APFIV-DQε@$hP& ,zhTj∧EID
∧i~bD~α".i→β*"i⊂βHANGE @↔e&~(Lj0≥Q(⊃¬I3R0J:λ∧!TCE EX@π⊂Aλαb& 4_*5αk∃λ2HKαr3JHαi!d⊂dεGE R@π∨I &~∀%≠⊂≡Z,iα"β∩3I_Tpλ∀⊂β)~∃%_
&
≠⊃`⊂M9y$:∧5I∀`)0Tl!Q@∧e*Sh ∞ F,INIBS
∀∪5_∞Z:Jα~dβ∪∀k→αiV@1
∪≠=(
∃α
⊃J¬2XεC#⊗εαbdβ⊂ (
h.FEαd¬OVE TT,IL¬∪¬'@W⊂∩2≥J6MT∧*λT@
IDPBTT →βHeα4PJε <)HR∧~β@⊗L∧¬∀~(~∀`-Xπ2∧Li~DLI≠$*¬IλR¬≤XyT,@U3 →β%P!SβUN@)∃%&A
=$A&%→↓2λ@F↓α@
IFN PAG@∪≥≤Y6~∃%% Aααa2n~α5D5Bβ⊃S¬Jv+∀h∃α)P∩]@∧X@2\J~MI_eBdα1S¬Jv3 ⊗∀`i⊗$TY(
H∨-∃∩A(Y0C∧C'≤~∀&lzP∀,T
Bd
~8tdXQ*D-∀Y→`hT(p ↓→αgk"RP*⊗&⊂αNSG
묬∞H%≠⊂≡Z,iαQH)e≤<β∩c!$i(!H(V⊗-Pa(
IFN NXX!Q¬'∞@2Xh ⊂LYzd*¬EI∀m≤yI0hPα33j@ ¬ @)PY6@6uBaεE
~≥ "β⊂V∧4(4h{hε`∪EGH ∨∂t~∀&%α∩¬EK5≤,x+∃"bβ⊃pj:α∀ ∀T)]~∀%≠⊂≡Z,IαQE
E"Hβ"B(→βa%'λ**⊗↔Y
MH∂-4A(@2LjN≡I1P@+ ∧D]QdεD OF @∪
8A≥ "@∧∃
8qP@*⊃0 &Rdε
MH∂-$A(@1car,hIDM≥¬:∧=9≠"kβITλ_pεieO⊗a!λ∀ic←/Kh cf∪βG
MH∂-$A⊃2∀∩BNN=y6Bε<b0≤8Q!∃∀⎇DλBbkAQ LHI∩∧λε∀"
F@
RLπ(Aλαa5DQ!∃$d4λBc;vεββQ!∀$DλBe[FVβ∪β¬EE¬-*H$e@#"B)Yβk"dH**⊗→CE$g$U~X
TLNN D,73 @``~∀%)→4A⊂Xnn`@``~∀%∪ !∧β)(@2 h ⊂M9y$:¬EI∀`)5
#!∧fgk⊃P"⊗-K↑≡≡≡⊃dεDLISP ↔∧
≡N≠%Srh∧⊂(yαie@>-BBPSSG>@>5'∂→=∞|XYM(Vy¬ !'π∂|['∂1⊂∞≥zβQP@!33uHT⊃∃⊗⊗β$XM0Y#%β9 ∨6hh ⊂LYzd,@(⊂
*∀*∀FBα AOBJN @(0P 5DhRt¬@8Yd"∧βqH _SH∀λ_p∧gβCEβ≥a-"T)cP!∀li`∪G IN "A' ⊃αLqEBMαT∧LL,∀g↓α@
IFE PAG@∪≥≤Y6~∀4⊂ mmβ4∧L@R5∩(→α$m"H* λE SEGM¬L¬(A$
∀dX∧k∧λ3Q→I3R`_gjg*⊂i)P#∪βR DE@εZb`
~∀@@A¬i%'∞βiv~&∃~R2x1∪@8tSpi4λεP!⊃hπARE RELO@πβ)∪=_ ∧Q$αααλ*5M≥8p∂'Y⊂∧f'Pβ
∀~)∪→E¬~Qh~8U%Rλ⊂↓⊃ ∧]dSαIBDSETS L¬∨9mR⊗J=∧z0∩∧X∧TI@i
MH∂-$A(@24JJNRdz_hαB3)@hεEI TT →
%%')→=%@8Ir∧tz@λλ~α*"fT*⊂ ∀O PE@%→_∞J4hP&NV∀IαRQe~R$β∪b!↔h⊂
$∩iP i∩h∧@⊃≠∃)∪εA¬(Aβ'M⊂⊗
@¬'β%u'β'∂1⊗~(K BNQ¬2~@⊗s∀e:β!V⊗∀d∧IST][GCBMRK+G@π¬-πt~∀%λε¬≥λ∩4f%λε⊗)L)cf%CE 1A' ⊃αα;∀j@⊗p lK⊗(ilSa'f.VβGCBMRK ↔∂
NfmjNfN<b,4!⊗∪¬≥D ∀5~β⊗s
5i⊃TeE∀3∩*:α.`≠G@π¬≠∀Y.≡∞∀~∩I.<~∀≤~+T5≥8yDZ@⊂R5
1 ¬∧XL)j⊂$Q,⊂[FX, →#→∪1:αYUm\x8$m∀8π1K
qs∩eHR5∀aQ@∧X@0SPλA∪→_Y7
0XY#
1_∞:Vmj`≤<8)U∀]XiE≤<β∩`⊗⊂αITS
묬∞H$ba' ε∀rK8$`%λε(a∩c`∞UM][GCBMRK+G@π¬π I3¬≥≤:2-H)∃%_Q!∪¬8¬λλ$jεEαXX ∪T @
1αb`≤5α
`∩∀ ∧LNM,,QFIXNUM]
∩bβαN@"λiEαe8iBZ%λID@)+∀(i⊂πg
Sn@
10S@(↓ ⊂∀(K BNQ¬~@ (!⊗∪¬≥Dλ%¬_Q!P@!,,∀jD∀piK-R,&Jh*`∩,,QRANDO@≠:4⊂λ%E¬~QαNβ⊗ h⊂α, _∀h∧ @!→&P∩ne→-∩~α55¬-%EE@∩4uQ ¬∧XL)j⊂(⊃,⊂[FX+P@+HXY#
%1≥+≠t~∀%λε¬≥λ⊂λ#∪⊗-c&
h*`∩,,QFLOL¬+≠hh ⊂hαR3F⊗∀h
]αd))&H i_@,@¬)¬β9λ4!→E≤Bλ~#
@∀q1iIqk ~CE CAIHAβHbP∩
4∩R
LhP%α**5"∧α3@_L)\εEαdπU@)M)$A\
N∞≠$¬ddβtu∧
p∧$f⊃P NITIALIX¬∪≥∞β
&Q∧∩2>∞]_4*@KQP@!10$U⊂_VεBαIN "A&pt~(~¬EαV 4xT∧+Q0 )QP!)lTicFEβ@
P~∩ `≤,h@@xH∩1HT⊂λ cR`εG
αλ;@∪≤∧@∀@*⊂@∩)@$i'D BINλ¬(rA∧
∀MG⊃P@! ¬εE∩`∞IN↓Q$t&h e ((⊂ ⊗⊗β-KN∞@∧V@Ehε∪αbβ∪pJHβ)U@1X
∩@.≤*Qα⊗αε <∀I~5"lI→d\Lhp9pπ)dSαG A∩@β&~(∪⊃¬%i~AαX4bQα∩4⊂λ&ε|∩*9αλ¬B@e,#"A→αgk"RP#⊗'PαTF@&4⊂λ&6⎇2⊗ *λeD4Tc"A→αgk"H ε,[5↔⊂~>⊂¬Bd|*AE@Q ¬∧d∀)(
A,(F)
λ∧∪!-~" αα¬DL↓U⊃4I@ε@
ALπ¬∃≤βX@9hε HPβ"R)@$i'α∞α JSP @Y∪Iβ⊂~⊂HA`≤Li~DLI≠$
∧∧P '⊃'`
NUH¬HA≡⊗t"JεR⎇⊂$λQ#$L↓R5αλ→α$m"H$g ∀DRRU@!PA≠β'-&A&pε6⊗6⎇∩d4&⊂∧A33uH∀⊂
ε-Th∧DM∪K]~∀@`@∀&lrP∀*λ¬b!#FTeh
H∨-∃~Aλ→%≠β'⊗4⊂
&~pε&@%5K0h⊂α3#J@"P ∀,Xπ ¬∂5&e 4hP& ,zhTj∧AI∀l
90A⊂Hλα Yβk"P⊂T∧[@'∃)≡AβHbP∩thP& ,zhTj∧∃J¬-∀_k⊂hPα+@J(α`e@,Y⊗-@.,¬'NαH∩be9I∃≥∧y{UhHα.thZα⊂ ∪TART AD@ %M&~)α∩P~∞⎇∩∃↓r,r∩2~:α]∧_z4MRT∧/Kuαh cS'cD]Q&*`∪H PDL PAGES
∩@9(
ε2,(4(∃jd@∃1(`iadVα \:≠IH
∪)%β⊂∩&T*⊂l4Ubt4!→T`:β"P K-`
RST BINIPλs:$∩∩`.≤b0≤∀(Z"∧Li~Bb¬9→d8(∪sIK(β"A→αgk"SP V$SαITIALIP∃
$∩∩`-∧r⊗⊗⊃∧"0~∧βsPhQ ¬!$SαIT9: (
-β1+
A\
N∞≠$¬cQ8→E∀01⊗$ 3R5 _3∩6HX∧¬FE↔,¬~∀%∃%'"α∀Li~CHhαW"!↔q3Q∧ qH∩(iH∩5
1 ¬$c∪α D2@Y6~∀%≠⊂≡Z,I↓E1t2"NHaP@!33uHTλK⊗f5α⊗"g∃+"anCE SET¬ε~(∪'.Mα0∩¬λ∧v*:β"B∧ TTu∧¬Jh FBα PUS@⊃∀↓ Y!-∩&~@⊃⊃⊂K\α9H∞|αP ⊂@U`'≠JβS#∃¬~fOS,¬R¬ε≤|W1 ¬∧Pλ)b`∀ZM ≥∃ '3~∩$∩∩`-∧εFF.βH⊂~~0z⊂ &lpgQLA`∪#*β@∨Nβ=_,!α@
MLπ ~∃∧ 2n**5"∧)→dM∞7"!⊃,¬af∪βBBER INIT, SIN@π
A∨9→2@~(∪⊂⊗>4*5α¬dJ0∀MI_∀dMαQ"!⊃,¬P'⊃bb⊂"∪β @∨≥
~(LBJJ>J↓E %8~494¬⊂.∞βI`≥Sβ#'πM_∞L≡~;p↔λ ∧one
P→:4⊂λ&N\JB∧Q($L@R5≤Nα H@%I_∞%↓α⊂`iadVα \;Already initial@%uKH~)90∀Q!∃¬≤βu5↓Q@∧d S*#∧DB]i"j∃i'⊂*∪β S@+A%∪∨H~∀&U∩N@"λ)∀`)5∞#!,¬∩∩m⊂~⊃∧J~9α ε#@ ¬β≥` NIT1P∀A%_
&Q
9α&:M!F∃αLr&@#_⊂λ →β$j1@∧A&tJQF5∧J0∀MF→"∧Li~CZ →dM1H →β$j1G @∪≥%(c⊂A%_
&Q!α&:M!F
αLr&@#~d∧L@R5_V⊂ NIT2A IL¬∪(eλA∪≥∪Ph∞¬αLr&@#x λ →β$j99 @∪≥%)≡bA%_
&R{⊃α&:M"0≠~ →dM4 ⊂∩dεITE&~(hP4*&4qα#⊗¬E@1 ¬∧fPai'f∪βH∂ A8e∩_eE@+Q
AQR1Q$
p23¬Kc"B)@h"g TMPC,IH
∪)<b∩`.≤B⊗∞4
D`4∀q1$ 1H∃ λαi"P∩iP @
∩A)%'(A%_
&Q
P$%@4∧$dM8∧∞D⊂""k∩abP+R$adεBα LOOKP AQ≠!εY%_
&Q
λ%mαα9∧`:αf"2 k"PλαDEFMAX ≥
¬&DA∨8A∪(~(∩A*∃~Qα→i∃#
αC"A→αgk"RP*⊗(S$i`⊂ 0⊗E1∪' Dβ∪&A$BVMααI∧*∧β∩4j∧∀piU ¬M DEP
∪π∀~∀&lzP∀,∀
E"dβR3↓⊃,¬P Sα@λA≥∃ &A9_
ααα b¬¬)z∧-∃K⊃P@!2TTjD⊂∧g$U_kFEβE$g$U_h
: Lπ!≤β)≠!ε1∪~&$yH%@89∧,≤αh⊃I@i⊂ @(αLS@ h@ α∩-2&∞∀hP%α**5"∧α3R*F0#"A→α'geUh⊂ ∀MPC →∪9∪ ⊃Fλh ⊂J *%≥λ∩3I~α_`FBα MOVEI @(1#⊂∩Nαh ⊂LYzd,Jλ¬∃¬I4P0i@f@
IL¬∪(c\pλ&∞dzN∃ααIU∧~ββ"A→∀S∪$
λε$i⊂a`∂M ;P@+PA)"*αJ&≡E!↓
∩-2&∞∃⊂∧∧L@H⊂
$⊃P jj∪βL@∨β⊂A)"Lr≤4!→¬∀dβ(∃
E⊂∧g∧U_h 8π
∪0β+ A$B∃↓
¬α0∩∩λ∧∀Ih"`∩TY @∨@
2~:α! ¬∧e∀)j⊂$SαIT1X 0↔¬dA%!→¬∞⊃≡Lr≥α→`
$DT d-h⊂λ(∪α P@%=!⊗J%H4(Q)∀`)51'∧e#!S∧¬
OUP '%⊃αnε≤~&IαβAP@(8X 7\α inpπGC]9S]NAA!≤XAα{@∩¬λ∧∪D
<h⊂↔≠z⊂:4→P ISP sy@LACeKα ↓5↓∧εG/(⊂9l≥8π↔εBα\]
I@
∪(β
¬h→*5α¬EHC¬8Z@h⊂α3u*Ju∀@≠`iadVα \What i@LA`∪#*αBBdλl⊂:42H0y2`! p∂S@&Aβ@&Tε∂/Mx
|9λ⊂∪~v2y←H⊂..FBα SETX¬~A∧r∃,aQ L@3uQ$
λε-h∪αBUF,,P@≥¬UVc:4⊂λ&
e!αQJ d*1Js
PU1EV εE∧SdπVE R,[ (P`n`@αa2Bh*T5@#"B
85⊗PD
∃⊃↓⊃,¬g*Sa"`∩ Tπ∨%λL@ZA¬¬'
@@Bαε 4@λ$
≤Tε∪αpβ"B*85⊗PDλβ⊗*∧B]c& QiP ↔NR@λ~∀ ∩∩%X∧β
∧λ∧Si$⊂π ∃M @
∨+9λ⊂∀(HH$%@4ε"¬¬)xr∧uYP4⎇Yh@hPα""!↔hλ
⊂⊂βMU STYLE
λ∧∩$HI`~β⊗¬∃Z$λT`(pπjg∃ ¬RED
∩∩$∩v@@∪↓↓
@T ,@Psu)@*"`∩DDλ
∀∩$∩∩`-β!A↓ p∧"∧3PsjYβ*"i⊃b⊂"*T$g#@2εUMBERλ
∀∩$∩∩`-β!AA@εεαbb∧λ∀`+(⊃∩(y5∀khfjViU)$g#H εOUNDλ
∃∪9∪ ⊃F⊂π LLh9¬ 9λ⊂#!∧a`dQP V/⊂β
∀∪
β∪≤A∧Y0~4hP%α**5"∧α3B*F0b"Nβ↑C OR <CR> TERMINA∀@&A¬∩ ≤=(⊂∪)X4H∪JYαa"iβE TRH¬
A0d`~∀ A∃'β(Y&pJQF∀HI`≤tt T`:Q(⊂iλ4Th
λαi&dU*"b0c*"iλ)!εEαa`dbH V≤XKα ∩w1 α~⎇*0∀ Q!α∧U*:B∧Li~C#"B$∧∃∪∪HT⊃K
εελ_βE (%)`⊂5⊗ NIT1E
@)I_∞∃α2aE@4PA↓↓ααID`4⊃K
εελλ_αDX@!∃%≠∪(αα∃∀_94-∀kλλ*j⊂'∪βPλA∀*F@,~(T @"B(∧ TTu∧ 3R5ε_@εE$SαIT1M8∧∪πβ%
AαXdfP_⊃↔5∀∩λiu,@Qβ"A∀λ∩TJ:α⊂↔+3
∀∩↓)%≡A_Xd`~(∩A*∃~Qα→i∃#!Q M≤αr4λT⊂s5*↓αE∧P∃)'' F,4
JRSPλA∪9∪ ⊃FXh ∀Li~CSαB0h→3λ⊂%DX#"A∀⊂p2)HαP @, ¬t4PI↓α**5"αβJ`→βE SUBI A,"a- α~(JαR2tλbc#∧∧εεβ"B$ 1∀⊂Dλ+∀B!↔p0pjYαjf U$g#@ @π⊂⊗U¬~Rf2*α& 5It¬∧t*X`hPα(∩J*uλ∩)@$j_aβE$g$U_eP~ @πβ∪
↓αP⊃ ph ⊂J *%≥λ∩3I~α_cεBα TLNE F,40 @``∩∩l@\D~(∩@@AQ%∨
A_Xh`~(∩@@@↓∃' APY∪≥∪Pc
4PI↓α
∃~Qα→i∃#!Q$L@R5_Q≥ CAIHλAααa∪Q!∩∧≤→→D*∧∃D#HhαB(∧ TTu∧ 3R5ε_c"B$∧λ⊂
&∪β F,4000 @~∀%α↓α&6αYDJ¬J@π↓ .p(ajfjS j"P∪αUMBER BASE 8
IMQLI D,10. 0⊗A¬_
"λ(∃≤*∧∧ _αλ
∀∩@Aβ ⊃∩A)(αa5 AD $4!∀αα∧_HDJ∧EER&λ∧ @)
∩@A∃%'PA∪≥∪Pc∧4TJ0∀MF_s@!0p2(T⊂+λEAα@
JRS@(β∪⊂~& ε∀@@ ¬∧P∃&-"P⊃⊗~____∧DNβBE@)Q$A¬∀A'>l)α$α1r*Jc"B$∧∃∀ShT⊃K!⊃,¬a`SαT HAT¬∃ααJt`4⊂ss)X4c"A∀λλ∩J:λ⊂
,IH
∪(β
∀4!∀¬%∃αQ(λe
α!↔t⊂ 'R⊂ ∞@+5
-$λd`:αg"εBα MLπ ~∃¬"Q2⊂HI`≤∀~8Rβ¬`∂aQ@∧P&SβP
~ααRQI~¬∧s⊃Q J¬8ZE@(H⊂
* ∧
JRST INIT1B~∀4⊂
&:M!F!hM~.&Bp∧∧9αj`⊂ ;@≥%)⊃⊂∧∧$Ly~E~∧βStD
v3Uλ≠λ⊂rλ~Tc"A∀⊂¬)hλ*⊂INIPλc
4⊂λ&∞J1α¬b∪∧4!∀∧823⊃$λ+λ↑AQ@∧P⊂∩))`∀,∧Vd~(∩A',∩%α¬b∪¬ *(⊃P@!0p2)D⊂+λH⊃ ¬∧P⊂βAILE A,"Z
∩@↓∃' APY∪≥∪Pc
4PJRJ=∧11P4PJ*JNα@L@R5_R∧¬∀~)∪⊂~& ε∀#Pα33j@ ¬I T,P@≥¬U⊂∀!~4\MλT∧950λ∧B]X⊗⊗⊂b")"TiP'cλ!`
@*↓!!9¬~RJ&t84(∀λ4m1⊃0d
λε∧DNβC@≠,"⊗
ααy∀dbλ9t`*Q0 *λ P ∪TRING↓)≡AαααBBd
t`:Qβ"A∀λ∩Tj∧∃∩)@$j_bBDXFAIHλA∪_A≥∨(αα¬αZb&⊃α≤jUαBα `hPα2∪
+S(∃¬I4⊂λ'F@
HRRP∃~β(Y&¬α0∪⊂β"B)*Tp
2dεITE(λ (αC"I→β$j1@εt&$b0∀rλeC#β∧∧ε↓ ∧]a⊃h∧TER BE SLπ⊂⊗∃∧"&≡~J0hPα(∩J:λ⊂
,IH
∪(β
∀$Q!∃%∀hT∧2cAQ J∧αTTjD⊂∧g$U_bεEαh∧RZE @Xhβ$%@:
$`8tP3)X4H∪JYαa"iλ εOUND8∞~∀ A≠∨-∀A)(Y⊂∩∩`.∀
N∃↓α⊗α`'βFE∧SdπVEM TT,IPP@≤d4⊂
&:M!F@3!→T`:β"P*$h ⊂N1
∀∪!%→5¬!2&:M!FM4∧b!↔pr⊃(eP ∀O SEE IF @)!β ⊃αα
∧`$⊃0$Th∧S
H∨-∀A(@2MαB9HhP&"J∀iαQI→dM4jf1 ¬∧i⊃`∧EASE TM⊂@εX~∀%⊂∞B⊗pεR6B~b&4~Is_hαB( *tλ∃¬I3R5ε_ εE$SαIT1X8∧∪%1ββ'
↓)≠!ε0~¬ 4KZ⊗ 4D t2∧α1Q$
p23↓Q@εE∧SdπVE @εY7→Y%≥∨:4⊂λ&N-"`∩∧∃AP@)3R5ε(,¬∧iQh∧Z B,λ
∀∪1'⊃εAλXl4PJ*V6αλR∧∩I→dMPC!∧dfjS$P @,THGH
λ∧∪∃%M(A.Lb"<β⊃∪@8S∃4i∧⊂∧$cR⊂)bcSbg ∀
λ∧⊂∀)→dM
p ≥αdπU@)M)$A\
N∞≠$¬cRHh∀L@⊃1⊂∃'P ∪AT¬∃αDJ≡!αα8T<@13U∧AαE..CE$g$U≠a≥∧SβP)'Q$A7βM∞&@$C@$α NITIALIX¬⊗⊃ h ∃@↔#"A~q0
-λ*⊂ ;RECAH 1¬""εQ∧ α∞J,2Reα≤z∩*∧∧ ~H&`ebTP( ∀LLπβλA!β!!Hh ⊂LYzd*¬J@X∧40700 _Ymβ'π∪hA0∩Nα8∃ (αP ∪YS:MACLSP
\X 4hP&BRdzε⊃ααA⊂K]8¬∩(eP ∪AT¬∃α≤z6 ,→hB∧Ld DL@Q(⊃(I5∪tAQ@∧bl∩h∧ "α`4*@Q↔4,@Qλ∩(iH∩∩*81s1)@*εEεBαIFE HISEGMEN@(αb`_hαB3jZα)`∀R [ASCIZ @8hI∪≥∪Q∪β→∪iλH~)90∀Q!∀-Dα5⊂T∧
JRS@(β]∃¬Mα~*hI`≤,h@λ _Q(∩ ~q1s(Yβ*εE↔DXEND @∨↓∪
≤AMβ∪_~):∩`.,r⊃αxd∧L4dλCQ!P@)3R5π↔,¬∧e∀)j⊂&∩ih#gCE
IFN DD`Y6~)∪⊂~&$yEh∃i∀`8R3@⊃Q@∧idV!$j \L@∪'A8@~∀$`⊂∀)→dM∪l@≥αTεIOBIH@~(∪'&D∩&@"λπ∪
:↔λβ!∧XεE∩dεITO3:∩]%_∞
&ph ⊂M9≠∧)5λ↔λJp¬`≤
λ∧∩`∩$~∀4TJ0∀MF~∪@!4r6λ$j⊂.⊃ ¬FMAXXλ@~(∪'&D∩&@"λπ⊃H~wλβ!∧XεEαXεE$SαIT1S8∧∪'∪a
&Q¬b∩,iX∃E@λβ"A~p∧l!∩h∧ @9→β'8@4⊂λ%@hP%AHH%n~Lb2,D ∀`$∃r5 ∧~8λ8≠_V⊗ )ppn $4⊂
t↔8T`(λ∪qD 1S@_ε,β"AQ@↓Gpπ'j∩`∞ITI@
∪¬M A&pB∀" →dL∀F⊂\@∩3B
D⊂¬f$SαI1 KLINI2
α~∀lp
mαtzR*λ¬∩λ~α⊂ ∀HE CECLπ≥λ↓α!α&9¬""* XE≥≤_x@$ ⊃0 "λ$iP H)"`fλ ∧OLLAR @'%∂⊂→0hQ`≠[4
tD↓3⊃(
I⊃(∪jI⊃0 ⊂∃+`∂ AR@
Aβ1)≠∨ ⊂
MmααI¬-~λHE"¬yyb=λ⊃q*D∀ptH~βbb!
~∃9_∞R→a¬#Pβ"R(iH∩5
5α-FEαP⊂∞VALUE [ASCIZ XλtXb&NA∧r0≥" →dM∩03 ~Q1∃
4q( _β$j$G)≠
XP
~∃t∩∩@.,r⊃αxd∧L4d ∃%_Q)∀4rλ@F¬⊗hβ!∧d ∩RLπ∩@@
b`≤
89∃@$↔∞sM}λ∩3I~α$`f∩i"b*8¬se I@
∪(α"≥$lhRr`(Q!∃¬≤βu5↓Q@∧d S*#εE↔DXEND @∨↓∪
≤A⊂d`~∀4⊂
&:L∩NAhM∩⊗B⊗
!α2J;∀m~βλJ*⊂sU↓⊃@εE$Q'⊂"10,[
α0⊗vβYαJ>-"&tT
D@4⊂r⊃(eP ∪EGH≤PA¬∨+9 β%∪∃&P⊃αλr⊃α_d∧d⎇9→d:@β"Ng]P ∀DLL LOSER HLπ.A$qα↑→`
y5∩→I3R`⊗LX⊂∞
αINH@¬λt∪Q!≥≤AQ(Y'≥↔'4hP%α**5"β∃bHλα.ui_βεE∧∀bj'P⊂T∧
H∂ ⊗R≥"I↓λe⊂HPα3u*Jq∀@≠`iadVα \ SEG@≠9(A>pε∀Dλ$`:3Q⊂*++H∃λXε LI@
⊗@λP∞N⊗αG"`+↔#"A→βj`∀STR (F)
∀∪=+ ∩NαJ"¬\~84M∩λπG..FEα`g"$H**⊗)Qc`SM
∪α⊃ ∩A"bN⊗≡≤J`⊂hαB4jXR(∃¬E∃∃∀CE H∩LZ @)PY(~∀%≠⊂≡Z,Iα"FaP@)3R0HF(
∧iQh∧Z T,λ
∀∪1'⊃εAPXf~∀
ε∩∩JαQ1 h ⊂LzZD9∀H∃↓P@∧igR π D1∪⊂~&∀!D4!→u-∀p
)λ-`iaRm⊂ ≤"
P→:4⊂λ&*∃~Q↓ED1$4!Q%hHα.q)@"⊂'cλ$c'1_XεEβE$c'λ$j)V⊗β
∃∪→
A'≥→∨∞Zβ E %1⊃∪@:P4R)@jiP(⊂i fbU ¬RS @¬+∪→PA∪≥$yαV∞|"∀4)_dd(∩∪I9α'c@-5( 6~(~∀`-Xπ2∧\β _L⊂ NIT ROUTINE
λ∧~*\b& 4~@∞A→αgk"H*⊂[5_
N⊗=→12≡≥~R`(β"RiI3R,'∧fgk⊃P"*,(T ∩~)∪
≤A!_
.Ixr`MIId`$∃∃⊗⊃aa#'Sβ+GCBHNK
,¬→'∀∩∪)→9_ αR ¬D<≤(it`1 ¬∧P∩))`∀KH &tIH (αB4hZα'P"∧¬∀∪Q→≥
AQ(Y∂π '3~~(∩A6⎇2⊗%α ¬C@ ¬∧j∪'"P*∃⊗#aa∃αC
MOVEI D,1
∪)1_
*λ¬∃¬Hβaa)Pi
MOVEI D,2
IFN H@≥↔1_∞≥K1P@!2⊂ )⊗α R,ST(T)
λ∧∪)→9
A)(αb≡∞
Dr,4$∧ααβ(I∀2¬9Yu (αdP"∀)∀nLT∧QHUL¬⊗b~):∩%\*0∀λ∪qD 1S@⊂∩'%f'QF@
SKIPGE @λ~∀$@]-β1+
4TJ~9αDr. $βq`⊗αh∧@→4↓)(@2<~∀SsjhxpR∪I1 ¬↔"S)bDDU&-⊂*∃⊗#aa⊃'`∂
P 2zαRQF εελλεBα DPB @λ@2Xε3≠β4∧¬E∃∃↔!Q@∧fgUα@~AQ(X@"α@
!QRs∩)@$Y≥∧PdπBJN T →↔1∪⊂~%λh ⊂LYzd*¬EK4U∃8¬⊂∩d∧GCM1]~∀%≠⊂≡Z,iαQHx4m∀4∧β!∧fgk⊃P*⊗-R))b KH ∂πM(∞t∀PJ6 =hYR¬"β⊃pj:βhεEαTεVALUE @7¬'π&RαqhnLr&B_→DMTX@λλitH∩iE,,εaQTε.FBαλ
*hH%n⊗t!α>→∧J~2∃∧B0∀\β∪qeVα@
] 0↔9λA>2α&~∃¬~⊗≡Ixrk⊃Q%hHα.q)@ ∧ OF IFN↓∪ ∩LhP1nIz∧$b It5EλIB∧dβttλIλ∪∪hi∀⊃∪∧λ3⊂T
1 ¬$c∪α D1@Y6~∃1_∞B∩ciuIAα↓P@)⊂πc,∀ ∧@_zβiEA@hR2>NαλDc@,εZ0
LOFLPDL==10
AH ¬!Lzzn`@`⊂∀*≤ ⊃αεd∩BMuβX∀d∃λ∧jfFλλεBαX
$KZ⊗ 4D t2∧α1SDλα_XεBα;XLA@¬⊗0hP4*NαX%%$βα2λ→4V(λ→α HA@π⊗A≠¬∞J<hP4*∩,2& 4Tλ∀l
84∧
@⊂C"A_4pr+⊂.εE⊂Pa∧nβE*"i∪dgεEβE""c∩dεE ALL@⊃β
⊗A1→¬
,EJEαdβP3(Uα)`∀DAH εY5∪⊂~εd→2-λ¬∀H∃α+d"T ¬,NWH@%
4⊂λ&N\JB*λ→Dd@εE∧R))`∀XLABDLλ
(MαVN $¬αd→IE%LqQ LX~44⊗p
(λP⊂g SbP⊂≥ ]\S@)⊃β⊂∩hP& ,zhR∧
&⊂`iadRP.' Sbh]
λ∧∪!-~")αα¬D@⊂ε'*SF@
SKIPGE A~∃a→β¬0pλ&6⎇2⊗%αλ¬E≥⊃⊂3λF@
CAIGE A( ≠∪9β⊂∩hP& ,zhTJ∧∃ITL@P3⊂aQR1Ti@⊂"`_TRA,, ADDI A( E"J∧Q!∀E∃)P
@∃r⊃*(αFE$Q)`∞ NTπ⊃∀)12lhP& ,zib∧∩H⊃P@!2⊂ )∪P!⊗'∃βHE@%∀~∃ 4hP&BVα9∧R¬¬H∀ddX9phUHZ$lLaQ c\h→4T≤βλ⊂)I⊃H⊂)→β#$fλ j,cλ& CA@π$Aβ1%$A¬→→)3<Aβ)3=∩Aβ→1π=¬~ε&2β!αNεM↓EαNJAIαα8∀Mβ4λ∀deK→∩∧
I⊗"∧
I⊗∩∧IJEL~λ→D@93uβ!∧¬
SU@¬))_%β⊂∩Ix2∧Jyt¬∀⎇X¬∩)@"iFEβE_X∩H f&%⊂βL: BLOCK80 ≤∩m
V~4*IαVα∧∧T|$λ4`9303HD⊂ε$g⊃P F THE@%∀A/β&↓_∞:∃ph ∪∧T∧@∩Ps
π@∧V@1 ;ALLLπ.A∨9→2A∨9
A)%dA~>⊂∧∧T≤βλ
)pH⊂i@ff`g⊃⊂ INE)~∃→β↔*≤a`⊂K↓↔4`)pπ⊗m⊃i'P&Q`g ∪ LO@∨↔%_
≥α4zIα→i∃"∧i→D*@λλλ⊂∪b`g)H%!f⊂⊃$f"FBαALLF8∧∩`∩m_
>e[$-∀tλd`:H⊂ j⊂dεDAR@ ALLHππβ)%_∞8Q(∀L@QR3π∧X∧]SαO@≤[9∪⊂⊃αl*ε 54 D`81II4pλ↔λ∀ NHT) FIL@
Aβ→)⊗I∧
22x9∀`(c"P*K1H
∧∧XTTYH∂
↓
∨$A¬→→>_h ∀dα0p(i_
0 ;@→αM(A&p
¬-⊃1_d i5'P f∪'aP+PiP @0βR +XP⊂≥<> YES
ALERR 4∪M)%(Am'∪ "∀JQαr<⊃α∞εdb,"λj$`9(⊂3 Iph$ ⊂πibK⊂ ISP @∪&↓ ⊗ε ∧∃e@#"B%+ f*QF@
α0⊗vβX&B⊗α9∧R¬¬H∀deK→pHKαt∀I_β*⊂ Ta` Z SP %∪9∞A
∨HAβ→→=4'0∞gDP⊂_~pr6Dα*"l∃↔↔↔.α]`∞OTE: AS@π∪ )∧JMαizB∧Ld2αre`
Jα⊃Q h∀→IE%Lw!∀E∀I∀∧
@
_
β00
H@→→4AαXQ@R~*
"f <↔!∀L@⊃⊂@_∃α∀ ⊂)
∪∃U≠!
A∧Y!>∧QD4!~4\M `λλ~α,cεBα P@+M⊃∀Aαbε $JK∀1 ¬∧e∀)j U,gdFBα
∃β1→⊗∞{P&N9~∧b∧_i∀e∀AQ M≤αr4λT⊂5⊗(aαE∧h∪βP@∀A@X⊂∀(MαVN∧
αdλβ"B)Yβk"P∃*⊂A
λ∧∪⊃∃∩0≤Jλ∧K
K3c"A~∃0 d∩⊂(⊗(∀$g&~βA POP P,A
∪!=!∧Aα`4*&4qαNεLa2l4U~ε&2β!`⊂L8→∀`$⊂kf! ∧]`H* LDE?
λJRS@(↓'β∪ D~∀&≤
& 2λ5CmB"π`P?εBα JRST SAIP2~∀%∞ε&*α~c⊗p
!⊃,¬`gλ f*&SβDE
JRST SAIP3
∀∪5_∞Z⊗Jα~c4∧c!∧e))U⊂)`dT→FE)Pdh⊂⊃: H∨-∃∩AεXDh
XQ!∀U∃8¬λ
824aQTp2*εH¬∧fSβVEI @εXbnβ(4*NJAMhM"Jj∃∧→1YAαA`≤≥J)B@910
KβBOTH?
∀∪Q%4Aε0b`⊃@hP&∞εLqα
F⊂F⊃ ¬∧fSβVEI @εXdb4⊂λ&∞J0∩∧5F∪ & εE∧SdπVEI C _dβλ4(_8∀L@H⊂kε⊗Mc"A→αgk"RP!V→
β
∀∪
β∪≤AXbl@8h ⊂LYzd,Jλ5C∪8Q!∃∧⎇ $¬α`Q+PK\YhB∧|d ∀4rλ∧p)→αεEεBαALLTYI0∀~)∪
≤A%)&@2Xh ⊂Ji→u"β¬H0HKαprλ→β'"fλ'*fa⊃i⊂#$S&"b2dε
] ;END OF IFN ITS
∃∪→_ α⊃λεαeXQ!∧LPr∀JP!FE∀`R∧h∃i`λJ P,SAILP4
AOSG L@∪π¬∞HQ!∩∧U*:B∧
I⊗⊂hT~I∪∪Pα0p)→β⊂!V↔&@
SETOM L@∪π¬∞HQ+PK\YhB∧|d ∀4rλ@&↓αE$c∪α D2@Y6~∀!!+'⊂β Xb~(∪!¬∪8~∀&lzP∀,∀λ2bC∃⊃P@!;ALLRUB ALL@≥+4Aβ→≥4dAβ→9~dnA¬→≥~@~αε $βS3i4⊂3∀k_4H⊂)IS14Dλ3∪∪HZ@εEεBαALLRUB0∀∪A+'"RαA2εdbRf<hP&εN≤J`∩¬KhUββ"H→α NUM:∪'-∪!∂
↓
2ε4J2J⊂KZ≡⊗R~α¬αjYT(αi⊂#∪βR @'=≠
A≥"0≥∀_xR∧
(X∩¬≤α6Q!Q@∧e)∀h∧ ALH¬~b~)β⊂∩:hε#@!2U3* H⊂kλ→α'&@24ε~(M~⊗@$tλ∩`@ ¬∧h∪βP@∀A@X⊂∀(→D`),M`≥αd RZ A,(C) 0↔'∃β%π⊂β)⊃
AIβλA%_ αI~5"¬It¬≤,QQ LE*+"∧~β
⊂e⊃,¬kd⊃h∧HER L@∨'∃$A"
→αRJL*⊃αRzαNB⊗≤J~dQ!∧U,X∧⊃$λhε f∪'"`∩ 8πβ→→=∞εRLz0∩∧iz"¬$α∩4d
503JI5⊗#!⊂⊂∧iRdπTTA( 'Hh ⊂J *%≥λ⊂3
;10 εBα HLRP∀A∧XQαR4⊂ ↓LBJJ@$λ∩c
λ⊂
!Q@∧d&∀-⊂ i V∀ JF@
HLRP∀A∧XQεR4⊂λ&∞j0∩∧~ %E⊂4@→⊂T@
JRST ALNM3
∀∪!%% )∧→1"
Hh ⊂L**5"∧→Idk⊂β"C! f'&L] MOT¬∃ααJBbD∃⊃⊂K\xZB∧uYX$-∩ →e$zλ¬∃↓Q@∧ieSβP (A∧Y~0HI`≤Ldλdd|~I∀`(βP!gSαVE@%PA)=∧2&bjYPhPα(∀i94⊂#!∧P⊂(∃i`λJ P,FIX2λ
∀@∪'.⎇"Qα¬d2`$↔9∃~∧α5⊂⊃$hλNUM?
JRST ALNMER~∃¬→≥≠∨,pλ&6⎇2∃α¬bB¬$Q!∃∧⎇ $¬α`Q!P@(3∀v(ZL¬∧fSβP
∩↓λY7≤Jb
& ∧¬dty`*;30SiD⊂3∪ @a`j$SβN AREA!\]
α∪∃I' ⊃αb≤e&⊃P@!αE F∪αME@$h∪⊂⊗>4*%α⊃eZN&@λ)∃"¬Iit`%1R6 @*fWc∪'`∞UM ALLO@πβ)∪=_ αF,
0∃$α5⊗$≠↔#"A→TTu∧λ3⊂s_@
λ¬β→→9$`(Lj0≥Q2(λE⊗p dV!$j XODDL@≥∂Q⊂Aβ→1_∞∞ε$J0≤rλ9tl@13U∧≠↔#"A→TTu∧λ3⊂s_@
λ;ALNM1 ALH
~cαβ↓⊗∞$J≥α∩ B≥DQ!P@(3∪S&⊗@∧fGUαS@∩AλXh`@β↓A@4P@∀l@uP dH V~000 (8π∂"α@∀JXR∧TSs$
∃⊗#! f'&L`P~ PUS@⊃∀↓ Yβ→1)3∩~(∪πβ∪∀Aε@1λε HPα0p)→β⊂!VX¬
λPOPJ P,
λ@πβ∪
↓
1Mα1∪@83∃→Yβb"P∀`h S ¬ >t)αε2dz≤LhpλAQ@∧e)∀h∧ .,f~(M~⊗@$yP@∪⊃C!∧h'h∩⊂(⊗εBα CAIL∧AεXλXλ4!→T`:Q(⊂%H@εE∧SdπVE D,RCT0 ⊃εR4⊂λ&Rdr∃α⊃c P≠β∧∧↓Q@∧h'T%⊂ ⊂,
α∪π¬∪⊂⊃α~a∪Q!∀823⊃$λhε⊃9
∪∃I' ⊃αb2JV⊂h ⊂MIK"∧
F@εελ!∧j&-λ!⊗~0000 -λ∧∪∪≠U→∩AααaE@4PBε∩∩Jα¬ "T ¬λh∧FEαdf`∃LI B,10.~∀!β ∩↓ 1T ¬λh∧FEαe))jλ f'&L`@
λ¬∪
≤βb`Yl~∃
∪∞t%'↔&∧)αεRL04λ~ u∧∩λ∧↓P@∧e*Sh ∞ T,@ ∪≤b~(LzV@$9
"¬\~84LJλπKαFE"⊃$cX@: JUMPE T,CPOPJ
λ∧∪∪ %(
%ααECQ!¬¬-9
αeJAP@!4⊂
iR%⊂ ⊂,D@π %∞~(Mα0≥αλ∧
Jβ"Bλ_⊃∩(
Jλε⊃0
∪∨U)π"⊂∧¬% Q!¬∧⎇ $¬α`Q+PHKαq3HD⊂πc⊂∩c'⊂"XεEα≥`f'Q$f⊂ S'` N ALOFL2 ALHπ∃π_↓β⊂∩>LqEαεdz~1Q∧
2>~c αε2|21Uαb <4Fd∧@⊃Q⊃(aαEεE∀h¬BTTL ALLHπε@Q%⊂
&QJα~&2*αJ>⊗αI∀`(4c"A⊂P3∪hi3∞C!ε@
IFH∧A&%→2l4P@∀l@uP dH!P(∪IPBIT X '-8R4PA 5≤X∧q*D⊗kTK
3P3(Tα⊗ NβA M∂T¬
A∧αb`≥≤α6⊂I~α⊂ ≤LISP@9t~∧%u~VN⊗αD¬@5TR∀i@ fbV ε]
AH ∨∪9∩t%t~ε $@λ∀d|iF`HKαq∪hZh∩3I~α⊂#$S ¬ EXIST?
λ∧∩A∃I' ⊃αb ≤4F!P@!2TTjD⊂3∪i→β_DDNβELSE PROCEED NLπ%≠β1→24Ph ∀Ixdc∪αB0h→αg⊂ K-idl⊂αIT /*/] ;AH %¬ 2A%∩&⊗⊃αQ)`8Q!α∧U*:B∧HiD-⊂α".k~αh⊗⊂⊃dk"P∃hεE∧SdπVE A( ↓β1⊂≡~1⊂H%n⊗e~∃α∩∃I↓)(hP&*J≥!αε2|J0∀Hβ"C! f'e⊂βL: .@πβ→_↓β⊂∩>4aP⊂Hα.q @biP%⊂βL FIL@
Aa∪'(}4⊂λ%αU∩N@"λ→D4dX∧B!↔pπ'h⊃T∧ ERROR
AH ∨∪8bt&hzP∀,Tλ2dLi→∀3∩8ed$5B.k_4kλ
85Q(λi3⊃( fbiCE MOT¬~A_Y∪≥∪%dW9'⊂~4hP& ,zhTj∧∃I∀`)21LE8KQSF⊃ ¬∧fSβVEM@∧Y&tJ&→I\10∀4d∧C! f'c∪~≥∧W⊂βL@∨'∀A)6∧→0 (+Q⊂K\YhB∧Li`M∀c"I_SH⊃ε⊗λε-FBα H@%10
%α~YE "λ∧r+λR5↔P)`/)
∪≠=(
∃αλ¬E@:p∧l!∩h∧/LISP ∨:4⊂λ&"α)E@)(⊂@⊗
)` XBIPλ←∪9∩P≥$hRε $βqSε↔@∧ibU-!⊂!K!P $4⊂λ&>∧*0∩¬IZ∧5α!FEαP
RST ALFL@$∩$p∞ 4tλDM≤αh∂FBα MOVEH
Aε,bP∩&tJ&→I\10∀⊃0εBα SETX¬∩Aε0~∀&lzP∀*λ53
@∀B"'cb`∀SPECIFIEDPP@≤~(∪⊂⊗>4*5α
Xε∩dLi→∀3∩8ee¬∧βC"A→α'geUh⊂ ∀MPC →α4⊂λ%αU∩N@"λ→D4dX∧C!∧fgk⊃d¬ A1∪⊂~&L1I.→t20∪λβ"B) ⊂ε-&H!⊗$g∩dc⊂∩+F.FNH~∀&≤b0≥≤T
Dm∧5AP@*p)α*(αf"`TbP ∀MPC _~):w≥⊂A∪
≤βλb`~)∪
≤A⊂d`@2Xh ⊂M99∃∧(⊂
"SαEP⊃ 4⊂λ%αα94M∧∀λ2e\~84MRλπ⊃
9w↔#!∧fgk⊃P!V-Piadmλ,∧P@'q:∩%\b0≥≤T D`:q($λ4p jSbP!gSαNECTED @)<@E!≠Q⊂@"B3)@hεEM↓
2→i∀L3%8b`(⊃0∧B]lbiK⊂)`k⊃P#$f⊃P ∞AMES
] 0↔Kαs⊃β?2α&~9∧!I@4PJBVN@∧¬αe8→D`8S
7!Q@∧h*Td⊂ ⊂,Xπ∪≥∪%
β 4hP&BVα9α¬αβ⊗t)@'b"c⊂h¬LT] ;DON'PλA≠∃%⊗≡*αP≤MI$1P5)Jλ⊃R)Hαg fQiFE∧SdπVNI T _d4⊂λ&*∃~Q↓∩,zB,a⊃∪@9βh"gλ$g$jλ εILE ARRAY
∃β1_∞~1+P& ,zhTj∧∃JdL@QR3λQ ¬∧fSβP
∩↓αP∩R∃*R 4PJ6 =hYR∧
JH∃¬∀XAP@!4q5 @fP c∩d∧RD
λ∧∪!∨A∀A X4⊂λ4)_d`$⊂∧j)K-FE S'c&≠∞α SETX∧~(M~&b
M!α`$βt⊃)@.∧D]SβPEN↓
∪→
4⊂λ%↓β)AAAbaH$↔9T`8⊃(
λ~pr2$λS∪pi4⊂∧g(∃h∧ ∩~(∩@@@λεββαβ∃ Z⊂b"'a`λANL¬⊗1α_4(∀∧ααα∧¬Bd_⊃↔4$5R0hQ ¬∧Pλ⊂⊂⊂⊂⊗ DDNβFILE NAME 1~∀$@@@@@X@2⊂H%n~Lb∃αh→T*β!Q Kλλ__⊂,F 0↔'9β⊂⊗∀hRun⊗t!α&~pε&@%1Q hSαp bU*h⊂"⊃`c ∃LT @∃π0~∃∪
8A⊃Eαb`_hαP3λhα"c≥αib`∀OM FAKJC@_∩$p∞*∞bα&Mαα(T@⊂ε,P⊃ ebFBα MOVE TT10∞εN≤J%αrdJNAαβKPK\HXd
3∃⊂∩!`: LIS@ <CR>
λ∧∪≠∨Y⊂∃ααJBe≤αPsλ*c∃@1
∪≠=(
*λ¬∃¬Kp4pi→(⊂∞εBαX :~(∪⊂⊗>4*5αR ¬E≤T9H%,24∧C!∧h'h∩⊂(⊗εBαX
∩w∃_
" _d`$⊃ _βE
;ALLFIL ALLFL1 ALLFL2 AL@π⊂∩Vβ$∧@⊂s⊗F∀⊂3∪
J∀h⊂)I⊃3∀↓Q@εE S$f∞α P@+M⊃∀Aαbε $βqR)A ∧]gT ¬N IL¬∪(A→∪⊂∩∀hRε $β⊃Sε↔@∧ibU-&P!⊃()"(βE PUSH@∀A@Y%β⊂∩∩`.α(T" →b∧IIt85∩3i@)P⊃!SβH≠9(D4PJN⊗RTiαε2<~_ (αB2 JT¬⊂!∀ TFBα CAIE B,Q$C@∨≠5⊂~PhP&*J≥!αε2≤bVhQ(∀ddiF#@!2⊂ )⊗α A,(A)~∀%≠⊂≡Z,iα¬22& %(A⊂K]8~d*∧α5⊂
a`∀UAH 2Jaα&R~αε∩IHh ⊂L**5"∧→ID`8pc"AQP3⊂iJ4¬≥∧SdπVEI @λ@2]~&b
M!α`$→ID`8h⊂siYαbg*λ&diiRdεG IL∧A&tJQα~Lb∃ε@KQP@(3⊂s_X
HRRP∀A∧Y-∪≥→∪⊂∩∀hP&N⊗αK$j¬i→d4LHQP@!4⊂
iR⊂# _P,@λ~∀%!+'⊃(A @1$~2>N(h ⊂M zα∧T∧(⊗⊃∧¬∀dβ↓∀&6⎇2∃α¬dJ0∀L_f"\2hicλhαL@_ Dfgk⊃P!⊗$SαIIF2+F.FN2λ
*M!⊂&6⎇2∃α→dJ0∀L_f"\2h∧sIQ ¬_@0$ MOVE F,IL¬∪∪HW]¬α0⊂@ ¬→0$ WARL∧A7<Bε@"λ¬∪dλα ∂ FLπ$A
%→∃αtzQα~⎇*0∀λ⊃4J)tH⊃I@i⊂"20 ALLLππ:~(∪'%R5α~Z*∞A⊃∪@8StPhT⊃0 )∪βR MESSAGE T@⊃∀zV≡∧λU (αg⊂$Q⊂# eRdεG J@π⊂⊂4PJ*JNα@λλ→α!bi∀∧¬∀~)∪
≤A%)&@2Xh ∀IJE%≠!~4-¬!⊃∪@:α*,iQh∧ FOR ALLLπε@Zαα0∀z →e$4TU*
λ⊂rλ~Th#!∧idl⊂αIT \TTYSETX ;SET TTY @-¬%∪β¬1&~∀$@@@@@XI)Q3∪@⊂¬42t9λ∀`!,¬ad⊂dεNEL #
, →7M))3αβ
t%@8¬∃~u#!∧Z____⊗⊗⊗βSTTYA2P~~):∩%\*0∀λ∪qD 1S@⊂∩h∧S
ALHEH @PJBVNDQαAH→De%→qP@!04pi≠H⊂∞εBαN :αα∩>dzB∧IIt85⊃(¬ +Q+D
4q(λHαc jS*)TFBFIP⊃⊂A¬ %α⊃0∩∩AQ"αα →b¬<α∩0i∧⊂p4hT⊂P4hT∃⊃3D 4h∃*81C! f&⊂⊃dεTRIES ARE @∪≤ααV*&%→α>→¬α∩AT∧ _λ+ci"∀UαE.βE JRSPλAβ1→∨ε@λh ⊂c\→Hdd4H⊂)Hq0 )λ f#&
α ALFL6A AL@mαβ4(Q(∀dS⊃4G∧fgk⊃dP",Xπ'&D∩&@"λπλ∧∧⊂∧g$U⊂#$f⊃P ∞OT @
∨+9λC 2hh ∀H8U∃∪αB4hZα-&@5 h ∩EDλ
(M~⊗@%)P
%%→xd0@ ¬∧iQh∧ZMTAP@/I(⊂∀!~4\MλT∧*@T∩⊂)@* ∂M
λ∧∩Aa∪ ⊃↓α⊂↓Q@∧`gTdε FAKJCL ;DID WE FAKE J@π_}~(∩A*∃~QαB⎇α)D⊃↔5M4λ
I⊃3@⊂∀e` P R@)+I_ αNzα≤dλD`4⊂3∪ @aFE∧Th∧RT↓0∞N≠λ$Mλ⊂∞⊂λ⊂⊂⊂n↔F@
IFL∧A&%→2l4PJ6 =hT∧
∪∃H`hPα33j@ ¬I T,"0⊗~(∪!+≤B)αAd
24FaP@+αDD]QdεD OF @∪
8A∪)&4⊂λ&6⎇2∃αε⊂ε∩dλβ"L&∧α@ MOT¬∩APXh`~(b`H∪5_∞@4Y∀¬"b%aP@!4⊂
iR%⊂ ⊂,AH
_X~∀&lzP∀*λ~#
@⊂C"A→αgk"RP*ε~¬
PUS@⊃∀↓ Yβ→→_l4PJN@%*@
D
#"J8)α0iJPQR!⊃ ∧]aS ¬AR↓∪⊂~BαZB∧∃Xhd-∩λiu∩¬8→∀`@ ¬∧fSβP
≥∩↓(X`∩$p∞N⊗αJUα∧iz"∧ttλ∃∀h∪∀jXTH⊂h→α
JRST QUIT 0⊗@!(
ε:Lb2¬64bε@4z(T"¬~Y∃"Hβ"C! f#&
α:∪a∞!αλ¬E⊂@ ¬∧iQh∧Z AR2A,
λ∧∪≠∨Y
A)(αb`≠
Fελε⊗ T_h
AH
_Yαt&Lb∩ αλ¬E% Q!∧U,X∧⊃$λ+⊂3λfP,β!∧`b"∩P V~∧¬∃∪PH∪β→→_mε@PI0∀Lz@λε¬⊂""'a`λANL¬⊗1α→α4→ID," →`hS⊗∧@L@u0
!R)⊂ FBα20$ PBOUT
∪∃I' ⊃αb~1Zλh ∀Hfdβ!→T`:β"P K*εE$U⊂∧ ALFL6Bh@]∪∨P@`@2λH%n∞D
0∀tYDα4⊃R3 Hαb⊂$Sα
∀bβ↓⊂&>-"≤E$λ⊂hS&∧BMλ)u-β"B([⊂r⊂⊂T∧R
P@∨!(A @0hP1m⊗b2>
∧
24HV∩∧I&∩∧I&∀
∧→I#∀λ∀dS_⊂Dλ3∩L(⊂ f%a_P S%_a2 ALJ2 ALJ2Q ALJ2A ALJ2A1↓β⊂∩&4∧*P3∩I@P f%P f%`P f∩_`X@ AH ) IαεeαB9E∧
2)Fλε2∧I&∀$⊂3∩F_LH⊂)ILH⊂)ILT →λ1Pλ(∪α @⊃β→! bA¬→∀fA¬→→π∧β αε2dz≤⊂β"C!)ja*∃&∧f`Rdε ALLOC IL¬)∀
≥∩3sDλpπb"CE
%AH 2|→`⊂hαR1I@⊂"_@0,[
λSETZM L@∪π¬∞H⊃↔4d
8¬→→β( ∃T C@⊃βHA)=∧
22x4¬ 84h∂P⊂βR -L¬≡B~)∪
AMβ∪_Yl~∀&lzP∀3(¬Jqp3H→α@ ;SAVE MAGIC STUFF FOR @∂$B≡ 4PB6 =hYRβ∃J4<HZ`hPα33j@ ¬M 7,SGAPPN~∀%∃' APY⊃E¬~⊗@ Q+PHKαq3HD⊂πc⊂∩c"P)PdfεEαd¬OVEI A,EL¬∩2M~A.B:N&@%P'fj`∪T @ =∧~JV~αK∩∧≤→H5,@⊂5∩)@dε BY HAND AS IL¬-∨→Y&~∀%β⊂~∩Jα¬ %λ_tm≤αb"'a'gf⊃`g⊂'T)P g⊃⊂)"f∪βCATA@¬→
AM3⊂⊗
|bM↓λ(∃∀H( ∀CE SU@¬∩Aααb⊗&:L2∧4!→T`:β"f@ A( &<~~aDhRt$↔8T`(α⊂'cλ$c' D10
20$ JSP @$αbR:@λ∧q*A ∧]b⊃a` DE BE@)]≤AQ⊂~⊗β@Qλ∃ @h)P∩@~∀$HH%mαr⊃αN-!αBε<)αε∞≤*NN_)∀dMK⊃P@!33uHT⊂+⊗j(u¬JPp
.CE BLT A,R@π ⊃9J$:α⊂
"4⊂
&~p∧∧M∀k⊗aQ@∧fgUα@
A%!2mQ εβαbβ
___⊂⊂+<8 ! 1_∞J≡zjBε≡dz≥z]λε∪uHβ"B%@!a&%H**⊗εBα .@-¬→+
~(∪⊂⊗>4)αRQeYQQAα¬Bc#∧∧εελ¬P≤<SPDLOR@∂>[Aβ∂2|9z`;⊗⊂∂KQ ¬∧W⊂βBLK↓)(@0hP% 5h→E,(β"B)Yβk"P∃*⊂[Ph``X0h``@β↓A-qd2bBz(uz@4⊂1iIqoWf⊗,π ≥
λ∧∩]π →⊗A%!0 (αB+J@ f*bCE MOT¬∃ααJBe[F@ε¬λε~0000 ,xp∩~eα0≥∀{uU∧yIt;uv⊂'kα@
,¬π¬→,A)(X4⊂λ%:αh∀e,QQ%hHα.q)@ ∧ OF IFN↓∪ ∩LhP& ,zhR¬αβ⊂lAQ@∧fgUα@
A≥↓2N
α!P@!33uHT⊃P( εP⊃εH~∀&lzP∀(⊃S
¬⊃S⊂f!α@
MLπ ~∃∧ 2mYHe≤H53
@λε#)Pd∧C+E:∩`.α8U"¬X∧λλ→α OC C@∨≥M∪⊂~≥∧
J,~1P@!2⊂ )⊗αM A0ZbQααH4(_→t)SH⊂%EK(λFBα MOVE A,[-H
=~ε $50%9β$c+Pd∧ _Y→(∞Nεd→-E.tJ~↑εeh4(→
%∃TTλ∩bk∃λ∩HhαB0)@a%'0T∧ ≤Zβλ4(→Yu (αP @,XεP⊗2≥Jε $50%E∀p`S!P #t~∀&E∩Jj5∧ 15ED $4!_∀`8RS@_∃α⊂∞-D~∀&lzP∀(⊂ ⊗⊗β-NIS2SG*SEGSIZ,εdV@λ¬Be≥⊗(∀d~αh .CE HRRZM A,-2(A)
∀∪¬ ∩%∧ 1DQ!∀@pRSDλ+@⊗L∧¬∀∪5_∞@4Tλ∩eZβ23HjPp ULT∧,BFT¬π&Vβ
t4!→¬∃∃αS _∃α⊗@⊃(A)~∀%β⊂≡
Tqα¬1p¬SλhαB3)@hεEI A(
≤
2$KZN⊗Q¬*AαBDz0∃Jλj$,,I~5%_Q!∀l@uQ3$λ+⊃QJ1 ¬∧fSβP
∩↓αP∩~αz4@⊂jsI_Up3↓Q@∧fgUαEM A,@
@h ∩α↓→T`:Q2(λ∃α)`→ALC
MOVEH
Aααb~5α#"A~q0
'SP f#PβF∩∩m%%∨HA∨+"α0≤@H⊃pd¬∃3U →α⊂#*T* λER NOTI@π
R~(∪'%R∩∧βR3¬H5⊗1AQ@∧ibU'`
AFILRD
IFN ITS,Xε~(JrN@-8ZB¬ZβP )SαAM,,TX
4PJ6 =hYR¬"β∃∃→1H ∃Q↔)g&CE MOT¬~APY))3=dW9'⊂~4hRt%@8Yd"∧βqH _SH∩*Jc"R(iH⊃_L⊗-FE∀`R∧iQh∧Z T,λ
*≤ ⊂&∩≤ZBBd
B`Hα.p*4∀q5∧λT∧P S$`iP⊂βO@≠≠¬_
⊂4U~¬∀_xU%¬ `
"`Q!∧l@uQ3$
λε**⊗dc⊂∩+F.P@!8~∀&lzP∀,T
Be%K→t3∩8ee¬∧βC"J8)"4hZα-⊂*∧¬
] 8π≥λβ⊂∞→αL20∩∧F⊂↓QR1Q$λα→_⊗⊗β
∀∪A+'!∧2bAK:4MD)~B¬@⊃∀rkKαFE∧T*id FXP,T
∪!U'⊂A
a XA]~&b
M!α`"+KPhT~@ ∧↓4⊂
iR⊂# _P,[SIX@¬∪(Ap⎇0∩thQEA⊃¬~¬∃MαVN∧λeEαβ⊗ti≠⊂R5∧α&)h↔,¬
SA$ PUSH FXP, @7M∪1¬∪PA0∩}⎇zr`(Q+PHKαq3HD⊂∧c"H ∧20
λ¬∪
≤βλd`Yl~∀&≤Z&B∃¬"⊗ 4Xε∀↓Q@∧P)Rdh @ T,[AS@π∪ )¬b∩N8π↔!Q@∧fgUαE @(10∞εN≤J`∩¬J
5e@"".iItq( Itq(¬T⊂4tjYαbP!SβNNECT@λAQ_
↓
¬→`∩⊂β"B*
4r⊂⊃,(⊗*βE PUSH@≤A→1 @2bqP∀⊃0⊗LF@
PUS@⊂A→1 @2\
N∞≠$¬bUβ↔#!∧h ∃SHN FXP,@_\β2∩&Ihε⊂hPα4∃*9λ⊃V
¬⊗p4hdh
\*X :~(∪!+≤B0∩∧hε∀¬Iλπ⊂⊗FL¬~Z@λh ⊂Mλ¬4i∧⊃P(-`iaRm(LSPX :~(∪!+≤B0∩∧hε∀¬Iλπ⊂⊗EXT ~b4⊂λ&BαZ4B∧hε∀¬Kp4pi≠H⊂∞∃↔,¬
PUSHN @
"αb19Zαj%~@,#"KP ∧]bSαD IFL∧Aλdβ4(~
U≤DαH∀¬FPU∪IYαεE∧SdπVEM A,VDEFAULT@~∀%!+'⊃(A @2⎇α0∃%K⊃⊂K\βt⊃)@⊂**,H$g ⊂UT AND OU@)A+ ⊂4PA↓:ZbV∀⊃⊃∪@950 jλ$ k"H**,P∃'P"'H f&'Pβ
∃∪→_ α~J2eXQ!∀l@uQ(
E∃∃⊗)@c→∃cαC@⊃β8∩w&tJR&εdJ`∀*λ9∧@SQ3∧ U30HZH⊃Sj!αE∧b∀!⊂ ∀,Xεdn`P``@1d
2>→zEhKαh⊂)I⊂πaSTP ∂UTPUT .IH∂(AQ_
αR%H4(_J∧$∃⊗f&lλ
_⊗⊂AFL6B]
∪ A αQeYI]AαFβαbβ⊂3λi
Pw!Q@∧fgUαE @(1))3∪_dW]
⊃β≤∩m_
>]∧"0~¬IλR¬≤→XR∧StC!∧b(!λ*⊂[Hh
AQβ↓12εdbRf&hI`~¬IλR∧Lh∧∃*Dλπ$gU∧¬
] 8π≥λαα&~9∧JRL4TJ~9αM"M %1Q Lz8R∧I(4eQ!∩∧U*:B∧I&0hPα+TjZq0
6β.ROPTION0Y)):4⊂λ&N-"`∀jλh∀\T9A⊂K\βSu∧λβ ebH%!fεBα TLNE TT0d``@β$%@9iu"∧HJB∧)zd*∧β∩4j↓α@
TLZNTT _hβ↓AA@HI`≤Ld
DD4Q( ~h∩PiEλ⊂
*T'⊂$jλ'c#⊂⊂c*"iλ)"`b∩dεG
@'='αA
¬↔∃π_$∩w:zα*> ∧~0≤@303HD⊂ε$g⊃T∧ FLAG AS @
β↔∀A∃π_4⊂λ%:∃∩⊗ε-β I2mp¬e∀T9EBdII$9α.FE⊂d∧FDE1:∪'∃)5∧A∧Yε~∀%')5λA⊃HaP@!4q5⊂!⊗εBα MOVE ARDY6hhβ↓P≠β¬ED@⊂ε%!S,¬~∃¬→∀bt%≠⊂≡Z*αεIJλ¬E@6
Fελε⊗*↔F@
SEP 4APX⊂∀(→DS↔!∀L@⊃⊂@~Jλε iF@
JUH!
↓)(@2b)HQ!∀821q$
∃λD⊃ ¬∧P∩))`∀AH )⊂4(_8∀L*λ¬∃¬DL¬εEαP
RST ALJ1A1
H∨-∀Aε@2 h ⊂L→y$
∧EH∀dS⊃Q hT→I#↔!∀821(
Jλε⊃;
∩A)%'(A¬→∀cαβ⊂4(→Yu (αP#⊗∃∧¬∀∪¬_∞*¬∧!2ε2Sλ4(Q(∀dS_⊂G∧a`dS⊂**, ¬B%\b0≥q0 -@πβ'
4⊂λ%α≤
& $T
E"b,εC!∧P⊂ Q ∧@∩AQ(Xh`4⊂λ&εt"%αR ¬C 6βFE∧U& ∞E AR2A0h
]Aαεβ@"B( _∀⊂@⊂∃*⊂AR2A~∀%∃%' ∧∧@⊂¬_`CE
ALJ1Bh∪∃+≠A
A(Y¬→∀c∧β⊂4(→*Tm∧Tλ∩dI&∀& εE∧SdπVEM T →∧4⊂λ&*∃~QαεdQF HhRε $αL0F↔@∧fgUαEM T,A~∃¬→∀c∧β⊃`⊂L8→∀`$∃∃⊗YDD]Pd∧TMOD@
A≠∃β⊂~M∧J0∀MDλdL@⊃(⊂h→β⊂#bU⊂
CL
∩A)%'(A¬→∀e"4⊂λ&∞J∃αR ¬Ethβ"B$ TTu∧λ3∩L!QP3∩F'@∧W)Uib`∀XεP~J⎇αR&>p¬Be%KQP@!5∪⊗D
∃∪j
⊂s1↓⊃,¬j*T'⊂'c⊃⊂
CL
∩]M+' ε`~u9z¬$Ly`¬J∃↔#! f%→∀] SKIP@≤A~∀%∧j0≥Tr(λV⊂λ@'%1¬∪(ααr%9;BHhαB2JYαh' A( β→(eα4PJN.~ b∧P2rHf∧D]Rc⊂%!S⊂# eQb⊂ ALWAYS READ INIT
∩A)+⊂⊗B*α⊃2εdQL$↔9∀2¬x~2¬∀X→DeJ jTdbλ¬∩λYβ⊂"'Sα ∂(AQ%2A$yαJ⊗!α&:M 4(→Yu (αP!,Xπ'&D∩&@"λπ∪ ~t⊂∞.B]`iiUd¬E F SE@)i~A
β-∃π0HI`≤@Su⊂⊃ ebP∩!` YEPλ~∀%∃' A_Y∃π→M ⊂4PJN.~ b¬≤αPsλ*c∃@1 0↔β92A*≤a|4!∀¬¬-9 "¬αβ⊂3λhα"c∧B]ibj∃h⊂""Q jf*λ%!fεBα SETX¬∧AλαbH$↔8B∧M4λddtλd`:H@⊂∀bbg, R IS PPN
λ∧∪'Q0
αλ¬D1 ¬_@0$ MOVSI B0Q'&D∩&@"λπ∩)@$h)
λ∧d`H%≠⊂≡Z*α∩e8~492(↔ →β$n.CE MOT¬∃α
⊃E %4¬~≠X⊂⊂,,S@∃π1
V→Xε∃hhαP3 &,¬∧fSβP
A¬$eαYlhh`@3↓A1JKPhPα4q*KH⊂
,
ALJ1A0∀∪%→∩ ¬"Q2ε⊂ε⊂hPα2U)Z⊃(∃
E⊂3∩F!α@
CAIGE TT _Dαλ4(∀ %∃≥Dλ∀dS_!P@!0p2(T∃∃⊗λα:~∀$A∃%'PAβ→∀Eαb4PJ6 =hT∧5α*εEαe))jλ f%_CE
ALJ1ADpλ&∞J∃αR ¬B%@εE∧H%))jλ f%_PY
MH∂-
↓αP∩PhP&N⊗αK"∧∩AQ Ly(∩∧λε f∩_@
λ¬β→∀Eαd`(L~ε&∃¬"Q1eλ¬`HKαp j⊂i*⊂'Q⊂( ⊂N SPEC?
∀∩↓∃%' εε $αL0&1 ¬)`IDcbj∀( ∞ R, ∩w!_∞ $D
¬∧r →b¬⊂β"Th∀ ∧P%⊃!` ;@∪∂9_∞J∃∧2V 4hε(
9p∧h⊂∀ ¬TURL¬&~∃MαH∪'∃)4A⊂¬@hU8⊂ ↓_∀rt
H⊂ , 0↔∨8A'β∪0A+'
↓β⊂∩_~0hPα4∃*9⊂¬⊂($ c(∀' ;R@βλα↓E ;$
¬∧rD
4\M∧ ∀2¬(Z$`1 ¬∧P∩)&⊂)*εE∧PβAIE TT _Dα`$%@9_b¬$X∧S)→β j'T⊂ ∞OT C@∨≠5αA)⊃∃_ α≡M2∃αVα∧∧`9β⊂ ⊂PL∧⊂∀!∀∧U∃8¬⊂⊂d∧P@!8b~(MαVN $¬αdα⊂1J
⊂π∧DNβREAD T@⊃
↓_∞RλZ"∧D→Hb∧|d
DD(⊂λ(∪αλ
∀∩↓⊃%$AHY(∩∩m%⊗Bd
≤* →b∧q3Q*(5⊃1∧
∀∪C!∧a`dQP**,90
\∩$p∞@$X∧S)→β j$Sα@∞Aπ1_∞N∃∧∩Jε∞\*Q`8Q(∀e¬ `'∧P&gUα@
A%!2
4∧B!↔pπ'h⊃T∧ @%∃' ∩z(R∧|β⊃_,j"P∀'` NTER~∀%∃%' εε $αL#!∧¬
ALJ1A3: CAIL TT,"a ∩w1_∞@<X∧@_`ibFBα CAIH
AQ(XE@Ph ⊂J∧λ∀$∩(∃
E
β!∧`g"∩P**,4εn~∀%)→:*αεIJλ¬C 6lλλ_∧¬
IDPBTT →βHeα4PJ*JNα@@⊂¬_`CE
ALJ1Bh∪∃+≠A
A(Y¬→∀c∧β⊂4(~94M∧βH⊃↓Q@∧P)Rdh @ A( (~(∩@A⊃1→4A∧αbP (αP3 &0L@≥αa`dgλ**⊗→LDXALT-MODE SAYS DONT FLUSH JCLλ
∀∩↓∃%' εε $αLT!Q@∧a`Rdε @)PY0~4hP%α**5"∧→I#λhαP3 &L¬∧iQh∧ZMSJCLBUF~∃¬→∀e"βP&N9~∧`$⊂j`_K!FE∧H&gk)RP!U@1,(SIX@¬∪(Aq '.bH4(~8U$|β(⊂*K1C"A~∃0 d∩⊂(⊗ S'c&_BDX@'-∪ A∀*RVJpε6⊗εu→α&:M!α4→HR∧tz@λλiu3Q↓Q@∧P%∀)j⊂ S&_CE
λSETZM ATYF 0↔)U%≤A∨8A))2↓∩P≡qQ LU*:B∧I&0hPβ"Rλ_T⊂λ'∞α SETX∧A(X$∩∩`.≥"εJQ∧z~2λ¬r*Iλλ!∧fgk⊃P!U@2,AR1 ;SAVE C@+I%⊗:α@+5⊃(
p∧g*⊃i
IH ∧β)(@2
⊃D4!_4LD
E"b&↓⊂K\β54jD⊂Q( @*fbi∩aFE∧H!`df⊃P**, ∧r4PI↓α**5"∧α⊂1J
#"A→α)d5⊗→DDB]`b"λ ∧@∪∂%(A&u"0~¬λ∧∪AQ@∧`b⊃$P ∀,-"0(TT)~∀%∃%'"α"ε~α
∧`!αE$ Q((⊂⊃: S@↔∪A_ αPHH%nN\JAαJ-"VJ9∧J→αQ∧r& Q!$λ3th¬
λ∧FEαh ∂PJ P _~(~¬β→(ft4Uh$%@8Yd"∧βqH _SH⊃ε⊗β"C!$c'1→_⊗-CE HRLZI 1,(GJ%SHT+GJ ∨→⊂R∩@.≤B0≥∃Dλd`:S+λ @g&,P∪βLD FIH
~(∪'.Mα∃α∩,r⊗b@hP%αN\JB¬↓α%E@5,+`iadVα ∨λM⊗u→∪M ]∪≥ X∞v@QQ LE*)dJβ!K4
≤9≠"α⎇λ∧nII4pλ↔∩dεI/]
∪∂Q∃~8hP%α**5"∧→ID8L""'g'P$SαIT FI@→
X↓'⊂≥αU*N@"λ9t`*⊂∧g
QP ∞ORMALLY
∪%1∃~8HH%nλ~d*∧IλR∧Li~B∧R3⊃%D∀Q5
ZSH∃ λαP%#∪α
∀∩↓∃~∞`h ⊂M8ZD`9(⊂5_@∧D]SαO @)e!⊗>- 4(→*%≥λ⊂3 Hβ$f∧B]j$"Sα READ AND PROCESS IL¬∪(A→∪⊂∩∀hRε $β⊂pF↔@∧n@ 8π≥λβ∪
≤A⊂d`~∀%!+'⊃(A @2b2Rfxh ⊂L~84MRλπβ!& SP Xλ~∀%≠⊂≡Z*α∩e9Je∀t{QP@(3∪∪ha_
SEP 4A∧X⊂∀!→E≤D4λ∩c0β"B)*30λ"H V f∪'a`FBα ADDI A,40
∀∪A+'"RαA2εdbRfhP&*J≥!αε2dz≤⊂β"@↓Gp3∪ @a`P S& ∂C1
~∃¬→→>≤ `⊂@ ¬ f∪'aP⊃h∪!+≤B)αAd
22RLx4(_~494¬⊂.βE v ,oc? \
∪!U'⊃)¬↓2ε2e"f$Q!∃≤-K)R∧IH`hPα0p)→β⊂!V↔+FE∧Tbj'fH j,cβE CAIE C,↑W
CAIN C$↑A
∩@↓∃%'λααε $β⊃R)Aα@
CAIE C,33 ;AH )≠= ∀Q!∩∧≤→→b∧~β
∧↓↔tpλ PβE~∀$@A'Q_∞ *λ→Dd@εE∧PβAIE @εP∩z⊂h ⊂J *%≥λ@∃LF@
SE@)=~Aβ∪9
∪_~(∩@A∃I' ⊃αb2>∞_h ⊂L8→∀*∧5D&pKαs∪j@bi⊂!PibFEαP!`dSα C,"L∧⊂∀!∀α¬≤X¬∪iT⊂3∪λaα@
SKIPE AH 20h ∩α↓∀∧U∃8¬⊂⊂d∧@→∨
4!_4LTλ2b∃α#"A∀⊂p2)@⊂!V⊃≡DXLOTπ$A
β'
~(∩@A∃I' ⊃αb2>∞_h ⊂L8→∀`$⊂kλGq ¬∧P∩))`∀↓β⊂∩λYE@ ¬∧aPdbP!K⊃$εEαP!`dSα C,"h 0↔→=(∞⊗I∧~εN∀hP%↓αU∩N@"λ→DD3∀β!)`R∧Pα@βiAQ]β↓A1F@εε,,#!)`R∧Tbj'fH @
SA$ BEEP A0~∃'αα(& ,zhTJ∧∃Kd8Kαp Sα@ ∨~αα& $β⊃1h→α⊂!d⊂i aj⊃i⊂ ∀O ALLO@ε~*≤ ∀&BαZ4DRλ∧λ→α TY@ε~*M!⊂&"α*%@$∃∃⊗∃*,dc∃c↔!R gεE∩h∧$ .@πβ→_↓∞.⊗)⊂hT~@ ↓∀λπ+ S*bFE_∩∧fSβP
∩bP⊃:α
$LLaQ#∪αA_44L(aP@!2TTjD⊂3∪ @aXFEβ≥`f!SβRP⊂A¬→π>∀)αε2≤zJaαb≤⎇(T∧@∪∪phF@
αIFN PAGIL¬∞@2Xh ∀H9u∃CTπ ≡⊂αBP@'M∞P⊗N,:N&@%'D`)1P iQU`∞IFXSG+NIFLSG+H
1ERN≥yβ`jλ1tr+ε@
AL@π∨%
t{β→π=%0@-βIT
Dhj2\@06⊃Hkλ¬f`V εFL+MAP⊃
→ .X≠∧4T∧UfPl## Jh ciRm⊗P⊃>,π!β∂M∪44Uh%n⊗t!α&~pεBε≡Lr≤4%hTe≤T0hT→H4`:T∧≡@=<BBPSSG ≠
%%')→=
.NαHDdzβ0 bQi` Z*<NIFSSG ↔≥%
1'∞αZ0∀LiJ4:\βP,⊗αSG>xP∞Bε=~&hQ(∀d≤βtQ'W03⊂i@i(λ+P~∃ 4hP4*εdb0≤≤4εC!(#RD⊂d∧LHA@π⊗AβM
BMb→2
Bα5D@⊂T∀eHαg"&∩ih⊗a⊂αPC@'≤XY¬!M⊂⊂∀(L
22λ_4Z∧~:%∧∪λeJQ1tλIλε f∀ ∧L,200 _bβ↓A2x6 hPα03 I⊂0rdλ4p h⊃&⊂#,SPECPDL →α1'! _0d``XD``@2⎇~≠⊂β"B(→α&$ PβK ASFXP,#,@
1∧"12εd2bAF ε¬⊂ε)kTUXY,Lπ
"≠⊂4λ_→DdD_92∧
8iEαb5Hde∧IED@⊃S∀¬F,&¬⊂πc&⊂β2~∀D`@⊂&b2"ε≤YαεN$"Q1
d"∩RNβ→U~@,¬FL
;33∪aQ@∧`f∪$ aeH if$Th∧,,LIST,MAXFFS,20 0Y1
L~∀&b2"ε≤YαεNα;∀j@λε)lSa'f⊗∪`hλFFY(λd`@XY1
→2~(L
22λ_4Z∧~8dMBβ⊃I≠⊂π*fK&`l#⊃,⊂2@`X@2D2~`4PJε $β∩⊂(eP iQ& ∂,,FL@∨≥U~P∩X≠∧4SFελε⊗,⊃ εL
IFN BIG@≥+4X∪β→1⊃βπ⊗ββ'¬∪≤XY¬∪≥_
V5djεb~4⊃1EAα¬BeDhh hPα03 I⊂0rdλ4p4K∃α⊂ARRAP∩Y5β1
∧Xb`@αa2b~4λ4(~
U≤DαH∀¬H3∪∃→βFE∧Piadmλ,∧
\
;ALL@π5 hP4(Q*5,∃JI@M∃YjDL@1(∀jItP1hT⊂3∪ @a`j$SβH4Ph ⊂LYzd,Jλ¬∃¬H3⊂sj+λ¬( Qi` Z
λ¬∪% ↓"P⊃K:2eBβ∪λ⊗,V Wm⊗⊗-Q)PFX,@
_Y _ 2Nβ∃E≤
β3@⊗-`∞IFSSG+HY≥∪
a'∞@-α!P@)R1S
8hhλ@,L¬¬≥≤92:Nβ→U≤:4∧ ⊗∪αSARSG]FLG,,[!0bP⊃Ed∩&≡h¬3%F+7!QR1SDλS⊃`⊗⊗β
α MLπ ~⊗JαQ1rpπbU≤Xz4MPβ"B(`ff⊂∃⊗,##λh@
MH∂-4A(@2D2→εDhP& ,zhR¬"β⊗⊃Hd4#"A_p31hT∃⊃d≠H4r+∧¬∀∪5≠ ~⊗h∧¬"dt≠"
≤α6C!∧`b"λ**⊗*βE LSH T,-;ALL@π!λ~(~∀4SZ~ε2e→α&8hP4*&4qαBε<J0∀:β⊗c!∧¬
ALLCPDh∪'%Qα2AQ L@3uQ)∀∀K∪(Yαgi,KdεSCRSG ∃'∃∂'&Ph ∀M*∧¬
λε-iPβ2,C2,@
→εHY~@λ6%mJEK3
@¬F↔0@,,[S@!⊃_Y! 0Y~2αb~bBβQP@!33uHY(⊂
,(R)
SUBI T →≠%_ ε\hP&⊗@λ9α¬"β∪h*⊃ ¬∧aPdcbP∃⊗
IN!P∞~∀%≠⊂≡Z,IαQIY∀`$5c"A→αgk"SP*⊗,λhπ
ADDI T,PAGSIP∀Zβ . ,→`λ*@F@
AL¬∩%¬!2Bε<jN,4PJ6 =hY∩¬%EE¬"Hβ"B)Jp∧⊂*∃⊗⊂
PAGH >8h ⊂M8¬0I∀⊃K
Jλ∧FEαija$H)⊗∀*
F@
IFE SAIL,[
H∨-∃∩AλYAβ∂'∪hZd`~(∪πβ~0A⊃Kλ*@F@
MLπ-
A⊂Y0C.4⊂
`(↔8T`(α⊂'cλ$c"P∀`dfεBαIFN↓'β∪_104!→T`:Q(⊃¬Kλ5c!∧a`dQP"⊗(⊂cidmY_εEαP
OVEI D1!β∂'%0 5Ih ∃hα.q)@ ∧ OF IFN↓'β∪_4⊂λ&6⎇20∃~λAP@!2⊂ &∀P"εEαd))$H ∧ _QHR~*L20∩βK↔b`L_HB∧λε)70+Y
H∨-∃~AλYD~∀&lzP∀,∀λBbE%⊃P@!01⊃∧λα⊂X¬(4!_∀`(α$P"≠[[@74∧`∩w- A¬(∞ε@∀λe∀|β(∀λ_q(⊂I@h¬NDARIE@&∧~∀&%∩0∀rλ@
λ1rdiQ ¬∧iUa$P"→_εEαd¬OVEM D,X!P∞~∀%≠⊂≡Z,iα"β⊗H*@F@
TERMIN
λ∧∪⊃∀b5α→eα∩2~cλ4(→→U,@⊂∧P#)ciRT π
HRLMF,PDLFL2
H∨-∃∩AX!$R4PJ2N∧λbbmλ_td|qQ LE*)R∧K∀⊃ Hβ&_FBα MOVEI F,(R)
H '⊂βX@6α8T<@∪qc!∧d ∩RM F,PDLFL2
∪'U
%αα ε⊃ ¬∧fSβP
~β$Y"Lrb4Q!∀E∃+$∧
@∀plAQ@∧fgUαEM A,ZSC2
α∪⊃I%4Aααb≠⊂β"B(_⊃∩(λ∃α_FEαd¬OVEM A,NP@ →⊂4⊂λ&"α*%@$⊂+⊃KλlC"A_1⊃∩$λ+#!∧fgk⊃d¬ A1_
B∩d`4*& ∧PM≤X¬⊗IT∀pfS'FE∧R))`∀AH 2$z0∀ εEεBαX
∩∩m⊂~⊃∧z→α_ib¬∧_y∀`(c"@↓Gp3∪λh"⊂ S!h"1 SYMMT∧lAβ1#0bA¬→'∂⊃,Aβ→#`d⊂∀!Q hSαqP)I∀h∩)@ε@
IFE PAG@∪≤≤Y6~∀4⊂
ε2d~B#!→T`:β"dP⊂T∧BFXPSG
H∨-∃~AαY9!∩IAP@!33uHY(⊂@⊗∪'c _PDL ;SET UP F@1@~∀&"⊃α dz~b
α!P@!01⊃ ∀⊂K∀hXtr6EV εE∧PdεDI @∧Y'≥≠',hP& ,zidJ∧5ETd|hε∀λIλ∧!)
∪~=(
N∀λ2bD5⊃P@!2⊂ )∩P!V⊗LT TFBα MOVEH
Aε1
1ε@⊂h ⊂L_HDJ∧5ETd|hε∀λIλ∧!)
∪⊃I→∩Aε0[⊂∩xk¬∧⊂εεEαd¬OVEM C,OFXC $4⊂λ&6⎇2∃α
eZ~a4J∧$dβS ⊗(c$l∪αUM@:4⊂λ&*≥↓αQH→E≤<α∩c!∧fgk⊃dP!,LOFLPDL ;SET UP FLP
∪β⊃λA∧Y=
→ε@⊂h ⊂L_HDJ∧%J4,=9≠"kλβ"B(→β"$P⊂α,SEGMS@⊗~(∪⊂⊗>4r%α
bj2>~eα∩1λ
!Q@∧fgUαS@∩AXQεR4⊂λ&"α*$J∧5ES
D∃⊃P@!33uHYαP!V⊃&!P∩
λ∧∪β ⊃∩AεX5→∨
→A _@"⊂¬⊂hPα2∀II(⊂k¬Yα ∂FLP@ 0hP& ,zhTj∧5It4d4∧C!∧fgk⊃P!V-Q&⊂$PDL@≥~αa2F~dz0∃,Xπ#!∧e)hλ*⊂ALSG@⊃⊗4⊂λ&6⎇2⊗ *λ⊂ @("&$βE MOT¬∩AλY→>∧"1.Iz5∧∪
`_BDX@'∃(A+β Aβ≥⊂A' ~(∪β λβ 2x6 hPα01λD⊂K∪j8lC"A→αgk"RP i1,SEGSIZ- "! $Q!∀@Q∩(λ~L+∀hXpε`∪K
∪≠=(
⊗%∧
IJ¬bBεIEHh ⊂LYzd,JλeBD
⊃Q M≥X)∩∧
&⊂¬λJ#"A→α)d0i_V⊗LD@ ;SP@→∪PA'∂5⊂~Q¬∩⊗ ,→→d$4C"A→αgk"H!⊗'aL∧¬
AD@ ∩AλY→>∧"1"ε⊂ε∩HhαB3)@k'$P⊂β, ≠→=!∩1D⊃$4!→T`:β)dP⊂β, ⊃ε$~∀&E∩J%α~a5E"λ¬⊂hPα33j@"fP!K!YεEα`b"$H!P-Lπ! _! $Q!∀E∀I∀∧5λεf'T ∧@_~(∪⊂⊗>4*5α
dz≠⊂β"B(_⊃∩(λ∃α⊂λB$~∀&lzP∀(⊂@⊗∪βSC $4⊂λ&ε$"%α db0≥≥λIB[
λ~#
Hβ"B)Yβk'$H!P-LLπ'! 0ZbQ∧αH4(→Yu *p∧P!K∀!TFBα H@%I∩AεX!αR%u~⊗∃ααX$ Kαp hλ'"bb∀P# ∃NL¬2A≤b0≥ Q!∀l@uQ3$λhε)aL∧¬∀∪!%% *hε~e*83⊂@ ¬∧`Q ∧I C,-LOSP@ _Zβ " $hP&"JdIα
EYD`:t⊃∪↓Q@∧fgUαEM C,OSC2
∪≠=(
⊗%∧ 1"→Hh ⊂LYzd,Jλ ¬λ4LP%⊃ ¬∧fSβP
AY6I14XY#%¬_
∩y[PhPα2Tj∧∃⊂)Jqr∩aQ@∧fgUαEM A,BP@'0~∀&lzP∀,Tλ∩e4*ε⊂hPα33j@"P!V⊂F@
AD@ ∧AY¬!≤@$%@8i∃∃≥DλU≥∩30*HαP'cλ!( ∪H
∪⊃I%∃α⊂¬B`)PTv)Q ¬∧e∃d¬PLE B,AL@π!λb$∩w>tbeαλ_4Z¬8ε3('`S IF IN L@∨.β'∂≠∃_
P4PJN@,$λ"e≥→YD`1 ¬∧aPdcP!K∀!∀FBα MOVE C,B
∪≠=(
⊗5∧→2
Bα9HKαtq(g`∞DESTIMAP
A=A¬!M⊂⊂∀(L
∩"λ5E≥LYIphPα2∪
(αP!,,¬∃¬'e~D4PB"JJzα⊃1i(%≥LQQ M≥X "d!Q M≥X)∩∧λε_DBDXTO BE A PDL PTR IL∧A)⊃∀A'3≠5_∞XQ!∃≥0H⊂eH@εE S!h"18∧∪∪∨I∩AεYM∂.≤h$$↔9∧L<α⊃4jD⊂1⊃
$⊃StDλ51s(Yβ*"bλ)lfJ⊂a
MH∂-$A∧XbαB~Hβ"Bλ`fc@0β, ≥∃
_4PIα*J≥!↓9-α1P@!0stHT⊂kβ!∧P%)∀h∧ ALQX2
HRRM B,.J@¬
D4⊂λ&6⎇2⊗%α2a5E"⊂¬⊂HPα4u(⊂!⊗!∀)` 8π)>$
1αh¬3( ¬R WDS OC@π+!∪∃λA¬2↓%β≥ =~A¬!LAβ≥λααNf6αH∀! ¬∧iUa$P#∀"∀Dα]j'j⊂d∧ DISP β≥
A ⊃¬(A'LjRε ∧j0≥Q0 FBα H@%I
A$X9∃¬'Lh4(→*Tm∧β⊃(
%⊂3∀+ε ∧D]SβNLY HACK↓'3≠¬=→&A∪_A)"-∩∃αz λ →β⊂&'Uβ SEGMEN@(4⊂λ&"e∩∃αIbr*
Nβ→PhPα2U)Z⊃(⊃EH3∀6ε⊃ ¬∧fSβP
AQ(Y7≥J6 ,zeBe≥→YU &4εFEαa&* TT →→A%∨∂&4⊂λ&"α*$J¬8ε3)Zβ_V∀⊃∀@
JRS@(↓'3≠≠Xb~*≥J6 -d¬NA_1⊃∩$
v33*@_V_@(D)~∀%⊃%%~β'3≠≠XbP⊃:T∩Nf5⊂h ⊂M8¬0D
v33*@_V)lSd∧@≡~(∪'+¬$A'3≠5( E1λh ⊂Lλ∧TK&P ∪YMH,@
b∃¬9↓⊂HKαr1D
⊂∧"i⊃P+`iH P ∪YMP β∧αaα:>8∧¬8(∩sI@kP ↔HERE BPS@⊂A%&~*L2∃αNJ12lhP& ,zhR∧K⊗`_LY⊗⊗_Ln@
GETTA@∧AX4⊂λ%αα8U%Rλe@h⊂α3⊃λ⊂#⊗-L≠_Z00, →βt~∀&≤
& 2λeC_hαB(
TS ~;335F∃α ⊂↔\```@λI`≥$YhUB¬9→U,@⊂5∪j$⊃StD
⊂πh)KXXεE↔D@ ;EL¬⊃α|1α&~*αNε&`h ∀J≠βPα33j@"P!V∀lff'CE ASH C,-1
∀∪5_∞@4YPλ
;33∪a⊃,¬agSαVE@%PA~J|i↓
α|1α↑z(E~¬Itαα~ xb∧3P
)∩biFEαd))-λ!PBPSH
SP∧AY∪∂π→0b$KZ&→αt*P≤LuD∧m4p
0d∧@→∨\A~>⊂ε& 4~I∀@λ⊂4J(4∧FEαija0β,@∪∂
0d∩$p∞ε: ∧∧L@R5⊂⊃$f"P⊂i) lCE MOT¬~AY-¬!∀b∩%\J0∀MI_∀b¬8ZE$Lhp`8H⊂TλYβ"εEαd¬OVE C →6α"b51e
Jε:$z6tQ!∀U≥∧
BdJ8tDXQ!∧l@uQ2$λhε⊗@1(A)
H∨-∃~AεY!∪14hP& ,zhTJ∧%I∧L@∪pc!∧`gα∩P!⊗)Qc`
SK
∪'U
%α⊂¬BD
⊃Q L@3uQ$λhε-@$L¬15bbFJεp"0≤mβ#"A→Tpλ~E⊂3∀hy⊂¬FEαe))jλ f&"∪βH
~(~¬β→M∂⊃-β!∀l@uQ2$
∃
λ∃ εE∧SdπVNI @λ@1D⊃$4!→E≤Bλ¬∃¬E4q1iIqc"A_4r_EλεibQd∧OG
λ∧∪⊃∀b%αR ¬BD
#"A→αgk"SP!V)U∀**)
∪β=
*9¬"Q1eP!Q@∧`b⊃$P @,(B)
JRST (T)
λ∧⊂∀*bFaIPJBVNDQαAH→De%→qP@!04pi≠H⊂∞εBαCAN≥(A∂PA⊗:⎇*≡!α≤zJ*≠AP@!2TTjD⊂3∪ @aXFE↔D@ ;EL¬⊃α|1α&~*αBε≡Lr≤4!Q hPc\→ID$|βQ(
;333j@⊂)`→MMPbA1!%∨∂L~∀4T
22∩|r∃hQ)∀4(⊂λ Qdg#@,Xε~*L2∃α∞J12lhP& ,zhR¬αβ⊂lA⊃(¬ibU⊂*`⊂4 ∧L PLπ∪≥$*JL4PJ6 =hT∧5E¬HeD≠!Q L@3uQ$λβ&(⊗⊃&!P∩
λ∧∪≠∨Y
AπαbN
HhRt%@8Yd"∧βqH _Q(∀h→3β"KP∧@ ;EH¬λA∨_A∪
↓!β∂∪9∞~(Lj0≥4Y∀∧
@∪∩4j↓αE∧d∀)&P K& SPSP∞~∀!')54Aβ→∂λ
_$↔8t4⊂∧iP∪βKAY L¬∨.~)∪
≤A⊂b`@2Xh ⊂LYzd,Jλ⊂λyβdg$∃∧¬
HRRM A,.JBSA"~∀!!+'⊃(A @2=∩⊗$~!P@+ ∧]bRαD OF IFN@10
JRST L@∪'@~∀4T~0≤u8¬⊂)@*)D]Pd∧LOC'S LIT@%α1&A∂PA⊗bαλ∀`(⊃1→λαi"FBα
∃∪→
A↓β≥∪~≤eX4(Q*5L@33uG∧@ ;MH∂-
↓≠⊂≡
Jα*> ¬~f ,)yB¬$_)D
∧X∧∃h~Q∀c!'c#)Qh∧ C-,∧~*≥J6 -d∧.A~⊂πh_Eλπ∀"
DP≠C
λ∧∪β∨)_A$YM3⊂⊗6αf⊂K\~ !⊃@∧e)∀h∧ @'e≠⊂⊗Yαa∪@84LP!QS∀∀I@ciP≥=(∧Zb~)_∞~~α8U"β↓Q"`)⊂¬df∪⊂)`→MMPb~(~∃ 4HA`≤,h@@8H∩1HT∀⊂1i→β#FEβE
;@∪≥%∪bA%_
&&3⊃α4∃hT`8H⊃R%@!!!P⊃$W!!⊃⊂#↔&SβDE F,¬π"qα2hiD,@H⊃KHj⊂πiP⊃↔""kλ ε.@%⊃ →α2r∩-dλb`(⊂∧i1↔#'&H ε.EXT F.VRS AT(¬π"~αε@"iId`$⊂5↔∀ πN LLπ≥¬
∧A~ t∩f@"λh"`(QSλλhKPUHP#!.IBP F@∧]¬ FB.CNT FB9⊃⊗⊃∧2∩th(b∧PC@J@iP#!αBUF LINIFA EINIFA EL¬ 2M~Aα⊗t""$LLED IN)
IT$ F.FN1:: SIXBIT \.LISP.\ ;FILE NAME 1
10$ F.FN1:: SIXBIT \LISP\
IT$ F.FN2:: SIXBIT \(INIT)\ ;FILE NAME 2
10$ F.FN2:: SIXBIT \INI\
F.RDEV:: BLOCK 4 ;.RCHST'D NAMES
] ;END OF IFN ITS+D10
IFN D20,[
F.DEV:: ASCIZ \DSK\ ;DEVICE (FILLED IN AT RUN TIME)
BLOCK L.6DEV-<.-F.DEV>
F.DIR:: ;DIRECTORY (UNSPECIFIED)
BLOCK L.6DIR-<.-F.DIR>
F.FNM:: ASCIZ \LISP\ ;FILE NAME
BLOCK L.6FNM-<.-F.FNM>
F.EXT:: ASCIZ \INI\ ;EXTENSION
BLOCK L.6EXT-<.-F.EXT>
F.VRS:: ASCIZ \0\ ;VERSION
BLOCK L.6VRS-<.-F.VRS>
] ;END OF IFN D20
LOC INIIF2+LOPOFA
BLOCK 5
AT.CHS:: 0 ;CHARPOS
AT.LNN:: 0 ;LINENUM
AT.PGN:: 0 ;PAGENUM
BLOCK 10
LONBFA::
FB.BYT:: 0 ;BYTE SIZE
FB.BFL:: 0 ;BUFFER LENGTH
FB.BVC:: 0 ;COUNT OF VALID CHARACTERS
IFN ITS+D20,[
FB.IBP:: 0 ;INITIAL BYTE POINTER
FB.BP:: 0 ;BYTE POINTER
FB.CNT:: 0 ;CHARACTER COUNT
BLOCK 2
] ;END OF IFN ITS+D20
IFN D10,[
FB.HED:: 0 ;BUFFER HEADER
FB.NBF:: 0 ;NUMBER OF BUFFERS
FB.BWS:: 0 ;SIZE OF BUFFER IN WORDS
SA% 0
SA$ FB.ROF:: 0 ;RECORD OFFSET
BLOCK 1
] ;END OF IFN D10
FB.BUF::
10% BLOCK RBFSIZ
10$ BLOCK NIOBFS*<LIOBUF+3>
10$ IFL NIOBFS-2, BLOCK NIOBFS*<LIOBUF+3>
OFFSET 0
LINIFA==:.-INIIF1+1 ;TOTAL NUMBER OF WORDS
EINIFA:: ;END OF ARRAY
-1 ;PHOOEY! FORCE THE "BLOCK" TO MAKE REAL 0'S
;;@ END OF ALLOC 256
PRINTX \
\ ;JUST TO MAKE LSPTTY LOOK NICER
EXPUNGE ZZ ZY ZX ZZX ZZY ZZZ ZZW
HS$ 10$ IF2, BSYSSG==HSGORG ;ANTI-RELOCATION CROCK
IF2, MACROLOOP NBITMACS,BTMC,* ;FMR BIT TYPEOUT MODE
EJDLISP:: ;END OF LISP, BY GEMRGE!
¬
VARIABLES ;NO ONA CHOULD USE VARIABLES!
IFN .-ELDLISP, WARN [OKAQ, UHO'S THE UISE GUQ USING T¬β%∪¬¬→&⎇:~∀~)∪
≤A⊂b`Y64∀∩I⊃%'∞~)⊂~∩DIah$HH%n⊗t!α>→∧B&≡!¬~⊗≡6,rP4*hH%n⊗t!α>→∧J~9α# @4!Q$L3%D∧-∃(9e#kW%d-∃(9e H↔9e,l(Z"∧|dλ∃≥≤YX$eJλZ%∀⎇*1PPh(Yd"∧→i∃$L→I∃TλQ